我并不是一个有经验的postfix管理员,因此对于我的以下问题可能有一个简单的解决方案:

我有一个个人 SMTP 服务器,运行在 Ubuntu 24.04 上,带有postfix 3.8.6。

(假设) 上定义了多个电子邮件地址mydomain.com,我使用如下所示的配置文件将发送到这些地址的电子邮件转发到它们各自的gmail帐户:/etc/postfix/valiases

user1@mydomain.com  user.one@gmail.com
user2@mydomain.com  user.two@gmail.com
user3@mydomain.com  user.three@gmail.com
user4@mydomain.com  user.four@gmail.com
group1@mydomain.com  user.one@gmail.com, user.two@gmail.com
group2@mydomain.com  user.three@gmail.com, user.four@gmail.com
...

这种配置在大多数情况下都有效,但有些来自严格 SPF 配置的电子邮件服务器(例如xyz@otherdomain.com)的电子邮件除外。在这种情况下,gmail服务器会拒绝此类转发的电子邮件,并显示如下消息:

550-5.7.26 MAIL FROM 域 [ otherdomain.com ] 具有硬失败策略 (-all) 的 SPF 550-5.7.26 记录,但无法通过 IP:[ abcd ] 的 SPF 550-5.7.26 检查。为了更好地保护我们的用户免受 550-5.7.26 垃圾邮件和网络钓鱼的侵害,该邮件已被阻止。有关 550-5.7.26 设置身份验证的说明,请转到 550 5.7.26 d2e1a72fcca58-71ec144d346si5857955b3a.303 – gsmtp

这里abcd是我的 SMTP(postfix)服务器的 IP 地址。显然,gmail不会接受来自我的服务器 IP 地址的电子邮件,并且在From:(或实际上是Return-Path :)字段中包含类似 的内容xyz@otherdomain.com

为了解决这个问题,我使用了/etc/postfix/canonical如下配置文件:

@otherdomain.com       me@mydomain.com
@yetanotherdomain.com  me@mydomain.com
...

并且由于这个配置,postfix添加了一个如下的标头:

Return-Path: <me@mydomain.com>

来自上述域的电子邮件。

结果,gmail接受了这封邮件:

ARC-Authentication-Results: i=1; mx.google.com;
       spf=pass (google.com: domain of me@mydomain.com designates a.b.c.d as permitted sender) smtp.mailfrom=me@mydomain.com;
       dmarc=fail (p=REJECT sp=NONE dis=QUARANTINE) header.from=otherdomain.com

这对配置文件中枚举的域有效/etc/postfix/valiases,如我上面所示。但是,我需要一个更通用的解决方案来覆盖所有域

请注意,我的postfix服务器确实控制 SPF 记录并拒绝垃圾邮件。因此,我不需要gmail进行的 SPF 检查。我需要的解决方案是一种通用方法,将所有电子邮件转发为来自mydomain.com。我如何在 postfix 中执行此操作?

1

  • 1
    传统方式的邮件转发会破坏 SPF 和相关的发件人验证方案。有几种方法可以解决这个问题,例如本问答中探讨的 SRS(发件人重写方案)


    – 


最佳答案
1

看起来您缺少 DKIM 签名,这就是 DMARC 失败的原因。

这里有一些说明:

您还可以使用在线来生成密钥或 openDKIM。

1

  • 谢谢,但这不是我想要的。


    –