Well, I mean most of them.
Why ? Because they break the communication flow.
The first reason why contact forms are evil is the obfuscation of the recipient(s). A lot of contact form only offer a simple box with minimal indications about who exactly will receive the message. Most people using this type of contact form are usually doing it to avoid their email from being grabbed by crawlers and spammed.
Fair enough, but your users shouldn't take the brick.
An easy solution is to create front end email groups. It shields your real email account from being publicly available for crawler and yet let your users contact you. For examples you could create a info@yourdomain.com for general inquiries and a sales@yourdomain.com for sales inquiries and so on.
I actually believe that in some case this is an even better practice than listing the email of all your sales representatives since you don't confront your visitor to too many choices. The dispatch can occur transparently on your side.
Still worried about spam ? Use a commercial spam filter service, they are 99.98% efficient.
Making it easy for your visitor is always a good idea. Which brings me to the other reason why contact form are evil; communication flow.
When a visitor fills up a contact form, someone gets an email and eventually reply. Problem is, the original inquiry is rarely included in the reply. So if the reply comes days, weeks or sometimes months later (gov..), it's sometime hard for the visitor to remember what was exactly was his inquiry.
On the flip side, the recipient is also clueless about the sender. The only thing he haves is the informations the sender wanted to give, nothing much except maybe the IP and maybe some irrelevant user agent informations. So if the user makes a typo while typing is email, you have no chances to contact him back.
The obvious programmer minded answer would be to use a confirmation field, asking the user to type its email twice.
To this I reply that on one hand you are again putting the burden on the end user and on the other hand a lot of users will simply use copy/paste it from the first field, defeating the purpose of the validation and thus making it an unreliable solution.
Finally, if you absolutely need to use contact a form, be clear about who this form is contacting and be kind enough to include the original message in the reply.
Cheers.
Good point about importance of including original inquiry in the reply.
But in my opinion, contact form can be useful too, here are few advantages of using contact form. First, you can easily add some required fields to get additional information you need from a visitor, also, for some people it's just easier to type a message in a box, than start up a mail client.
So why don't we give a visitor a chance to do as he likes, by adding both contact form and email?
Hi, long time reader first time commenter :-P
Making it easy for the user, nice. Adding both contact form and email, nice too.
But I think the emphasis should be made on "break the communication flow". In fact, a contact form is supposed to lead people into the flow with minimal effort.
Sending an email is not easy, because you need to have a client installed or you have to login into your web account.
So yes, using the contact form is easier and leads people more into the communication flow.
So why say it breaks it? If you do it wrong it will, but if not, i'd say it's a pretty good way to facilitate communication with users.
Oh BTW, except if your site is targetted directly by spammer, don't use a capcha it's worst than having to retype the contact email by hand for many "common" users. For automated protection I use a JavaScript onsubmit that sets a key in an hidden field that I check server side. 100% transparent to the user and majority (if not totality) of legitimate users will have JavaScript enabled anyways.
Thank you for your very useful post. But I had trouble navigating past your web site because I kept getting 502 bad gateway error. Just thought to let you know.
@Andrew Valums
Good point, required field are useful in some situations.
@Jonathan
The percentage of user without a configured email client is probably near the percentage of users who blocks JavaScript ;) But more seriously, personally I find it easier to type my message in my configured email client or even open a webmail and copy/paste the email address than write it in a 300x200px textarea. But that's just my personal taste.
That's my point. I just can't recall I ever used a contact form done right. With the initial communication included in the reply that is. It probably occurred sometimes, but most of the time it's not the case.
@Matt Call
Thanks for the heads up. Can you point some links that gives this error ?