我有一个由 Postfix 驱动的电子邮件服务器。除了服务器上的传统电子邮件帐户外,我还想维护一些帐户,它们的唯一作用是将所有收到的邮件转发到不同邮件系统上的不同地址。
例如。我拥有域名,并在服务器上example.com
设置了带有地址的帐户。我希望这个帐户将所有传入邮件转发到不属于我的域中的不同邮件系统中的邮箱。我知道,我可以在我的查找表中添加一个条目。[email protected]
[email protected]
virtual_alias_maps
[email protected] [email protected]
但我担心 Postfix 会使用原始信封发件人地址来传递邮件。如果发件人来自属于我的域 example.com,那就没问题,否则stranger.net
服务器可能会将此邮件归类为垃圾邮件。
有没有什么办法可以在递送时更改信封发件人?
有smtp_generic_maps
这方面的要求吗?
如果是这样,那么我的服务器使用特定的信封发件人发送电子邮件,然后在转发的消息中添加其他内容,这样可以吗?
还有什么其他方法可以解决此类问题?
答案1
您的担心是有道理的,因为存在 SPF 检查器。如果
- 你转发的电子邮件来自具有适当 SPF 记录的域名
- 您的 IP 没有列在其发件人 SPF 记录中
- 接收方使用 SPF 记录作为识别垃圾邮件的因素
那么是的,您可能会收到 SPF 失败的错误消息,并且电子邮件最终进入垃圾邮件文件夹。
SPF 社区承认了这个问题,他们提出了发件人重写方案 (SRS) 来解决此问题。基本上,它会在转发别名地址之前将原始发件人域重写为您的域。对于 postfix,您可以使用postsrsd(Postfix 发件人重写方案守护进程)由 roehling 实施 SRS。
答案2
您似乎很清楚,在类似您的情况下,将返回路径设置为您可控制的路径绝对很重要。至于如何做到这一点,应该很简单,只需将电子邮件重新注入 Postfix 并使用修改后的返回路径即可。
您可以研究如何让 postfix 将您的电子邮件发送到以下命令:
| sendmail -f [email protected] [email protected]
我只是不确定你是否可以在virtual_alias_maps
表中做到这一点。