Postfix 不会接受虚拟域上其他用户提交的电子邮件

Postfix 不会接受虚拟域上其他用户提交的电子邮件

我的雇主给了我一个电子邮件地址[email protected]。雇主的外发邮件服务器只允许从其网络内部进行连接(就像 ISP 坚持要求您通过他们进行连接才能使用其 smtp 服务器一样)。因此,当我去咖啡馆吃午饭时,老板发来的电子邮件到达我的手机时,我无法回复,直到我回到办公室。此外,当我在旅行或在现场工作时,我无法回复工作电子邮件。

我不被允许重新配置主邮件服务器,但我有一个可以控制的小型独立 Postfix 服务器。我在那里设置了一些虚拟域,并将其添加myemployersdomain.com为附加虚拟域和[email protected]虚拟用户。这样就行了,我可以通过此服务器向世界任何地方发送外发邮件,但 myemployersdomain.com 上的其他用户除外(这才是我真正想要的)。

当我尝试发送至[电子邮件保护]我明白了

NOQUEUE:拒绝:RCPT 来自... 550 5.1.1 ...收件人地址被拒绝:虚拟邮箱表中的用户未知

Postfix 服务器认为它控制了 myemployersdomain.com 的所有内容,如果我不为该域上的收件人设置虚拟用户,它就不会允许这样做。我可以通过设置虚拟文件中的 catchall 别名来消除错误

@myemployersdomain.com [email protected]

但当然,我发送的所有电子邮件都会直接返回给我!

我尝试设置传输文件以通过 gmail 中继 myemployersdomain.com 的所有邮件,如下所示:

example.com  :
myemployersdomain.com smtp:[smtp.gmail.com]:587

但这并没有什么区别。(对于其他(外部)域上的收件人地址,中继工作如预期的那样,但对于这个虚拟域,Postfix 不允许您达到这个程度 - 首先出现 5.1.1 错误。)

是否可以配置 Postfix 将发往本地定义的虚拟域的邮件发送到广阔的互联网上,然后让 DNS 进行分类?

答案1

如果将辅助机器设置为备份服务器,则需要进行一些设置。

relay_domains= myemployersdomain.com

您还将transport_maps像这样使用:

myemployersdomain.com relay:[the.actual.server]

然后你(正如 Falcon 所说)需要relay_recipient_maps一个通配符条目,或者一个你和你老板的条目。

然后我将设置 TLS 加密的 SASL 授权,并且只允许经过身份验证的用户发送。

smtpd_relay_restrictions = permit_sasl_authenticated, reject

`

答案2

电子邮件地址的域名部分的意义在于它表明哪组 SMTP 服务器负责为整个域传递邮件。换句话说:您不能这样细分域。

然而,听起来你真正想做的(除了规避政策,但从理论上讲这是一个有趣的问题,所以我无论如何都会回答)只是中继邮件。

在这种情况下,你应该让它转发它看到的所有邮件,只要用户通过了身份验证。我相信您可以将其设置为完全没有本地域。毕竟,我认为您实际上并不希望您的中继 MTA 接受邮件投递,从而拥有两个具有相同地址的收件箱。这只会造成混淆。

如果您告诉它中继所有内容,它会将其发送到目标域的 MX 记录中的任何内容,我认为这就是您想要的。

最好的方法是不设置本地域。例如,这种设置对于用于病毒和垃圾邮件过滤的中继 MTA 很常见。

我确实记得有一个名为的功能relay_recipient_maps,但我不认为这是这种用例的正确方法。

相关内容