Mailcow是一个可以用Docker部署的邮件服务器,安装部署都比较简单,稍微搞下就能用。。。至于发的邮件进不进垃圾箱,看造化了。。。
本文将带领你使用Mailcow部署一个完全符合国际标准的邮件服务器,首先别急着部署,我们先要按照标准来设置域名解析。
1.rDNS,就是反向解析,这个功能只能看你的VPS或是服务器商家支不支持了,建议搭建邮件服务器的时候选择支持rDNS的机器,非必须要求,只是设置了rDNS后可以让你的邮件更加容易进入对方的收件箱而不是垃圾箱。
下面我以Linode为例,在这里可以设置rDNS:
假设你的邮件服务器域名是mail.example.com,那么在下面填入即可:
2.A记录,我以cloudflare的DNS解析界面做示范,那么现在就添加一个mail的A记录解析到你的服务器IP:
3.MX记录,这里假设你的域名是example.com,那么MX记录NAME这里就是@,Value就是mail.example.com:
4.两个CNAME记录,这是Mailcow部署所需要的。NAME分别是autoconfig/autodiscover,Value是mail.example.com:
5.两个TXT记录,这里分别指的是SPF和DMARC,都是增强邮箱安全性的,并且解析设置相对简单,建议都设置一下。我们先来设置SPF,新建一个TXT记录,NAME指向你的根域名,假设你的根域名是example.com,那么NAME就是example.com,Value填写如下所示内容:
v=spf1 mx ~all
如下图所示:
接着是DMARC,还是一样新建一个TXT记录,NAME填写_dmarc,Value填写:
"v=DMARC1; p=reject; rua=mailto:mailauth-reports@example.com"
其中“mailauth-reports@example.com”修改成一个你可以正常接收邮件的地址。
如下图所示:
6.DKIM记录,这其实也是一条TXT记录,并且也是增强邮箱安全性的,但是现在我们还无法配置,因为不知道具体的解析值是多少,这个要等Mailcow部署好了后才能设置。
所以,现在DNS解析这一块我们可以告一段落了,现在登到VPS内设置时间,VPS系统我选择使用CentOS7X64
先设置同步时间:
yum -y install chrony systemctl start chronyd systemctl enable chronyd
然后把NTP也开启了:
timedatectl set-ntp true
国外机器时区一般都不是东八区,我们把系统的本地时区改成东八区:
timedatectl set-timezone Asia/Shanghai
最后查看一下系统时间是否正常:
timedatectl status
如果一切正常,你应该可以看到类似如下图所示的内容:
其中Universal time是世界时间,这个不用管,RTC time是主板时间,也不用管,只要保证Local time即本地时间是正确,并且是东八区即可。
现在我们安装Docker:
yum -y install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.1.ce-3.el7.x86_64.rpm systemctl start docker systemctl enable docker.service
再安装docker-compose:
curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
然后拉取mailcow项目文件:
yum -y install git cd /opt git clone https://github.com/mailcow/mailcow-dockerized cd mailcow-dockerized
执行sh脚本:
./generate_config.sh
这个脚本会让你填写一个域名,这个域名就是我们之前A记录解析的域名,按我们之前说的,那这里我的域名地址应该是:mail.example.com
完成之后拉取镜像:
docker-compose pull
确保全部都是done状态:
运行mailcow:
docker-compose up -d
如果如下图所示,那么你的mailcow就运行成功了:
打开域名mail.example.com,你应该可以看到登录界面:
默认的管理员账号是admin,密码是moohoo
登录进去之后第一件事是修改管理员密码,接着要来添加域名,点击右上角的“Configuration”-“Mailboxes”可以看到如下界面:
添加域名这个Domain填写你的根域名,其他的就按需要配置就行了,填写好了后点击“Add domain and restart SOGo”:
现在我们回到之前的DNS解析这块,之前说过还有一个DKIM解析没设置,这里我们点击“Configuration”-“Administration”,然后选择“Configuration”,然后按如下图设置:
1.Domaion/s填写我们的根域名,我这里假设就是example.com
2.DKIM key length (bits)选择1024bits。
完成之后你将得到一个解析值:
回到cloudflare的DNS解析界面,添加一个TXT记录,NAME填写:
dkim._domainkey
值就是上图的这一串,复制粘贴就行了,如图所示:
现在我们就可以回到mailcow创建邮箱账号了,点击“Mailboxes”-“Add mailbox”开始创建你的邮箱账号:
Domain选择我们之前刚添加的域名,其他这些就按需填写即可:
完成之后我们可以在右上角打开SOGo这个APP,这个就是mailcow的邮件系统:
登录界面长这样,可以设置中文:
使用我们创建的邮箱账号登录,注意账号是邮件地址的全名,比如这样:test@example.com
测试发信:
Mail-Tester测试了一下,还行吧8.1分:
我就TM一直纳闷这个PYZOR是个啥J8玩意:
当然这些都只是测试并不代表实际使用效果,那么Mailcow实际发送邮件的效果如何?
答曰:稀烂!
发QQ邮箱进垃圾箱,发Gmail进垃圾箱,发什么都进垃圾箱,玩你妹啊!rDNS/SPF/DMARC/DKIM都配置了还是如此,我也不知道该怎么办了,反正我个人觉得这款邮件系统发信进收件箱的几率太低了。。。
另外这个SOGo的界面说实话,有点华而不实,看上去挺好看的UI,实际用起来感觉难用到爆炸,算了,不想BB了,告辞~