最近2天一直在折騰一個客戶的郵件問題,真是頭大,以前安裝的zencart傳上去之后只要我放棄開了25端口就很輕松的搞定郵件問題,但是最近連續(xù)幾個客戶反映郵件有問題,一直發(fā)布出去,也沒太在意,只是這幾天新開vps服務(wù)器出現(xiàn)類似問題太多了,于是也該重視了,于是就好好折騰,今天終于有了結(jié)果,于是我就亨利一下Sendmail碰到的一些問題,如郵件無法發(fā)送,發(fā)送后的一些問題等等,這里統(tǒng)一做個記錄,以備不是之需,同時也希望能幫到一些碰到這些問題的童鞋。每個問題都會有詳細(xì)的操作步驟,按照步驟操作即可;
折騰環(huán)境: CentOS 郵件組件:Sendmail
一、主機(jī)雖支持mail()函數(shù),卻無法發(fā)送郵件; 先使用以下命令檢查是否已安裝sendmail:
rpm –q sendmail
檢測結(jié)果確實(shí)未安裝該組件,果斷安裝:
yum install sendmail
等待安裝完成后去檢查了下php.ini配置,里面需要修改相關(guān)參數(shù),直接:
vi /usr/local/php/etc/php.ini
找到 sendmail_path 所在行,發(fā)現(xiàn)是未啟用,去掉前面的分號;(按i編輯模式),去掉分號,并將其改為:
sendmail_path = /usr/sbin/sendmail -t –i
這個有的默認(rèn)就會是這個值。接著重啟sendmail:
service sendmail restart
二:發(fā)送郵件過慢問題 上面的步驟已經(jīng)可以正常發(fā)送郵件了,但是卻發(fā)現(xiàn)發(fā)送過慢,此時,請檢查hosts:
cat /etc/hosts
結(jié)果發(fā)現(xiàn):
127.0.0.1 localhost.localdomain localhost
中并沒有hostname,將其加入,查看主機(jī)名稱直接命令:hostname ,這里加入主機(jī)名稱為:testhost,則改過后的內(nèi)容則為:
127.0.0.1 localhost.localdomain localhost testhost
接著,重啟sendmail;
完成此步驟后還可以解決一個sendmail和sm-client啟動慢的問題;
三、郵件發(fā)送方為:root@localhost.domain代發(fā)問題
方法一:修改hostname為個人域 方法二:偽裝成user@domain.com
執(zhí)行以下命令:
/etc/mail/sendmail.mc
打開后編輯文件,在末端加入以下內(nèi)容:
MASQUERADE_AS(gongzi.me)dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl MASQUERADE_DOMAIN(gongzi.me)dnl
將其中的gongzi.me換成你自己的域名,然后保存。接著執(zhí)行以下命令:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
而后,重啟sendmail服務(wù)。
四:執(zhí)行 m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 時,報錯:sendmail.mc:10: m4: cannot open `/usr/share/sendmail-cf/m4/cf.m4': No such file or directory,并且導(dǎo)致sendmail相關(guān)服務(wù)無法正常啟動。
原因:未安裝sendmail-cf 解決:執(zhí)行以下命令:
yum install sendmail-cf
完成后問題解決。
有別的再陸續(xù)補(bǔ)充!