postfix + dovecot + mysql 创建虚拟用户(二)

紧接上篇文章。关于postfix的配置上一篇文章已经给大家介绍了。
这篇文章给大家介绍下Dovecot的相关配置。(文件下载在最后)
附上一篇博客地址:https://blog.csdn.net/bicheng4769/article/details/102960319

Dovecot配置:

需要修改的文件:

  • /etc/dovecot/dovecot.conf Dovecot的主配置文件
  • /etc/dovecot/conf.d/10-mail.conf Dovecot磁盘路径相关配置信息
  • /etc/dovecot/conf.d/10-auth.conf Dovecot用户验证相关配置信息
  • /etc/dovecot/conf.d/10-master.conf Dovecot本地socket相关配置信息
  • /etc/dovecot/conf.d/10-ssl.conf Dovecot关于SSL的相关配置信息
    重要的话说三遍:
    修改之前请注意备份
    修改之前请注意备份
    修改之前请注意备份

修改 /etc/dovecot/dovecot.conf 文件

listen = *
dict {
  #quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
  #expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
!include conf.d/*.conf
!include_try local.conf
passdb {
  #指定认证密码的方式采用sql认证,使用的sql是使用dovecot-sql.conf.ext的配置
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}
#指定用认证,采用静态统一的用户,也就是我们之前设置vmail账户 5000就是uid
userdb {
  driver = static
  args = uid=5000 gid=5000 home=/mnt/vmail/%d/%n

}
#调试阶段建议开启debug模式
auth_debug_passwords= no
mail_debug= no
auth_verbose=no
auth_verbose_passwords=plain

上述配置的大概意思 开启conf.d下面所有的配置,配置认证方式,采用sql认证。

修改 /etc/dovecot/dovecot-sql.conf.ext文件

如果没有的话直接创建也可以:
内容如下:

driver = mysql

connect = host=127.0.0.1 dbname=email user=root password=root port=3306

default_pass_scheme = plain

password_query = SELECT username AS user,password FROM mailbox WHERE username = '%u' AND active='1';

user_query = SELECT maildir, 5000 AS uid, 5000 AS gid, CONCAT('dict:storage=',floor(quota/1000),' proxy::quota') as quota FROM mailbox WHERE username = '%u' AND active='1';

基本和之前postfix的配置差不多。

修改 /etc/dovecot/conf.d/10-mail.conf 文件

#指定邮件存储的地址
mail_location = maildir:/mnt/vmail/%d/%n/Maildir
#=。= 不知道为啥
first_valid_uid = 1000
# 同上
mbox_write_locks = fcntl

修改 /etc/dovecot/conf.d/10-auth.conf 文件

# 增加明文认证
disable_plaintext_auth = no
auth_mechanisms = plain login

修改 /etc/dovecot/conf.d/10-master.conf 文件

service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    #port = 993
    #ssl = yes
  }
}

service pop3-login {
  inet_listener pop3 {
    port = 110
  }
  inet_listener pop3s {
    #port = 995
    #ssl = yes
  }
}
service lmtp {
  unix_listener lmtp {
    #mode = 0666
  }
}
service imap {
  #process_limit = 1024
}
service pop3 {
  #process_limit = 1024
}
service auth {
  unix_listener auth-userdb {
    mode = 0666
    user = vmail
    group = vmail
  }
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
}
service auth-worker {
  #user = root
}

service dict {
  unix_listener dict {
    #mode = 0600
    #user =
    #group =
  }
}

设置 auth-userdb 为之前创建的 postfix 专用用户 vmail

修改 /etc/dovecot/conf.d/10-ssl.conf 文件


ssl = yes
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

重启dovecot

service postfix restart

该如何测试?
在之前的文章中数据库有几章表,在对应的表中添加数据
domain 添加对应的域名
我这里给一条sql:

INSERT INTO `domain` (`domain`,`description`,`aliases`,`mailboxes`,`maxquota`,`quota`,`transport`,`backupmx`,`created`,`modified`,`active`) VALUES ('test.cn','江苏',0,0,10,2048,'virtual',0,'1970-01-01 00:00:00','1970-01-01 00:00:00',1);

mailbox加入数据:

INSERT INTO `mailbox` (`username`,`password`,`name`,`maildir`,`quota`,`local_part`,`domain`,`created`,`modified`,`active`,`is_deleted`) VALUES
 ('[email protected]','123456','caojing','test.cn/caojing/',0,'caojing','caojing.cn','2019-11-05 16:58:30','2019-11-05 16:58:30',1,NULL);

别名表 alias也添加一条记录:

INSERT INTO `alias` (`address`,`goto`,`domain`,`created`,`modified`,`active`) VALUES 
('[email protected]','[email protected]','test.cn','2019-11-05 16:58:30','2019-11-05 16:58:30',1);

测试:

我们这里使用建议的第三方应用登录,我使用的是网易闪电邮,直接百度就可以下载了
@网易爸爸 给我广告费哦
填入帐号密码 :
postfix + dovecot + mysql 创建虚拟用户(二)_第1张图片

就我们刚才数据库插入的 [email protected] 密码:123456
下一步
postfix + dovecot + mysql 创建虚拟用户(二)_第2张图片
我们这里使用的是ssl登录,所以 端口就不是25了,而是465。
注意这里有个 “测试账户当前配置”,点一下,如果没有没有问题,就会出现如图所示:
postfix + dovecot + mysql 创建虚拟用户(二)_第3张图片
ok至此配置成功:

总结:
多看官方文档,对陌生的东西,官方说明永远是最直接最准确的。
dovecot配置下载

你可能感兴趣的:(邮件)