Sometimes yahoo blocks server smtp email checks, so emails aren’t sent out to none yahoo addresses. This can be solved using the code below (tested for wordpress 3.9, and latest version of contact form 7 plugin):

if (!function_exists('cf7_redirect_yahoo')) {

function cf7_redirect_yahoo($cf7)
{

       $domain = get_option("siteurl");
       $domain = str_ireplace("http://","",$domain);
       $domain = str_ireplace("www.","",$domain);
       $fd=explode("/",$domain);
       $nmail="noreply@".reset($fd);
       $mail = $cf7->prop('mail');

       $submission = WPCF7_Submission::get_instance();
       if($submission) {
       $posted_data = $submission->get_posted_data();
       foreach ($posted_data as $keyval => $posted) {
       if(stripos($keyval,'email')!==false) {
       if(stripos($posted,'yahoo')!==false) {
       $mail['sender'] = $nmail;
       $cf7->set_properties( array( 'mail' => $mail ) );
       }}}}

       return $cf7;
}
}