centos dovecot mysql_Centos6.4 配置postfix+dovecot+mysql
使用Linux用戶驗證和收發郵件
需要組件 postfix dovecot roundcube
postfix 用來收發郵件, 作為SMTP服務器, 監聽25端口
dovecot 用作為POP3, IMAP服務器, 監聽 POP3的110, IMAP的143端口, 用來和郵件客戶端(如Foxmail,roundcube等)通訊, 管理郵件
roundcube 作為客戶端, 登錄時通過IMAP來認證用戶
postfix 配置
/etc/postfix/main.cf:
myhostname
mydomain
#指定發送郵件時地址 xx@domain.com 中的domain.com, 如果使用mail命令發送郵件,需要設置該參數否則不能發送
myorigin
#可接受轉發郵件的類型
mynetworks_style
#mynetworks和relay_domains配合使用, 用來代替mynetworks_style
#可接受轉發的來源IP
mynetworks
#可接受轉發的域名
relay_domains
#郵件保存格式, 使用Maildir格式
home_mailbox=Maildir/
以上配置完后就可以用postifx收發郵件了, 也可以通過客戶端設置SMTP來讓postfix發送郵件,但是客戶端無法管理郵件,因為postfix沒有提供POP3或IMAP來和客戶端互動, 要想讓客戶端能管理和查看郵件需要配置dovecot來提供POP3或IMAP服務
dovecot 配置
配置 /etc/dovecot/dovecot.conf:
#開啟的協議
protocols= imap pop3 lmtp
配置 /etc/dovecot/conf.d/10-auth.conf:
disable_plaintext_auth=no
auth_mechanisms = plain login
#使用Linux用戶來驗證
!include auth-system.conf.ext
配置 /etc/dovecot/conf.d/10-mail.conf :
#郵件所在目錄
mail_location = maildir:~/Maildir
配置 /etc/dovecot/conf.d/10-master.conf:
service auth {
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
配置postfix, 讓其使用dovecot來做sasl認證:
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = ''
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks, reject_unauth_ destination
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
使用mysql來存放驗證用戶,接受域名等信息
因為前面使用的是Linux用戶,所以每次收發郵件可以直接使用Linux用戶來操作,但是如果要使用mysql來存放用戶和驗證,我們就需要一個Linux用戶來進行收發的操作,因此我們可以建立一個Linux用戶來代理操作
$ useradd -g vmail -d /home/vmail
之后為了讓postfix和dovecot能夠使用mysql特性,需要安裝 dovecot-mysql, centos 6.4的postfix好像帶了mysql功能
配置dovecot,讓其通過mysql的數據來認證用戶:
/etc/dovecot/conf.d/10-auth.conf :
#注釋掉這行
#!include auth-system.conf.ext
#打開這行
!include auth-sql.conf.ext
/etc/dovecot/conf.d/10-mail.conf:
mail_location = maildir:/home/vmail/%d/%n/Maildir
/etc/dovecot/10-master.conf:
service auth{
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
mode = 0600
user = vmail
#group =
}
}
/etc/dovecot/auth-sql.conf.ext:
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/home/vmail/%d/%n
}
postfix通過mysql驗證用戶
配置 /etc/postfix/main.cf :
#告訴Postfix去MySQL數據庫種尋找域名、用戶帳號密碼及郵件別名等信息
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
postfix使用dovecot的LMTP來存放郵件
設置postfix將接受到的郵件轉給dovecot存放到對應目錄
配置 /etc/postfix/main.cf :
#將mydestination的值修改為'',以便Postfix能夠通過MySQL表中相關數據決定需要接受/發送郵件的域名,這樣更具有通用性
mydestination =''
#以便告訴Postfix不要使用LDA「Local Delivery Agent」轉而使用Dovecot的LMTP完成本地郵件投遞
virtual_transport = lmtp:unix:private/dovecot-lmtp
配置 /etc/dovecot/conf.d/10-master.conf :
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
配置 /etc/dovecot/conf.d/20-lmtp.conf , 作用是使用postmaster_address地址將接收到的郵件轉發給對應的本地用戶:
protocol lmtp {
postmaster_address = postmaster@yourdomain
}
參考:
總結
以上是生活随笔為你收集整理的centos dovecot mysql_Centos6.4 配置postfix+dovecot+mysql的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么在Bios中改为U盘模式 如何在Bi
- 下一篇: win10切换输入法的快捷键怎么设置 W