让 postfix 使用 X-Postfix-Sender 的“发件人”电子邮件地址

让 postfix 使用 X-Postfix-Sender 的“发件人”电子邮件地址

我正在尝试将 postfix 设置为 Amazon SES 的中继。SES 只允许从特定(已验证)电子邮件地址发送电子邮件。这部分有效。现在我需要与 PHP 集成。

我需要的是支持多个验证的电子邮件地址,例如[电子邮件保护][电子邮件保护]我需要 postfix 将标头设置X-Postfix-Sender为我传递给 mail() 调用的“发件人”标头的值。不幸的是,它设置了。X-Postfix-Sender: rfc822; [email protected]

我正在使用以下方式发送电子邮件:

mail('[email protected]', 'PHP test', 'Test message from PHP at ' . $time, "From: [email protected]");

在日志中我收到来自 SES 的拒绝:“诊断代码:smtp;554 消息被拒绝:电子邮件地址未经验证。”

php.ini 包含sendmail_path = /usr/sbin/sendmail -t但这似乎没有太大区别。

我如何让 Postfix 将X-Postfix-Sender标题设置为“发件人”标题的值?

=========================== 答案 ============================

additional_parameters我可以通过使用PHP 的 mail() 方法选项来做我想做的事情:

mail('[email protected]', 'PHP test', 'Test message from PHP at ' . $time, '', "-f [email protected]");

这会将‘-f’标志和发件人地址传递给 sendmail。

答案1

您可以使用smtp_generic_mapspostfix 主配置文件中的参数 -/etc/postfix/main.cf将本地域重写为全局有效域。查看以下链接了解详情 -smtp_通用_映射如何设置

-将 smtp_generic_maps 条目添加到 /etc/postfix/main.cf

  smtp_generic_maps = hash:/etc/postfix/generic

-创建 /etc/postfix/generic 文件,内容如下

 [email protected]   [email protected]

确保重新启动 postfix:

 systemctl restart postfix

相关内容