Ive done this before using both contact form 7 and Grunion Contact Form plugins, when using contact form 7 i created a new tag to send the email to the post author:
//contact form 7 author email
wpcf7_add_shortcode('author_email', 'wpcf7_expert_email_shortcode_handler', true);
function wpcf7_expert_email_shortcode_handler($tag) {
if (!is_array($tag)) return '';
$name = $tag['name'];
if (empty($name)) return '';
global $post;
//get author email:
$author_mail = get_the_author_meta('user_email',$post->post_author);
$html="<input type="hidden" name="" . $name . '" value="' . $author_mail . '" />';
return $html;
}
/*
* Usage: in contact form 7 form area add
* [author_email unique_name]
* and in to email address add
* [unique_name]
*/
and with Grunion i called it directly from the template using:
global $post;
$author_mail = get_the_author_meta('user_email',$post->post_author);
echo do_shortcode('[contact-form subject="message from.'$post->post_title.'" to="'.$author_mail.'"]');