使用ubuntu搭建公网个人邮件服务器(基于postfix,dovecot,mysql)

2019-09-23 08:50:32于海丽

同样重启 postfix,验证能否正确找到别名,并返回:

service postfix restart
postmap -q first@test.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

如果响应使用 587 端口来进行俺的 smtp 通信,需修改/etc/postfix/master.cf 文件:

取消以下行的注释:

配置 dovecot

postfix 配置完毕,现在来配置 dovecot,首先编辑主配置文件/etc/dovecot/dovecot.conf:

首先确保下面一行是启用的:

!include conf.d/*.conf

然后在配置文件的最后加入如下配置,启用各协议:

protocols = imap lmtp pop3

修改/etc/dovecot/conf.d/10-mail.conf,确保存在以下两个配置:

mail_location = maildir:/var/mail/vhosts/%d/%n
mail_privileged_group = mail

上面的配置将邮件存放目录设置在/var/mail 中,因此将该文件夹的所属人改为 vmail/vmail.命令如下:

groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /var/mail
chown -R vmail:vmail /var/mail

修改/etc/dovecot/conf.d/10-auth.conf。首先确保如下两个配置存在且值正确:

disable_plaintext_auth = yes
auth_mechanisms = plain login

然后修改配置以禁用系统用户登陆,并开启 mysql 支持,如下图所示:

修改/etc/dovecot/dovecot-sql.conf.ext文件,将内容改成下面的内容:

passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}

修改/etc/dovecot/dovecot-sql.conf.ext:

首选取消 driver 参数注释并设置为 mysql

driver = mysql

然后取消 connect 行注释并设置为如下内容:

connect = host=127.0.0.1 port=3306 dbname=mailserver user=admin password=123456

接着取消 default_pass_scheme 行的注释并改为 MD5

default_pass_scheme = MD5

接着取消 password_query 行的注释并设置为以下信息:

password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

最后将/etc/dovecot的拥有者改为 vmail:dovecot

chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot

修改/etc/dovecot/conf.d/10-master.conf:

首先将 imap-login , pop3-login 下第一个的 port 设置为 0,以禁用非 ssl 加密的 imap 和 pop3 协议,如下图所示: