linux下使用sendmail發郵件,郵箱收不到的解決辦法
1.安裝sendmail
[root@202 ~]# yum -y install sendmailn
2.啟動sendmail服務
[root@202 ~]# /etc/init.d/sendmail startn
3.測試發送郵件
[root@202 ~]# touch body.txt n[root@202 ~]# echo This is test mail>body.txtn[root@202 ~]# mail -s Test mail yourmail@163.com < body.txtn
4.如果不成功,看一下日誌
[root@202 ~]# tail -f /var/log/maillogn
發現服務不可達,網路是暢通的,什麼原因呢?
仔細觀察了一下,原來是這樣:
5.查看hosts文件
[root@202 ~]# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost.localdomain localhost4 localhost4.localdomain4 locanlhost mobann::1 localhost.localdomain localhost.localdomain localhost6 localhost6.localdomain6 localhostn mobann
原來我的虛擬機複製完成後,所有配置改了,但是hosts文件沒有修改。
修改為
127.0.0.1 localhost.localdomain localhost.localdomain localhost4 localhost4.localdomain4 locanlhost 203n::1 localhost.localdomain localhost.localdomain localhost6 localhost6.localdomain6 localhostn 203n
之後重啟網卡
[root@202 ~]# /etc/init.d/network restart n
嘗試修改成正確的機器名202以後,發送郵件成功。經過反覆測試,關鍵是localhost.localdomain這一項,可以反覆嘗試刪除增加它,最後的機器名也很重要
後來發現上邊的方法發送郵件不穩定,經常被163郵件認為是垃圾郵件攔截了,日誌里是這樣顯示的:
Jan 12 13:21:56 201 sendmail[1574]: v0C5LqFu001569: to=<lilyef2000@163.com>, ctladdr=<antenna@localhost.localdomain> (500/500), delay=00:00:03, xdelay=00:00:03, mailer=esmtp, pri=120488, relay=163mx02.mxmail.netease.com. [220.181.14.147], dsn=5.0.0, stat=Service unavailablen
後來我又從網上查到這樣一種方法,不需要安裝sendmail服務,只需要配置一下客戶端的配置文件,直接用mail命令使用外部的smtp來發送郵件。
配置步驟:
1.配置163郵箱開啟smtp服務,並設置授權碼,記住授權碼,一會兒發送郵件的密碼要用這個
2.配置CentOS6.8,刪除sendmail(用不上了,如果要配置郵件伺服器的話可以留著)[root@201 ~]# rpm -qa sendmailnsendmail-8.14.4-9.el6_8.1.x86_64n[root@201 ~]# rpm -e --nodeps sendmail n#只刪除sendmail本身,依賴包不刪,防止出問題n
3.配置外發郵件伺服器,在配置文件最後加入如下內容
[root@201 ~]# vi /etc/mail.rcnset from=thinkpadcentos@163.com nset smtp=smtp.163.comnset smtp-auth-user=thinkpadcentos nset smtp-auth-password=郵箱密碼 nset smtp-auth=loginn
說明:
from是發送郵件的地址 注意要與smtp-auth-user一致,否則可能出錯smtp是發生的外部smtp伺服器的地址smtp-auth-user是外部smtp伺服器認證的用戶名smtp-auth-password是外部smtp伺服器認證的用戶密碼smtp-auth是郵件認證的方式發送測試郵件:
[root@201 ~]# touch testmail.txtn[root@201 ~]# echo This is test mail>testmail.txtn[root@201 ~]# mail -s Test mail yourmailbox@163.com < testmail.txtn
以後有時間再研究一下如何配置郵件伺服器。
推薦閱讀: