赞
踩
安装Dovecot:
yum -y install dovecot dovecot-mysql
启动服务并设置开机自启动:
- systemctl start dovecot
- systemctl enable dovecot
Dovecot配置文件目录:/etc/dovecot,在该目录中dovecot.conf和conf.d目录下的配置文件很重要,下面分别做配置介绍。
该配置文件是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
增加或修改如下配置:
- # 邮件存储位置,%d表示域名,%n表示用户名
- mail_location = maildir:/var/mail/vhosts/%d/%n
- # /var/mail的权限组设置为mail
- mail_privileged_group = mail
添加用户和组:
- 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
添加或修改如下配置:
- # 禁用明文密码
- disable_plaintext_auth = yes
- # 密码授权机制设置为明文,即密码本身不做加密,我们已经启用了TLS传输加密
- auth_mechanisms = plain login
- # 引用该配置文件启用MySQL授权
- !include auth-sql.conf.ext
- # 屏蔽系统授权的配置
- #!include auth-system.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
- }
/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 命令重命名结果中的列。
这个文件主要作用是为了打通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
- }
该配置文件主要用来配置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
这个文件是用来指定收件箱的命名空间的,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
- }
- }
至此,Dovecot 配置已完毕,可以重启服务进行测试验证。
stystemctl restart postfix dovecot
通过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
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.
Foxmail配置imap协议,并进行收发测试。
至此,Dovecot配置完毕。
其他配置请参考本系列其他文章。
参考来源:Postfix+Dovecot+Roundcube开源邮件系统搭建系列4:Dovecot安装配置 | MailABC邮件知识百科
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。