Debian 8下Postfix+Dovecot+Roundcube搭建邮件服务器指南
由于网上搜到的邮件配置大多是基于CentOS的,或者自编译的,很少有基于Debian的。
所以作者不得不自己探索如何在Debian下搭建。
本文只是作者初次尝试,对邮件服务器皮毛不懂,而且极其不安全!!请读者慎用。
科普文:http://linux.vbird.org/linux_server/0380mail.php
进阶型科普文:http://www.iredmail.org/docs/install.iredmail.on.debian.ubuntu.html#important-things-you-must-know-after-installation
这是买证书后的措施:http://www.iredmail.org/docs/use.a.bought.ssl.certificate.html
简单一点儿,明白这些:Postfix (SMTP server),Dovecot (POP3/IMAP server),Roundcubemail (Web Client)
强烈推荐iRedmail,一个集成安装的脚本,不过貌似它不支持我的Debian8
在域名侧配置
A记录配置
+ ------------------- + ------------- + ---------- +
| Host | Points To | TTL |
+ ------------------- + ------------- + ---------- +
| mydomain.com | X.X.X.X | 12 Hours |
| mail.mydomain.com | X.X.X.X | 12 Hours |
+ ------------------- + ------------- + ---------- +
MX记录配置 (只影响收信)
+----------+--------------+------------------------+--------+
| Priority | Host | Points To | TTL |
+----------+--------------+------------------------+--------+
| 0 | mydomain.com | mail.mydomain.com | 1 Hour |
| 5 | mydomain.com | other1.otherserver.net | 1 Hour |
| 10 | mydomain.com | other2.otherserver.net | 1 Hour |
+----------+--------------+------------------------+--------+
下面两条是默认的MX记录,如果没有可无视,优先级改到5或10比你设的大就行(越小优先级越高)
SPF记录配置 (以TXT记录形式,只影响垃圾邮件,最后再尝试好了)
+--------------+----------------------------------+--------+
| Host | TXT Value | TTL |
+--------------+----------------------------------+--------+
| mydomain.com | "v=spf1 mx mx:mydomain.com -all" | 1 Hour |
+--------------+----------------------------------+--------+
在主机侧配置
Reverse PTR配置 (只影响发信)
X.X.X.X mydomain.com
Reverse PTR除了影响mailserver外,对SSL验证也有影响,为了保证https加密正常,还是用主域名吧
在VPS侧配置
本人的配置,保证个人使用正常,不对公众开放,非企业邮箱配置。
安装只是开始
#安装Postfix
$ sudo apt-get install postfix
安装时候选择internet site,然后稍微配置下/etc/postfix/main.cf
设置mydestination,把两个域名mydomain.com与mail.mydomain.com都加进来,
看到有篇文章说把MX记录里默认的other1.otherserver.net与other2.otherserver.net也加进来,我也加了。
注意保持myhostname与mynetworks为默认不变,因为牵扯到该死的Peer Certificate,还有用户认证机制
#安装Dovecot (默认已装好)
$ sudo apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd
安装RoundCube
这个不在默认的源里,backports里有,不过我还是选择自主下载
相对于子目录,我更偏向于使用子域名mail.mydomain.com。
去官网下一个新的complete版,解压到/var/www/mail.mydomain.com/
在apache2里新建一个站点,简单配置(安全由.htaccess保证)
$ sudo emacs /etc/apache2/sites-available/mail.conf
<VirtualHost *:80>
ServerName mail.mydomain.com
ServerAdmin webmaster@mydomain.com
DocumentRoot /var/www/mail.mydomain.com/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
#启用站点,一定在/etc/apache2/sites-available目录下执行
$ sudo a2ensite mail.conf
访问mail.mydomain.com/INSTALL,然后参照INSTALL里的安装方法安装即可。
注意,SMTP发信还是用默认的mail吧,PHP5.6以上的Peer认证问题很难根本解决的。
默认配置其实挺好的
Debian默认的解决方案是这样的:在你的内网里无视证书,不开放外网访问权限。
所以证书的签名基本都是基于hostname的,和域名没什么关系,
如果你想用mail.mydomain.com作为外部邮箱工具的收/发信服务器,不好意思,默认配置不支持
因为我的想法是所有针对邮箱的使用,都必须经过网页端的RoundcubeMail,所以默认的配置即可。
如果需要认证,应该要装SASL,然而我买不起证书,所以不认证算了。
如果自己签证书,那证书问题就如滔滔江水,连绵不绝。
Mozilla的Let’s encrypt项目声称将来会支持IMAP,将来看看情况吧,买证书什么的已经过时了
然而,即使这样,网页登录时使用http协议且需要输入的用户名是主机的用户名,这实在是太糟了。
(注意刚才的配置没有涉及虚拟账户,登入的用户密码和VPS登录的用户名密码一致,好不安全!)
因为SSL啊TLS啊证书啊私钥啊这类东西太复杂了,这个问题会在另开一篇单独阐述
疑难杂症
1.解决文件夹移动失败的问题,新的Dovecot已经内置配置,不用再用autocreate插件
修改/etc/dovecot/conf.d/15-mailboxes.conf
把需要的几个文件夹的auto从默认的no改成subscribe(光create是不够的,必须sunscribe才能同步)
namespace inbox {
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Junk {
auto = subscribe
special_use = \Junk
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
}
#记得重启
$ sudo dovecot reload
2.解决删除的权限问题
随着一次次的尝试删除,已删除邮件里会一封一封增多,但收件箱里却一封也没少。
检查一下dovecot的log:/var/log/mail.err,会发现是一个权限问题
把主用户(jhpx)加入mail组
#添加至mail组但不删除原有组
$ sudo usermod -a -G mail jhpx
#检查
$ groups jhpx
因为邮箱服务器的坑太多,有些我也不是很懂,欢迎留言讨论。