这里是普通文章模块栏目内容页
CentOS 6.5 LNMP环境下安裝配置SendMail+Dovecot

Centos/ dovecot/ LNMP/ sendmail

Centos 6.3 已預設安裝SendMail

1. 添加SendMail服務域名
vim /etc/mail/local-host-names
將「yourdomainname.com」 加至 local-host-names 文件中
一行一個域名

2. 更改Sendmail的網絡接口
cp sendmail.mc sendmail.mc.bak /備份配置文件
vim /etc/mail/sendmail.mc

查 找:
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA’)dnl
修改為:
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA’)dnl

查 找:
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea’)dnl
修改為:
DAEMON_OPTIONS(`Port=25, Name=MSA, M=Ea’)dnl
若你的伺服不許可使用25,請更改其他.

3. 開啟SMTP的用戶認證
vim /etc/mail/sendmail.mc
尋找:
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl dnl define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
更改:(去掉前面註釋:「dnl」)
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl

4. 安裝SMTP驗證saslauthd套件
yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl-md5

5. 設定可以RELAY的區域
指定為本機RELAY 驗證的部分會使用SMTP驗證
vi /etc/mail/access
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
Connect:yourdomainname.com RELAY

6. 生成sendmail.cf文件
cd /etc/mail
m4 sendmail.mc > sendmail.cf

7. 製作出 hash 格式的資料庫
cd /etc/mail
makemap hash access.db < access

8. 用戶管理指令
groupadd mailuser   /* 建立郵件用戶組*/
useradd -g mailuser -s /sbin/nologin mike   /*建立不能登錄系統的郵件用戶*/
vim /etc/aliases   /*sendmail使用aliases機制實現郵件別名和群發功能*/
admin: maxwell   /*admin是maxwell的別名*/
testgroup: mike,john,tom,jack   /*郵件群發,向testgroup郵箱發送就是向4個人發送*/
newaliases   /*對aliases.db數據庫更新*/

9. 安裝dovecot(POP3,IMAP)
yum install dovecot
vim /etc/dovecot/dovecot.conf
查找:#protocols = imap pop3 lmtp
更改:protocols = imap pop3 lmtp

10. 設定dovecot使用的驗證機制
vi /etc/sysconfig/saslauthd

尋找:MECH=pam
改為:MECH=shadow

11. 設置在系統3和5級別啟動 及重啟
chkconfig –level 35 sendmail on
chkconfig –level 35 saslauthd on
chkconfig –level 35 dovecot on

service dovecot restart
service saslauthd restart
service sendmail restart

注意事項:

若發現Dovecot不能正常使用並在maillog中出了這個訊息:

user towns: Initialization failed: mail_location not set and autodetection failed: Mail storage autodetection failed with home=/home/towns
Error: Invalid user settings. Refer to server log for more information.

vim /etc/dovecot/conf.d/10-mail.conf
找到並修改下行,沒找到就自己加上去,注意/var/spool/mail/這段,請改成自己系統的
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u

问题1: 日志出现tried to use disabled plaintext auth

outlook登陆不进

/etc/dovecot/conf.d目录下有一个10-mail.conf的文件。内容如下:
# mail_location = maildir:~/Maildir
mail_location = mbox:~/mail:INBOX=/var/mail/%u
# mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
disable_plaintext_auth=no
ssl_disable = no
取消注释,并添加你的文件中或许没有的内容。
#vi /etc/dovecot/dovecot.conf

取消注释protocols = imap pop3 lmtp

我的是dovecot-2.1.1-2_132.el5,修改方法如下:

vi /etc/dovecot/conf.d/10-auth.conf去掉disable_plaintext_auth前面#,修改为disable_plaintext_auth = no

vi /etc/dovecot/conf.d/10-ssl.conf修改为ssl = no重启dovecot服务,OK

service dovecot restart

问题二 错误日志:

rhel6 dovecot: pop3(forsaken): Couldn’t open INBOX

解决如下:

Dec 21 16:56:41 rhel6 dovecot: pop3(forsaken): Couldn’t open INBOX top=0/0, retr=0/0, del=0/0, size=0

[root@rhel6 ~]# su – forsaken

[forsaken@rhel6 ~]$ mkdir -p /home/forsaken/mail/.imap/INBOX

为了使新创建的用户可以自动创建这个目录,可以修改/etc/skel/.bash_profile文件如下

[root@rhel6 ~]# vi /etc/skel/.bash_profile

添加如下内容

if [ ! -d ~/mail/.imap/INBOX ];then

mkdir -p ~/mail/.imap/INBOX

fi

重新启动服务或服务器