我有以下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就不会拒绝电子邮件。我认为设置from
allow_from_override on
和allow_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标头的本地部分没有更改。