我正在管理一个邮件服务器,由于数据中心维护,该服务器将暂时关闭三四天。我想找到一个解决方案来(完全或部分)解决此不可用期间丢失的邮件。由于数据量巨大,因此很难将其迁移到其他数据中心。
我想到的一个办法就是在其他数据中心搭建一个临时的邮件服务器,当收到新邮件时,邮件服务器自动发送回复邮件告诉发件人“我们暂时关闭三四天,请稍后再发送邮件或通过其他方式联系”。
我想知道这种方法是否适用于现有的邮件服务器?或者有更好的可用方法?(免费解决方案是首选,因为它只是暂时的)
答案1
将辅助 MX 记录指向您的临时服务器。以下是一个简单的示例:
gmail.com. 1299 IN MX 5 gmail-smtp-in.l.google.com.
gmail.com. 1299 IN MX 10 alt1.gmail-smtp-in.l.google.com.
维护时,请将主服务器脱机。由于向其发送邮件的任何操作都应为非交互式的,因此没有人会真正注意到任何超时问题。当邮件服务器无法联系主服务器时,它将回退到下一个编号更高的服务器(本例中服务器名称前面的 5/10)。
编号较高的服务器也应配置为辅助邮件服务器。它不必将邮件投递到邮箱,只需将其保留,直到可以到达主邮箱即可。以下是Postfix 的配置示例。
答案2
您可以设置当前邮件系统的克隆(用户和结构),将新服务器设置为您所服务的域的电子邮件配置,确认新服务器的交付工作正常,并关闭旧 MX,使其不会接收消息。此时,您的用户将看到维护数据中心的电子邮件“消失”,但他们至少会看到当前的电子邮件。数据中心维护完成后,您可以将旧 MX 重新联机并撤消临时域电子邮件配置,然后使用 rsync 将 3-4 天的电子邮件从临时服务器传输回用户的“真实”邮箱。
恕我直言,我认为如果他们的发件人会收到这样的退回邮件。只能将其作为最后的手段。
答案3
您正在寻找的是“存储转发”服务,这种服务有很多。在关闭系统之前,请编辑 MX 记录以指向存储转发系统。当您的系统正常运行时,所有邮件都将正常传送。当您的系统关闭时,其他系统将代表您接收邮件并存储它们。当您的系统再次启动时,保留的邮件将传送到您的系统。