通过另一台服务器中继 Postfix 电子邮件以防止退回邮件

Sho*_*vas 5 email smtp postfix

我希望 Postfix 最初尝试自行发送电子邮件,只有在出现退回邮件时,才尝试通过中继发送。

这种情况是,我们将一个现有的网站(其中包含我们需要向用户发送电子邮件的用户)移至具有新 IP 的新服务器,而主要电子邮件提供商却无法控制该 IP。我知道我需要预热 IP,但问题是如何在预热 IP 的同时确保交付?看起来像是第 22 条军规。

我的想法是尝试通过我们的新 IP 地址,只有在反弹时,才通过我们已经从中发送邮件的预热 IP 再次尝试。

我知道如何将所有 Postfix 电子邮件中继到另一个 Postfix 服务器,但我希望我可以仅在收到退回邮件时进行条件中继,以便我们最终可以预热这个新 IP。

Jac*_*ans 3

postconf -e soft_bounce=yes    
postconf -e smtp_fallback_relay=otherhost:port
postconf -e bounce_queue_lifetime=0
Run Code Online (Sandbox Code Playgroud)

soft_bounce(默认值:否)

用于将邮件排队的安全网,否则邮件将被退回发件人。此参数禁用本地生成的退回邮件,更改对来自远程服务器、内容过滤器或插件的否定响应的处理,并通过将 5xx 回复代码更改为 4xx 来防止 Postfix SMTP 服务器永久拒绝邮件。然而,soft_bounce 并不能解决地址重写错误或邮件路由错误。

注意:“soft_bounce = yes”在某些情况下是通过修改服务器响应来实现的。因此,Postfix 记录的响应可能与 Postfix 实际发送或接收的响应不同。

例子:

软弹跳 = 是

ounce_queue_lifetime(默认值:5d)

当投递因临时错误而失败并且队列中的时间已达到ounce_queue_lifetime 限制时,将退回邮件视为无法投递。默认情况下,此限制与普通邮件相同。

时间单位:s(秒)、m(分钟)、h(小时)、d(天)、w(周)。默认时间单位为 d(天)。

当邮件传送仅尝试一次时指定 0。

Postfix 2.1 及更高版本中提供了此功能。

smtp_fallback_relay

smtp_fallback_relay (默认值:$fallback_relay)无法找到或无法访问的 SMTP 目标的中继主机的可选列表。在 Postfix 2.2 及更早版本中,此参数称为fallback_relay。默认情况下,当未找到目的地时,邮件将返回给发件人,而当无法到达目的地时,邮件将推迟递送。对于批量电子邮件传送,在同一主机上运行后备中继 MTA 会很有帮助,这样它就可以重用发件人 IP 地址。这可以加快因基于 IP 的信誉系统(灰名单等)而延迟的交付速度。后备中继必须是 SMTP 目标。指定域、主机、主机:端口、[主机]:端口、[地址]或[地址]:端口; [host] 形式关闭 MX 查找。如果您指定多个 SMTP 目标,Postfix 将按指定的顺序尝试它们。为了防止 MX 主机和后备主机之间的邮件程序循环,Postfix 2.2 版及更高版本将不会对 MX 主机所在的目标使用后备中继(假设 DNS 查找已打开)。

  • 这是我收到的确切消息,我希望能够回退: postfix/smtp[10169]: 45B80234E8: to=<example@hotmail.com>,relay=mx1.hotmail.com[65.54.188.126]:25,delay=1443 ,延迟=1443/0.01/0.33/0.11,dsn=4.0.0,状态=SOFTBOUNCE(主机mx1.hotmail.com[65.54.188.126]说:550 SC-001(BAY004-MC4F35)不幸的是,来自123.123.123.123的消息未发送。请联系您的 Internet 服务提供商,因为他们的部分网络已在我们的阻止列表中。您还可以将您的提供商转至 http://mail.live.com/mail/troubleshooting.aspx#errors。(回复到 MAIL FROM 命令)) (2认同)