報錯信息:
esmtp-server: 504 5.7.4 Unrecognized authentication type [HK2PR02CA0167.apcprd02.prod.outlook.com]
"/root/dead.letter" 11/302
. . . message not sent.
背景:
由遇到的以上問題可知阿里雲服務器關閉了25端口,發送郵件才會顯示鏈接超時,而且官方不允許打開該端口,而且大部分郵件都是通過25端口
詳細的可以查看:常見郵箱端口
所以除了換郵箱之外(端口不是25的,要么是國外不好申請,要么收費,我們摸摸口袋…)
言歸正傳,我們以網易163郵箱為例,使用SSL下的465端口。
解決方式:
一、請求數字證書:
[root@zabbix-server-center ~]# mkdir -p /root/.certs/ ###創建目錄,用來存放證書 [root@zabbix-server-center ~]# echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crt [root@zabbix-server-center ~]# certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt ###添加一個ssl證書到證書數據庫中 [root@zabbix-server-center ~]# certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt ###添加一個Global證書到證書數據庫中 [root@zabbix-server-center ~]# certutil -L -d /root/.certs ###列出目錄下的數字證書
二、配置發件人:
[root@zabbix-server-center ~]# vim /etc/mail.rc
在配置文件中添加如下內容:
set from=AAA@163.com
set smtp=smtps://smtp.163.com:465
set smtp-auth-user=AAA@163.com
set smtp-auth-password=***** ###該密碼是在網易郵箱中申請的第三方客戶端密碼,不是賬戶的登陸密碼。
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.certs
進入設置,找到POP3/SMTP/IMAP項,將其開啟,隨后會得到一個“郵箱客戶端授權碼”,也就是:set smtp-auth-password=郵箱客戶端授權碼。
三、郵箱測試:
注意有些郵箱賬號必須要寫全,否則收不到郵件!例如:live郵箱就必須寫全才能收到郵件。但是163郵箱不用寫全,就能接收到郵件。echo "hi jack,i am rose" | mail -s "zabbix" xxx@163.com
[root@zabbix-server-center .certs]# echo "hi jack,i am rose" | mail -s "zabbix" www.xxx@live.com
四、解決證書不被信任問題:
依次輸入命令:
[root@zabbix-server-center ~]# cd /root/.certs/ [root@zabbix-server-center .certs]# ll [root@zabbix-server-center .certs]# certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i 163.crt
解決問題,成功的標志:
Notice: Trust flag u is set automatically if the private key is present.