我最近发布了一个使用 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;
当我更改myorigin
为example.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 能够正常工作。天哪。