更改 PHP 邮件函数中的返回路径

2022-08-30 16:00:15

是否可以更改通过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");

答案 1

您可以将回复和返回路径设置为标头,如下所示

$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 应由您的邮件替换。


答案 2

问题是邮件格式要求标题使用行尾...不是,诀窍是一些服务器会接受两者(为你转换它们,它似乎神奇地工作),而其他人会认为那些没有结尾的都是无效的,基本上忽略了你所有的标头。因此,请尝试:\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);

顺便说一句,返回路径需要一个RFC1123邮箱(没有尖括号,只有电子邮件地址)...不确定为什么您要像示例中那样设置返回路径,因为它与发件人地址相同(如此多余)


推荐