是否可以更改通过PHP的mail()函数发送的电子邮件中的返回路径值?
它的值是'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");
发布于 2012-09-16 18:12:24
您可以在headers中设置reply to & return path,如下所示
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'Return-Path: webmaster@example.com'
或者作为调整返回路径的第五个参数
mail($to, $subject, $message, $headers, "-f email@wherever.com");
其中email@wherever.com应该被你的邮件所取代。
发布于 2012-10-03 02:06:34
问题是邮件格式要求标题使用\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,因为它与from地址相同(非常多余)
发布于 2019-05-27 18:40:54
只需定义Return-Path
$returnPath = "-fadminemail@yahoo.com"; //-f will do the job
mail('email1@yahoo.com', 'test', 'salam', $headers, $returnPath);
https://stackoverflow.com/questions/12446039
复制相似问题