强制 PHP 邮件避免使用 postfix root@myorigin;而是使用 /etc/mailname?

强制 PHP 邮件避免使用 postfix root@myorigin;而是使用 /etc/mailname?

我最近发布了一个使用 postfix 和虚拟别名设置邮件服务器的问题。我在这里解决了这个问题:

Postfix/Dovecot - 多个域和多个 Linux 帐户

总结一下,我将其设置myorigin为 localhost,并进行了一些其他设置。通过 SMTP 发送和接收邮件效果很好!但是,当从 (/usr/sbin/sendmail即 PHP 的mail()命令)发送邮件时,它会以From:某种方式忽略标头,而是抓取myorigin值。

以下是重要的标题:

From: Me <[email protected]>
Return-path: <root@localhost>
Received: from example.org (example.org [104.xxx.xxx.xxx]) by mx.google.com with ESMTPS...
Received-SPF: neutral (google.com: 104.xxx.xxx.xxx is neither permitted nor denied by best guess record for domain of root@localhost) client-ip=104.xxx.xxx.xxx;

当我更改myoriginexample.org使用 PHP 发送邮件时,一切都很顺利,但使用其他方式接收和发送邮件的能力却完全丧失。所以这不是真正的解决方案。

所以我想做的是告诉/usr/sbin/sendmail不要使用myorigin,而是/etc/mailname 只针对 PHP. 我想在其他地方保留 postfix 的电子邮件。

这可能吗?

谢谢。

答案1

好吧,也许我发布这个问题有点仓促。事实证明,这个方法很有效:

/usr/sbin/sendmail -i -t -f [email protected]

因此,真正的解决方案是使用

mail.force_extra_parameters标志,并将其设置为[电子邮件保护]

请确保不要使用 cli php.ini 进行测试,并期望 apache php.ini 能够正常工作。天哪。

相关内容