query = SELECT domain FROM domain WHERE domain='%s' AND active = '1' #optional query to use when relaying for backup MX
#query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1' (2).创建/etc/postfix/mysql_virtual_alias_maps.cf文件
[root@mail ~]# vi /etc/postfix/mysql_virtual_alias_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
(3).创建/etc/postfix/mysql_virtual_mailbox_maps.cf文件 [root@mail ~]# vi /etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfix password = postfix hosts = localhost dbname = postfix
query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'
(4).创建/etc/postfix/mysql_virtual_mailbox_limit_maps.cf文件
[root@mail ~]# vi /etc/postfix/mysql_virtual_mailbox_limit_maps.cf
user = postfix password = postfix hosts = localhost dbname = postfix
query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'
4.SMTP 认证设定
(1).查看postfix支持的认证,默认支持dovecot [root@mail ~]# postconf -a cyrus dovecot
(2).修改/etc/postfix/main.cf配置文件 [root@mail ~]#vi /etc/postfix/main.cf smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot
smtpd_sasl_path = /var/run/dovecot/auth-client smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
5.使用Dovecot做为投递
[root@mail ~]# vi /etc/postfix/main.cf # TRANSPORT MAP
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
#修改master.cf文件
[root@mail ~]# vi /etc/postfix/master.cf
#在最后增加这两行,注意flags前面有两个空格,不然会报错
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/dovecot-lda -f ${sender} -d ${recipient} service saslauthd restart
九、安装并配置dovecot邮件检索代理
说明:dovecot 1.X 与 dovecot 2.X配置文件的区别,1.X所以的配置都在同文件中而2.X是多个文件存放的(/etc/dovecot/dovecot.conf 和 /etc/dovecot/conf.d/),所有2.X配置文件比较分散,我把需要修改的配置文件的内容列出来
1.修改dovecot配置文件
(1).修改/etc/dovecot/dovecot.conf #主配置文件 [root@mail ~]# vi /etc/dovecot/dovecot.conf protocols = imap pop3 listen = * dict {
quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext }
!include conf.d/*.conf
(2).修改/etc/dovecot/conf.d/10-auth.conf
[root@mail ~]# vi /etc/dovecot/conf.d/10-auth.conf disable_plaintext_auth = no
auth_mechanisms = plain login cram-md5 !include auth-sql.conf.ext
(3).修改/etc/dovecot/conf.d/10-mail.conf
[root@mail ~]# vi /etc/dovecot/conf.d/10-mail.conf mail_location = maildir:%hMaildir mbox_write_locks = fcntl
(4).修改/etc/dovecot/conf.d/10-master.conf
[root@mail ~]# vi /etc/dovecot/conf.d/10-master.conf service imap-login { inet_listener imap { }
inet_listener imaps { } }
service pop3-login {
inet_listener pop3 { }
inet_listener pop3s { } }
service lmtp {
unix_listener lmtp { } }
service imap { }
service pop3 { }
service auth {
unix_listener auth-userdb { mode = 0600 user = vmail group = vmail }
#新加下面一段,为smtp做认证 unix_listener auth-client { mode = 0600 user = postfix group = postfix } }
service auth-worker { }
service dict {
unix_listener dict { mode = 0600 user = vmail group = vmail } }
(5).修改/etc/dovecot/conf.d/15-lda.conf
[root@mail ~]# vi /etc/dovecot/conf.d/15-lda.conf protocol lda {
mail_plugins = quota
postmaster_address = jun@jungp.comm #管理员邮箱 }
(6).修改/etc/dovecot/conf.d/20-imap.conf
[root@mail ~]# vi /etc/dovecot/conf.d/20-imap.conf protocol imap {
mail_plugins = quota imap_quota }
(7).修改/etc/dovecot/conf.d/20-pop3.conf
[root@mail ~]# vi /etc/dovecot/conf.d/20-pop3.conf protocol pop3 {
pop3_uidl_format = XuXv mail_plugins = quota }
(8).修改/etc/dovecot/conf.d/90-quota.conf
[root@mail ~]# vi /etc/dovecot/conf.d/90-quota.conf plugin {
quota_rule = *:storage=1G }
plugin { }
plugin {
quota = dict:User quota::proxy::quota }
plugin { }
(9).增加/etc/dovecot/dovecot-sql.conf.ext
[root@mail ~]# vi /etc/dovecot/dovecot-sql.conf.ext driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfix default_pass_scheme = CRAM-MD5
user_query = SELECT CONCAT('/var/vmail/', maildir) AS home, 2000 AS uid, 2000 AS gid, CONCAT('*:bytes=', quota) as quota_rule FROM mailbox WHERE username = '%u' AND active='1'
password_query = SELECT username AS user, password, CONCAT('/var/vmail/', maildir) AS userdb_home, 2000 AS userdb_uid, 2000 AS userdb_gid, CONCAT('*:bytes=', quota) as userdb_quota_rule FROM mailbox WHERE username = '%u' AND active='1' mkdir -p /var/vmail/
(10).增加/etc/dovecot/dovecot-dict-sql.conf.ext
[root@mail ~]# vi /etc/dovecot/dovecot-dict-sql.conf.ext
connect = host=localhost dbname=postfix user=postfix password=postfix map {
pattern = priv/quota/storage table = quota2
username_field = username value_field = bytes }
map {
pattern = priv/quota/messages table = quota2
username_field = username
value_field = messages }
2.重新启动服务
service saslauthd restart ps aux | grep saslauthd
[root@mail ~]# service postfix restart
关闭 postfix: [确定] 启动 postfix: [确定] [root@mail ~]# service dovecot restart
停止 Dovecot Imap: [失败] 正在启动 Dovecot Imap: [确定] 至此dovecot配置全部完成,^_^ ……
当我们执行postfixadmin的备份,会出现以下警告,并不能实现备份! (1).修改/var/www/html/admin/backup.php文件
[root@mail admin]# vi /var/www/html/admin/backup.php
#增加一行(如下图)
date_default_timezone_set('PRC');
十一、安装并配置WebMail(Roundcubemail) 1.解压并重命名
[root@mail ~]# tar -xf roundcubemail-0.9.2.tar.gz -C /var/www/html/ [root@mail ~]# cd /var/www/html/ [root@mail html]# ls
admin index.php phpmyadmin roundcubemail-0.9.2 [root@mail html]# mv roundcubemail-0.9.2 webmail [root@mail html]# ls