Php
強制 PHP 郵件避免使用後綴 root@myorigin;改用 /etc/mailname 嗎?
我最近發布了一個使用後綴和虛擬別名設置郵件伺服器的問題。我在這裡解決了這個問題:
Postfix/Dovecot - 多個域和多個 Linux 帳戶
總而言之,我設置
myorigin
為 localhost,以及其他一些設置。通過 SMTP 發送和接收郵件效果很好!/usr/sbin/sendmail
但是,當從PHP 的命令發送郵件時mail()
,它會以某種方式忽略From:
標題,而是獲取myorigin
值。這是重要的標題:
From: Me <user@example.org> 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 的電子郵件。這可能嗎?
謝謝你。
好的,所以也許我在發布這個問題時有點倉促。事實證明,這很好用:
/usr/sbin/sendmail -i -t -f postmaster@example.org
所以,真正的解決方案是使用
mail.force_extra_parameters
標誌,並將其設置為 -fpostmaster@example.org只要確保您不使用 cli php.ini 進行測試,期望 apache php.ini 可以工作。噓。