当通过php发送时,msmtp 1.8.22从地址覆盖



我有以下msmtp 的配置文件

account         default
host         SES_HOST
port         587
timeout         5
auth         on
tls          on
tls_starttls    on
tls_trust_file     /etc/ssl/certs/ca-certificates.crt
syslog          on
set_from_header on
allow_from_override off
user         SES_USERNAME
password     SES_PASSWORD
from         SES_VERIFIED_EMAIL

php.ini

sendmail_path = /usr/local/bin/msmtp -ti

我想确保所有通过php发送的电子邮件都使用发件人标题中的SES_VERIFIED_EMAIL,这样SES就不会拒绝电子邮件。我认为设置fromallow_from_override onallow_from_override off意味着从php发送的发件人标头不是SES_VERIFIED_email的电子邮件将被SES_VERIFIED_email取代,因此消息将被发送

但我只能通过php发送电子邮件,其中from标头已经作为SES_VERIFIED_EMAIL放入,但我需要它在所有情况下都能工作。来自标头的似乎没有被替换

我希望msmtp将From标头覆盖到SES_VERIFIED_EMAIL,这样它就可以被发送。我以为上面的设置就可以了。

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: NOTSESVERIFYED@example.com'       . "rn" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>

更改:

set_from_header on

收件人:

set_from_header off

尝试:

from               SES_VERIFIED_EMAIL
rewrite_domain     SES_VERIFIED_EMAIL

rewrite_domain选项用于重写From标头的域部分。如果你想从非你自己的域发送邮件,这很有用。From标头的域部分将重写为rewrite_domain选项的值。From标头的本地部分没有更改。

相关内容

  • 没有找到相关文章

最新更新