PHP邮件带有www-data
|
我正在尝试通过以下代码通过PHP的mail函数调用sendmail:
$to = \'blah@email.state.edu\';
$subject = \'test\';
$message = \'test\';
$headers = \'From: mail@smartrek.blah.me\' . \"\\r\\n\" .
\'Reply-To: mail@smartrek.blah.me\' . \"\\r\\n\" .
\'X-Mailer: PHP/\' . phpversion();
mail($to, $subject, $message, $headers);
但是在我的mail.log中,我收到一条消息,发件人不是我在标头中指定的地址:
<www-data@Name>: Sender address rejected: Domain not found
为什么是这样??我在ubuntu上运行PHP的fast-cgi
为什么sendmail不使用我通过PHP代码指定的标头?
没有找到相关结果
已邀请:
5 个回复
稀瓣囊
。 如果您的电子邮件被接收邮件服务器拒绝,或者需要更改退回电子邮件的发送地址,则可以更改信封“发件人”地址来解决问题。 要更改unix上的信封“发件人”地址,请为sendmail二进制文件指定一个“ -r”选项。通过在\“ sendmail_path \”命令行中添加\“-r \”选项,可以在php.ini中全局执行此操作。您还可以通过在PHP中以编程方式通过将
作为附加参数参数传递给mail()函数(第5个参数)来完成此操作。如果您在两个地方都指定了一个地址,则将使用两个\“-r \”选项来调用sendmail二进制文件,这些选项可能具有不确定的行为,具体取决于您的sendmail实现。使用Postfix MTA,以后的\“ -r \”选项将默默地覆盖以前的选项,从而可以设置全局默认值,并且在尝试在本地覆盖它时仍会表现出合理的行为。 编辑 关于可以传递给sendmail的可选标志:
将设置发件人地址,
将覆盖sendmail生成的默认返回路径(通常使用发件人地址)。如果您希望回弹到发件人地址以外的其他地址,请尝试同时使用两个标志:
我的php.ini
翱抹村
标头重写为
我最终将其跟踪到ssmtp网桥服务,该服务将邮件从我们的Web服务器传送到我们的邮件服务器。我在文件
中添加了行
,问题消失了。
澳绍能
钾涎净介
我将
标志用作PHP email()函数的第五个参数(如已接受的答案所述),但我仍收到以下电子邮件:
因此,我又添加了一个标记
来设置电子邮件的全名,最后我得到了想要的电子邮件:
我发布此答案是因为在这里没有人提及,我对此有些困惑。
死搭胯