我有一台装有 sendmail 的旧 RedHat 4 服务器,我想用一台新的 Ubuntu 服务器替换它。我需要将两台服务器放在同一个 MX 记录上,以便测试新服务器是否正常工作。
新服务器上的用户帐户与旧服务器的形式不同。例如,旧服务器是[电子邮件保护],新的是[电子邮件保护]。
如果我将新服务器放在相同的 mx 记录中,并设置最低优先级,那么理论上当第一个服务器失败时,电子邮件将发送到另一个服务器(新服务器)。但是如果我发送的电子邮件地址不在旧服务器中,sendmail 会以错误 5.1.1“用户不存在”响应我。有没有办法更改此错误,也许使用一个 4xx,这样中继将到达另一个服务器?
我不知道我是否解释清楚了这一点...希望你能理解。
答案1
解决你的问题的答案是添加到旧服务器的发送邮件以下行:
define(`LUSER_RELAY', `[new.server.name]')dnl
然后你需要按照 Red Hat 的建议进行构建发送邮件配置文件并重新启动 sendmail。使用上述设置,任何到达旧服务器的被视为本地的邮件都将被转发到不存在的用户的新服务器。
要真正改变不存在用户的响应代码,您必须更详细地说明当用户不存在时您希望发生什么。