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

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

我希望 Postfix 首先尝试自己发送电子邮件,然后只有出现退回时才尝试通过中继发送。

场景是,我们将一个现有网站(需要向用户发送电子邮件)移至一个新服务器,该服务器具有一个新 IP,而主要电子邮件提供商却无法控制。我知道我需要预热 IP,但问题是如何在预热 IP 的同时确保交付?这似乎是一个两难问题。

我的想法是尝试通过我们的新 IP 地址,并且只有在退回时,才通过我们已经发送邮件的预热 IP 再次尝试。

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

答案1

postconf -e soft_bounce=yes    
postconf -e smtp_fallback_relay=otherhost:port
postconf -e bounce_queue_lifetime=0

soft_bounce(默认值:否)

安全网可使邮件保持排队状态,否则邮件将被退回给发件人。此参数可禁用本地生成的退回邮件,更改远程服务器、内容过滤器或插件的负面响应处理方式,并通过将 5xx 回复代码更改为 4xx 来防止 Postfix SMTP 服务器永久拒绝邮件。但是,soft_bounce 无法解决地址重写错误或邮件路由错误。

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

例子:

soft_bounce = 是

bounce_queue_lifetime(默认值:5d)

当投递因临时错误而失败,且队列中的时间已达到 bounce_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 目标。指定域、主机、主机:端口、[主机]:端口、[地址] 或 [地址]:端口;格式 [主机] 将关闭 MX 查找。如果指定多个 SMTP 目标,Postfix 将按指定顺序尝试它们。为了防止 MX 主机和后备主机之间出现邮件循环,Postfix 2.2 及更高版本将不会对其作为 MX 主机的目的地使用后备中继(假设 DNS 查找已打开)。

相关内容