php邮件不会从雅虎发送到Gmail

时间:2014-09-08 09:59:10

标签: php function email

我已经使用邮件功能创建了一个联系表单,一切都很好但是从yahoo发送邮件到gmail有问题! 任何电子邮件的任何电子邮件都是好的(甚至从gmail到雅虎)。 但是当电子邮件从雅虎发送到gmail时,它不起作用!

像这样:

mail("myemail@gmail.com",$subject,$message,"From :myemail@yahoo.com");

此剂量不起作用! 如何解决这个问题?

整个代码:

    <?php
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
    $headers .= "From: ".$email;
    $subject=$form_name." - ".$subject;
    $message=nl2br($message);
    $message=$message."<br /><br /><br />".$name."<br />".$phone."<br />".$web;
    $message = wordwrap($message, 70, "\r\n");
    if(mail($send_to,$subject,$message,$headers)){
        echo "<p class='success'><span></span> ".$success."</p>";
    }
    else{
        echo "<p class='error'><span></span> there was a problem, please try again</p>";
    };
    ?>

3 个答案:

答案 0 :(得分:2)

由于安全检查,很可能会失败 - 您的服务器与Yahoo.com无关,因此当针对发件人电子邮件地址的域检查电子邮件的原始IP地址时,它会失败并且电子邮件被阻止。只有一些电子邮件提供商会进行此级别的检查。

如果您的目标是将您的雅虎电子邮件地址显示为地址回复,请尝试使用reply-to:标头而不是from:标头进行设置。有关更多细节,请参阅PHP mail()文档。使用域或服务器的相应或默认发件人地址。只要确保您的电子邮件真正送达,这将为您提供最佳结果。

答案 1 :(得分:0)

当您的邮件服务器发送电子邮件时,会检查DNS SPF记录,以确保您的服务器可以发送地址设置为yahoo.comgmail.com的电子邮件。如果没有SPF记录告知您的服务器允许发送yahoo.com域的电子邮件,这意味着您的服务器可能正在发送垃圾邮件。这样,某些邮件服务器可以拒绝从您的服务器收到的电子邮件。

答案 2 :(得分:0)

我刚从&#34;来自&#34;移动发件人电子邮件地址解决了同样的问题。标题为&#34;回复&#34;头。

使用&#34; no-answer@yourmail.com"

之类的东西进行设置

使用发件人电子邮件地址设置回复(在代码中添加一行)。

Gmail将不再过滤邮件,因为它是一种透明的行为,而不是垃圾邮件尝试。

虽然问题只发生在雅虎/ Gmail ......