我有一个服务器进程使用发件人标头中的少数地址之一发送邮件。不幸的是,该程序没有设置发件人标头,导致 Outlook 用户的收件箱中出现“{Sender} 代表 {From}”。
有没有办法让发件人标头与该用户发出的邮件的发件人标头相匹配?
答案1
这信封发件人由邮件客户端在发送邮件时设置;它不是标题,也不会出现在邮件正文的任何地方。
Postfix 是 MTA,它并不真正关心 From: 标头,除非它可以根据信封发件人或其他规则重写它们(如果您愿意的话)。
这在内部 Postfix 域在外部无效的情况下很有用(例如[email protected]
)的情况下很有用,以使收件人能够响应消息;信封发件人在传递邮件时被设置为 Return-Path: 标头。
我从未见过执行相反操作的要求,即根据发件人:标题更改信封发件人;由于标题很容易伪造,这将使垃圾邮件目标变得容易。
你应该这样做:
- 设置 postfix 以要求提交按照 RFC4409 中的定义,对于所有本地提交的邮件,使用 TLS 和 SASL;请参阅 master.cf 中的注释掉的示例。
permit_mynetworks
通过从中删除来禁止通过 MTA 端口 (25) 提交邮件smtpd_*_restrictions
。- 禁止通过 sendmail(1) 命令及其所有衍生命令通过参数提交
authorized_submit_users
邮件 - 配置您的应用程序以使用专用登录,该登录将通过以下方式限制信封发件人:smtpd_sender_login_maps范围
- 配置您的应用程序以在提交邮件时设置正确的信封发件人。