我已经使用邮件功能创建了一个联系表单,一切都很好但是从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>";
};
?>
答案 0 :(得分:2)
由于安全检查,很可能会失败 - 您的服务器与Yahoo.com无关,因此当针对发件人电子邮件地址的域检查电子邮件的原始IP地址时,它会失败并且电子邮件被阻止。只有一些电子邮件提供商会进行此级别的检查。
如果您的目标是将您的雅虎电子邮件地址显示为地址回复,请尝试使用reply-to:
标头而不是from:
标头进行设置。有关更多细节,请参阅PHP mail()文档。使用域或服务器的相应或默认发件人地址。只要确保您的电子邮件真正送达,这将为您提供最佳结果。
答案 1 :(得分:0)
当您的邮件服务器发送电子邮件时,会检查DNS SPF记录,以确保您的服务器可以发送地址设置为yahoo.com
或gmail.com
的电子邮件。如果没有SPF记录告知您的服务器允许发送yahoo.com
域的电子邮件,这意味着您的服务器可能正在发送垃圾邮件。这样,某些邮件服务器可以拒绝从您的服务器收到的电子邮件。
答案 2 :(得分:0)
我刚从&#34;来自&#34;移动发件人电子邮件地址解决了同样的问题。标题为&#34;回复&#34;头。
使用&#34; no-answer@yourmail.com"
之类的东西进行设置使用发件人电子邮件地址设置回复(在代码中添加一行)。
Gmail将不再过滤邮件,因为它是一种透明的行为,而不是垃圾邮件尝试。
虽然问题只发生在雅虎/ Gmail ......