是否可以通过PHP的mail()函数发送电子邮件中的Return-Path值?
我在我的网站上发送的电子邮件中的值是'www-data@mydomain.com',这会导致电子邮件传递失败过程中的一些问题。我想将其设置为我的电子邮件地址。
这是我尝试过的代码:
$headers = 'MIME-Version: 1.0' . "\n";
$headers .= "Content-type: text/html; charset=utf-8" . "\n";
$headers .= "Return-Path: <adminemail@yahoo.com>"."\n";
$headers .= "Errors-To: <adminemail@yahoo.com>"."\n";
// Additional headers
$headers .= "To: email1@yahoo.com <adminemail@yahoo.com>" . "\n";
$headers .= "From: adminemail@yahoo.com <adminemail@yahoo.com>";
// Mail it
mail('email1@yahoo.com', 'test', 'salam', $headers, "f");
答案 0 :(得分:37)
您可以设置回复&amp;将路径返回到标题中,如下所示
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'Return-Path: webmaster@example.com'
OR 作为调整返回路径的第五个参数
mail($to, $subject, $message, $headers, "-f email@wherever.com");
其中email@wherever.com应由您的邮件替换。
答案 1 :(得分:5)
问题是邮件格式要求标题使用\r\n
行结尾...而不是\n
,其中的诀窍是一些服务器会同时接受它们(为它们转换它们似乎神奇地工作) )而其他人会认为那些没有\r\n
结尾的人无效,基本上会忽略你的所有标题。所以请尝试:
$headers = "MIME-Version: 1.0\r\n".
"Content-type: text/html; charset=utf-8\r\n".
"Return-Path: adminemail@yahoo.com";
mail ("email1@yahoo.com","test","salam",$headers);
顺便说一句,return-path需要一个RFC1123邮箱(没有尖括号,只有电子邮件地址)...不确定为什么你要设置如你的例子中的return-path,因为它与来自地址(如此多余)
答案 2 :(得分:0)
只需定义返回路径
$returnPath = "-fadminemail@yahoo.com"; //-f will do the job
mail('email1@yahoo.com', 'test', 'salam', $headers, $returnPath);