Postfix+Dovecot+Roundcube开源邮件系统搭建系列4:Dovecot安装配置

avatar
作者
筋斗云
阅读量:0

1. Dovecot安装

安装Dovecot:

yum -y install dovecot dovecot-mysql

启动服务并设置开机自启动:

systemctl start dovecot systemctl enable dovecot

2. Dovecot配置

Dovecot配置文件目录:/etc/dovecot,在该目录中dovecot.conf和conf.d目录下的配置文件很重要,下面分别做配置介绍。

2.1 /etc/dovecot/dovecot.conf 配置文件:

该配置文件是dovecot的主配置,去掉注释,相对简单。主要内容如下:

# 启动imap、pop3、lmtp协议 protocols = imap lmtp pop3 # 监听所有地址,包含ipv4和ipv6 listen = *, :: # 最大连接数限制 mail_max_userip_connections = 50 # 包含conf.d目录下所有的.conf配置文件 !include conf.d/*.conf !include_try local.conf

2.2 /etc/dovecot/conf.d/10-mail.conf  配置文件:

增加或修改如下配置:

# 邮件存储位置,%d表示域名,%n表示用户名 mail_location = maildir:/var/mail/vhosts/%d/%n # /var/mail的权限组设置为mail mail_privileged_group = mail

2.3 用户及目录配置

添加用户和组:

groupadd -g 5000 vmail useradd -g vmail -u 5000 vmail -d /var/mail

创建域名目录:

# 域名需要根据实际更换 mkdir -p /var/mail/mailabc.cn

设置目录所有者和所有组:

chown -R vmail:vmail /var/mail/mailabc.cn chown -R vmail:dovecot /etc/dovecot chmod -R o-rwx /etc/dovecot

2.4 /etc/dovecot/conf.d/10-auth.conf 配置文件:

添加或修改如下配置:

# 禁用明文密码 disable_plaintext_auth = yes # 密码授权机制设置为明文,即密码本身不做加密,我们已经启用了TLS传输加密 auth_mechanisms = plain login # 引用该配置文件启用MySQL授权 !include auth-sql.conf.ext # 屏蔽系统授权的配置 #!include auth-system.conf.ext

2.5 /etc/dovecot/conf.d/auth-sql.conf.ext 配置文件:

修改如下配置段内容:

passdb {   driver = sql   # 这里引入下面的配置文件作为mysql的相关参数   args = /etc/dovecot/dovecot-sql.conf.ext } userdb {   # 用户数据采用static (静态) 方式,通常,SQL数据库也可以做这件事,也可以通过它得到用户的UID,GID和主目录。但此处如果我们仅使用静态UID和GID,并且可以使用模板指定主目录,它会比SQL方式略快一些。   driver = static   args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n }

2.6 /etc/dovecot/dovecot-sql.conf.ext 配置文件:

/etc/dovecot/conf.d/auth-sql.conf.ext 引用了该配置文件,用于查询用户和密码。具体内容如下(其中的数据库名称、授权用户及密码需要根据实际情况修改):

driver = mysql connect = host=127.0.0.1 dbname=maildb user=mailuser password=admin@123 default_pass_scheme = SHA512-CRYPT password_query = SELECT email as user, password FROM vt_user WHERE email='%u';

附件说明:查询必须返回用户名和密码,并且 Dovecot 必须在 user 和 password 变量中使用这些值。因此,如果数据库使用不同的列名称,请使用 AS SQL 命令重命名结果中的列。

2.7 /etc/dovecot/conf.d/10-master.conf 配置文件:

这个文件主要作用是为了打通dovecot和postfix的关联,授权postfix通过lmtp协议访问属于dovecot的地盘,访问权限是0600,表示有读写权限,但无执行权限。这个文件的源文件也比较庞杂,里面对多个协议都有设定,但是如果你全部把它们删了也没关系,等于采用默认设置。

参考内容如下:

service lmtp {   unix_listener /var/spool/postfix/private/dovecot-lmtp {    mode = 0600    user = postfix    group = postfix   } }  service auth {   unix_listener /var/spool/postfix/private/auth {     mode = 0666     user = postfix     group = postfix   }    unix_listener auth-userdb {    mode = 0600    user = vmail   }   user = dovecot }  service auth-worker {   user = vmail }

2.8 /etc/dovecot/conf.d/10-ssl.conf 配置文件:

该配置文件主要用来配置ssl协议及相关证书。

ssl = required # 指定证书位置,和Postfix采用相同的证书 ssl_cert = </var/sslcert/www.mailabc.cn.pem ssl_key = </var/sslcert/www.mailabc.cn.key ssl_cipher_list = PROFILE=SYSTEM

2.9 /etc/dovecot/conf.d/15-mailboxes.conf 配置文件:

这个文件是用来指定收件箱的命名空间的,auto = create表示当这些邮箱都没有的时候,就自动创建它,这里指定的都是常规的,比如收件箱,已发送,垃圾箱,已删除等等,如果需要别的种类,请自行研究。

namespace inbox {   # inbox = yes配置是增加的,据说不加会有问题   inbox = yes   mailbox Drafts {     auto = create     special_use = \Drafts   }   mailbox Junk {     auto = create     special_use = \Junk   }   mailbox Trash {     auto = create     special_use = \Trash   }    mailbox Sent {     auto = create     special_use = \Sent   }   mailbox "Sent Messages" {     auto = create     special_use = \Sent   } }

3. 测试验证

至此,Dovecot 配置已完毕,可以重启服务进行测试验证。

stystemctl restart postfix dovecot

3.1 端口监听检查

通过netstat命令查看,可以看到110、143、993、995、587、25、465端口监听均正常。

[root@localhost ~]# netstat -tuanp | grep -i listen tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      2331/dovecot         tcp        0      0 0.0.0.0:995             0.0.0.0:*               LISTEN      2331/dovecot              tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      795/mariadbd         tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN      1692/master          tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN      2331/dovecot         tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      2331/dovecot             tcp6       0      0 :::25                   :::*                    LISTEN      1692/master          tcp6       0      0 :::993                  :::*                    LISTEN      2331/dovecot         tcp6       0      0 :::995                  :::*                    LISTEN      2331/dovecot               tcp6       0      0 :::3306                 :::*                    LISTEN      795/mariadbd         tcp6       0      0 :::587                  :::*                    LISTEN      1692/master          tcp6       0      0 :::110                  :::*                    LISTEN      2331/dovecot         tcp6       0      0 :::143                  :::*                    LISTEN      2331/dovecot         tcp6       0      0 :::465                  :::*                    LISTEN      1692/master

3.2 服务连通性检查

smtp服务:

[root@localhost ~]# telnet 0 25 Trying 0.0.0.0... Connected to 0. Escape character is '^]'. 220 mail.mailabc.cn ESMTP Postfix

pop3服务:

[root@localhost ~]# telnet 0 110 Trying 0.0.0.0... Connected to 0. Escape character is '^]'. +OK Dovecot ready.

imap服务:

[root@localhost ~]# telnet 0 143 Trying 0.0.0.0... Connected to 0. Escape character is '^]'. * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot ready.

3.3 客户配置测试

Foxmail配置imap协议,并进行收发测试。

Foxmail客户端配置

至此,Dovecot配置完毕。

其他配置请参考本系列其他文章。

参考来源:Postfix+Dovecot+Roundcube开源邮件系统搭建系列4:Dovecot安装配置 | MailABC邮件知识百科

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!