本着为了一些需要邮箱服务的程序(Denyhost)方便,随便搭建了一个本地的postfix邮箱服务器,但是又想着搭都既然搭了干脆再折腾下让它能真正用起来。献上可爱的postfix图片一张。
邮箱工作过程:
在搭建邮箱服务器时我也是莫名跟着各种教程,但因为各方教程的目标、时间、软件版本不同导致稀里糊涂走了很多弯路。所以首先应该了解的是邮件系统本身是怎么样的?
具体MTA、MUA、MSA、MDA专有名词解释可参考 电子邮箱系统组成部分
开始之前:
- Postfix: 是一个标准的MTA「Mail Transfer Agent」服务器,它负责通过SMTP协议管理发送到本机的邮件以及由本机发向外界的邮件。在本例中,Postfix会把邮件的本地投递工作「接受到邮件之后将邮件存档到本地磁盘」交给Dovecot的LMTP服务「Local Mail Transfer Protocol service」处理。当然,当大家想通过服务器向外界发送邮件时,Postfix还将负责验证权限以确保服务器不被滥用。「很多邮件服务器根本没有对SMTP做用户验证,这将导致任何匿名用户都可以通过服务器向外界发送邮件,从而使得服务器变成垃圾中转站」
- Dovecot: 是一个非常优秀的IMAP/POP服务器用以接收外界发送到本机的邮件。通常,Dovecot的工作内容包括:验证用户身份以确保邮件不会被泄露。在本例中,Dovecot将负责所有的「身份验证」工作,我们会配置Dovecot查询本地的MySQL数据库以确认用户身份
- MySQL: 不必多说,它将存储所有的用户信息,其中包括:需要监听的域名信息、用户邮箱地址、登录密码、邮箱别名「alias」等
- Ubuntu: 本例中的OS将选择Ubuntu16.04作为标准,其他Linux发行版的相关操作不在描述
动手配置:
本人参考的是Linode文档中 Email with Postfix,Dovecot,and MySQL
这篇更中文友好且有原理配图 Postfix+Dovevot+MySQL搭建邮箱服务器
没错如果要问我为什么不自己写,既然有写的又好又全面的文档干嘛不用。
配置过程的坑:
postfix的main.cf配置文件中,别忽略这行配置
mydestination= localhost`
后面参数只需localhost,多了会造成Postfix投递Dovecot的LMTP服务不正常SSL证书可以使用Letsencrypt免费证书,配置过程同给Apache等服务器配置一样,只需要将Letsencrypt生成的证书拷贝到你需要的路径即可
`smtpd_tls_cert_file=/etc/dovecot/dovecot.pem smtpd_tls_key_file=/etc/dovecot/private/dovecot.pem`
可以使用telnet 命令检查端口是否正常开放(谁知道你有没有默认的iptables firewall 拦截了某些端口)
#连接目标主机端口 telnet example.com 25 #返回了220 及邮件服务器exmaple.com postfix #表示服务器端口开启正常 #打招呼 ehlo example.com #返回一系列250- #表示个服务正常
当然你也可以使用telnet命令发送、查收邮件,参考 SENDING OR VIEWING EMAILS USING TELNET
能收到外服务器发来的邮件,但往外邮件服务器发邮件一直连接超时?
`Mar 26 15:33:03 mail postfix/smtp[30204]: connect to mx3.qq.com[183.57.48.35]:25: Connection timed out Mar 26 15:33:33 mail postfix/smtp[30204]: connect to mx2.qq.com[183.60.15.138]:25: Connection timed out Mar 26 15:34:03 mail postfix/smtp[30204]: connect to mx2.qq.com[14.17.41.170]:25: Connection timed out `
首先查看iptables的配置确保没有阻塞关键端口
`sudo iptables -L
如果没有什么异常的话,那可能是你的主机提供商给你封了目标端口25的ip包,尝试申请开启,如果未果那可能就要使用别的邮箱服务器代投。
- 最后提醒:好习惯日常备份
使用Rainloop搭建WebMail
没错就算是搭建好服务器以后,你看到的邮件、操作邮件的命令依然是苍白的命令行。这时就需要搭建一个高大上WebMail来帮你管理邮件。
rainloop是个php语言开发的精简、美观的WebMail,在官网www.rainloop.net可以下载到最新版本。
按照配置文档安装完成后,输入网址后面加上/?admin 即可进入后台管理界面,在域名菜单栏中添加你的服务器所在域名即可使用。另外还有丰富的插件包支持。
这样就有了属于自己的邮箱服务器及webmail。感觉还不错,附上自己的Webmail https://mail.zhongm.in
关于postfix 的详细配置,可参见postfix 文档 http://www.postfix.org/documentation.html