我正在尝试将Postfix设置为Amazon SES的中继。 SES只允许从特定的(经过validation的)电子邮件地址发送电子邮件。 这部分工作。 现在我需要与PHP集成。
我需要的是支持多个validation的电子邮件地址,例如[email protected],[email protected]。 我需要postfix将X-Postfix-Sender头设置为我传递给mail()调用的“From”头的值。 不幸的是,它设置了X-Postfix-Sender: rfc822; [email protected] X-Postfix-Sender: rfc822; [email protected] 。
我使用以下方式发送电子邮件:
mail('[email protected]', 'PHP test', 'Test message from PHP at ' . $time, "From: [email protected]");
在日志中,我拒绝了SES:“诊断代码:smtp; 554邮件被拒绝:电子邮件地址未validation。
php.ini包含sendmail_path = /usr/sbin/sendmail -t但这似乎没有太大的区别。
我怎样才能让后缀设置X-Postfix-Sender头到'从'头的值?
========================== ANSWER ======================= ===
我可以通过使用PHP的mail()方法的additional_parameters选项来做我想做的事情:
mail('[email protected]', 'PHP test', 'Test message from PHP at ' . $time, '', "-f [email protected]");
这将'-f'标志和一个从地址传递给sendmail。
您可以在postfix主configuration文件 – /etc/postfix/main.cf使用smtp_generic_maps参数,将本地域重写为全局有效的域。 检查以下链接的详细信息 – smtp_generic_maps以及如何设置它 。
– 将smtp_generic_maps条目添加到/etc/postfix/main.cf
smtp_generic_maps = hash:/etc/postfix/generic
使用以下内容创build/ etc / postfix / generic文件
[email protected] [email protected]
确保重新启动后缀。