以下标头使用 PHP 的 mail() 函数发送:
$emailheaders = "From: " . $sender . "\n";
$emailheaders .= "Return-Path: " . $sender . "\n";
$emailheaders .= "MIME-Version: 1.0\n";
$emailheaders .= "Content-type: text/html; charset=UTF-8\r\n";
mail($email, $subject, $body, $emailheaders);
它工作正常,除了Return-Path:
重置为nobody@server.com
,或者至少这是在查看使用上述标题接收的电子邮件的扩展标题时显示的内容。这自然意味着不会收到退回的电子邮件。
Apache 是否重置了标头,在这种情况下为什么,或者我使用mail()
不正确?
我能做些什么来防止这种情况发生。使用mail()
的第五个参数(例如-f sender@server.com
)是不可能的,因为 PHP 处于安全模式并且提供者不会改变它。我想尽管安全模式已打开,但没有办法允许某些用户使用第五个参数。
服务器正在运行 Apache 2.2.3 和 PHP 版本 5.1.6。