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
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
重新启动服务或服务器