I’ve been using the “Contact Form 7″ plugin, but found I had a problem with a WP install on a Windows IIS host. The problem seems to stem from permalinks not working properly with IIS and having to create a file to fake them by redirecting 404 errors to the right place — this apparently gets in the way of posting the form. A quick google threw up this support topic and a few posts suggest changing contact-form-7/includes/classes.php. The suggested changes didn’t work for me, but I found that setting the form submit url to the “dirty” page url (i.e. /index.php?page_id=11) plus the form name did the job. So, instead of
$url = wpcf7_get_request_uri();
I now have
$url = ‘/index.php?page_id=11#wpcf7-f1-p11-o1’;
Good enough reason to stick with linux web servers that guarantee Apache as the web server rather than IIS!