Mail Server 的转移备忘

最近对着信用卡上账单发呆的时候,发现一些毫无用处的月费还在傻傻地续着。
比如49.212.212.212这台服务器上仅仅是挂了我的邮箱而已。一个邮箱的费用价值居然有1080日元/月?
太说不过去了,migrate到其它服务器之后解约。

基本步骤

  1. 在target server 上安装和配置 postfix 以及 dovecot。 smtp通过SASL验证

  2. 切换DNS,将绑定在老服务器上的域名指向新服务器

  3. 在新服务器上的添加SSL证书

  4. rsync老服务器上的邮件目录下的所有邮件

收获

在实际migrate的过程中遇到了很多坑。主要原因还是对mail server的原理不熟悉造成的。

postfix 和 dovecot

通常我们看到网上的大多数教程都教我们安装配置postfix和dovecot这两个东西。
首先postfix是一个邮件中转器,所谓的中转就是,当我们收到邮件的时候,看一下邮件的目标地址是否在我们服务器的配置上?如果是的话,就停止中转,这样在我们的邮箱里,这封邮件就躺了下来。而dovecot的作用是,我们需要查看邮件的时候,不可能每次都登陆服务器找到邮箱目录然后读取,而是通过imap或者pop协议,在客户端(pc,手机application)上读取。
所以,postfix主要对应的是smtp,而devecot主要是对应imap和pop协议。

smtp接受外部的submission来发送邮件

默认的配置我们是无法通过外部的mail client来发送邮件的。这个时候需要配置postfix的master.cf, 添加

1
2
3
4
5
6
7
8
9
10
submission inet n       -       n       -       -       smtpd
# -o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject

netstat -tlnp 确认587端口打开的话,就可以从外部的mail client上发送邮件了。

参考资料

postfix dovecot 配置

587,465, 25端口的区别