快速搭建全功能 Mail server
目标
我要一个拥有无穷多个alias的邮箱 [email protected],注册每个网站都来一个不同的Email地址,从而知道哪个服务把我邮箱卖了。
开工
准备好DNS:
|
|
用 LetsEncrypt 给 mail-server.example.com 申请一个证书。
然后 git clone https://github.com/tomav/docker-mailserver.git 。
然后参考里面的 docker-compose.yml.dist,写一个 docker-compose.yml,需要改动:
-
domainname,本例中example.com -
hostname,本例中mail-server -
ENV部分增加一条
SSL_TYPE=letsencrypt -
将宿主机的
/etc/letsencryptvolumns 进 container 里的相同位置该文件夹里有
certs、csr、keys、live、renewal之类的东西如果你不是用的
certbot-auto,路径可能不同。
然后
|
|
然后去 ./config/opendkim/keys/example.com 找个txt,照着内容添加对应的DNS的TXT记录。注意你最终填进DNS提供商里的TXT应该是这文件里两个字符串拼起来的结果,结果中是没有引号的。类似 v=DKIM1; k=rsa; p=fleiwflki.... 这样。
然后就可以 docker-compose up 了。
接下来随便用个什么邮件客户端,添加帐号:
- 用户名是完整Email地址
- IMAP和SMTP服务器都填
mail-server.example.com - IMAP 端口 143,STARTTLS,普通密码验证
- SMTP 端口 587,STARTTLS,普通密码验证
应该可以收发件了。
Troubleshooting
初次连接服务器时提示证书错误
查看一下服务器给的证书,如果是Dovecot自签证书的话说明LetsEncrypt没配置对,如果是提示证书域名不正确的话说明DNS没配置对。
alias没生效,邮件服务器提示查无此帐号
对 alias 的改动是在重启 container 之后才会生效的。
检查 ./setup.sh alias list 的结果,应该如我上面例子的预期结果那样。如果不对,手动在 ./config/postfix-virtual.cf 里加上这行结果,并重启container。
What’s next
这个镜像的功能很简单,但完成得不错。如果你需要更强大的邮件账户管理,甚至Web前端的话,可以看看 Mailu 项目 。