我正在将运行 sendmail 的邮件服务器迁移8.14.3
到 postfix 服务器。MDA
新服务器上的是Dovecot
.为了确保无缝过渡,最好将传入邮件同时传送到两台服务器。
我听说过sendmail 中的SMART_HOST
和nullcient
选项,但我不确定这是否按我需要的方式工作。我需要的是所有传入的邮件也传递到新服务器,保持现有配置不变,因为它们也应该传递到旧服务器上的邮箱。
邮件发送到类似的地址[email protected]
,并且应该投递到mx1.mydomain.com
(旧)和mx2.mydomain.com
(新)。因此mx1
应将副本转发至mx2
.
双 MX 记录是不够的,因为只有当另一台服务器无法访问时才会联系一台服务器 - 而两台服务器都应该接收邮件。
也许另一种选择是配置为通过?sendmail
直接传送到Dovecot
新服务器上。lmtp
或者也许只是rsync
两台服务器上的邮箱。但我不确定这是否兼容。
更新:它的格式不一样:在旧服务器上,每个邮箱只有普通的旧文件,而在每个用户的邮件目录中Dovecot
创建一个cur
,结构。new
tmp
然而,最终,具有相似格式的文件驻留在这些目录中。但分离字符串是不同的。也许可以定期翻译旧格式并将其复制到新服务器?这会以某种方式干扰吗Dovecot
?我可以将副本放在新服务器上的哪里,以便Dovecot
在识别它们的同时不会受到影响?
我希望有某种解决方法。
系统信息
邮箱数量:~100-200
旧服务器:
OS: Debian GNU/Linux 6.0
sendmail 8.14.3
mails are delivered to "real"/"passwd" users
Other Serives: apache2, mysql, other miscellaneous
新服务器:
OS: Debian GNU/Linux 9
postfix
dovecot
mails are delivered to virtual users/SQL
Other services: apache2, mysql, other miscellaneous
当前 MX 条目供参考:
mydomain.com. IN MX 0 mx1.mydomain.com.
mydomain.com. IN MX 1 mx2.mydomain.com.
答案1
我现在无法测试这一点,但我相当确定sendmail
理解/etc/aliases
表单中的条目
fred: fred, fred@otherserver
(如果它进入疯狂循环,请在第二个前面加上fred
反斜杠\
。)
/etc/passwd
然后直接从文件中提取aliases
。并记住运行newaliases
(?)来更新内部sendmail
数据库。
以下是生成要附加的行的示例片段。它仅考虑 UID 在 { 1000 ≤ uid < 65000 } 范围内的用户。
[ ! -f /etc/aliases.save ] && cp -p /etc/aliases /etc/aliases.save
(
cat /etc/aliases.save
echo
getent passwd |
awk -F: '$3>=1000 && $3<65000 {printf "%s: %s, %[email protected]\n", $1, $1, $1}'
) >/etc/aliases
newaliases