是否可以通过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");
Run Code Online (Sandbox Code Playgroud)
GBD*_*GBD 39
您可以设置回复并将路径返回到标题,如下所示
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'Return-Path: webmaster@example.com'
Run Code Online (Sandbox Code Playgroud)
OR作为调整返回路径的第五个参数
mail($to, $subject, $message, $headers, "-f email@wherever.com");
Run Code Online (Sandbox Code Playgroud)
其中email@wherever.com应由您的邮件替换.
问题是邮件格式要求标头使用\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);
Run Code Online (Sandbox Code Playgroud)
顺便说一句,return-path需要一个RFC1123邮箱(没有尖括号,只有电子邮件地址)...不确定为什么要像示例中那样设置return-path,因为它与发件人地址相同(如此多余)
小智 5
只需定义返回路径
$returnPath = "-fadminemail@yahoo.com"; //-f will do the job
mail('email1@yahoo.com', 'test', 'salam', $headers, $returnPath);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38251 次 |
最近记录: |