简而言之:我需要设置备份 MX 服务器,它将对收到的消息进行排队,以便稍后通过原始 MX 进行传送,并且它必须只接受将列在以下邮箱中的邮箱的消息:$某个文件。
细节:主邮件服务器上的邮件系统 - 假设其mx.example.com- 设置如下:
- LDAP 用于身份验证和存储邮件
- Postfix 作为 MTA
- dovecot、amavisd-new 和 milter-greylist。
所以想法$某个文件是:
- 解析 LDAP 数据库以获取域列表和邮箱列表,并输出$某个文件
如何应该根据一些人的说法可以这样做:
- 当主要mx.example.com由于某种原因不可用,备份 MX 备份.example.com开始接受要投递的邮件(MX 记录优先级很有用)并将其放入队列,但仅适用于列出的域/邮箱$某个文件
- mx.example.com 恢复上线后,在 backup.example.com 上形成的队列将转移到原 MX 进行处理。
因此,我开始挠头并开始在谷歌上搜索如何做到这一点,但到目前为止还没有运气。
问题我很想得到答案或者至少得到一些提示(也许是一些文章的链接?):
- 是否有可能执行这样的备份 MX 设置?
- 哪些 MTA 可以执行我所描述的操作:postfix、sendmail、exim?
- 如果是,怎么办?
我知道,在备份 MX 上,我至少需要设置与主 MX 相同的灰名单,以防止垃圾邮件。
我们有一个不同的、更容易实现的备份 MX 设置,其中这种中继是使用 sendmail 和 sendmail.cf 中的选项完成的:
# Hosts for which relaying is permitted ($=R)
FR-o /etc/mail/relay-domains %[^\#]
其中,relay-domains 包含允许将邮件转发到主 MX 的域列表。但我很好奇您是否可以提供答案和一些帮助。提前谢谢您。
答案1
除了作为主 mx 之外,Postfix 还可以用作备份 mx。它有文档说明如何设置备份 mx将 Postfix 配置为远程站点的主 MX 主机或备份 MX 主机。
基本上,您有两个文件,内容分别为 (1) 有效域列表(例如主 mx 的域)和 (2) 有效用户列表(例如主 mx 处理的电子邮件地址)。例如,我们将文件 (1) 保存在 中/etc/postfix/validdomain
,将文件 (2) 保存在 中/etc/postfix/validuser
。不要忘记这postmap
两个文件。
在备份 MX 的 main.cf 中,添加/编辑以下条目
relay_domains = hash:/etc/postfix/validdomain
relay_recipient_maps = hash:/etc/postfix/validuser
文件validdomain
用于验证可以接受哪个域。文件validuser
用于验证可以接受哪个用户。如果 postfix 只是使用validdomain
而不使用validuser
,您的备份 MX 将接受不存在的用户并成为背向散射源。
答案2
使用 postfix,您可以在 postfix main.cf 中执行以下操作:
1: go to your MX backup server and add permit_mx_backup to your smtpd_recipient_restrictions
2: always in your MX backup server
relay_domains = $mydestination domain1.com domain2.net domain3.org
如果你想使用文件来指定你可以做的域
touch /etc/postfix/domains
echo "domain1.com" > /etc/postfix/domains
echo "domain2.com" >> /etc/postfix/domains
echo "domain3.org" >> /etc/postfix/domains
postmap /etc/postfix/domains
并修改了之前的指令如下:
relay_domains = $mydestination, hash:/etc/postfix/domains
此后,您可以重新加载 postfix 服务,并记住在互联网上放置 mx 备份服务器,您需要确保您没有创建开放中继