1. 程式人生 > >阿裏雲ECS服務器無法發送郵件

阿裏雲ECS服務器無法發送郵件

gin 直接 onf con errno 設置圖 word php 找到

摘自:http://www.100cm.cn/article-126-759.html

阿裏雲ECS服務器專用網絡無法發送郵件/郵件發送不出去?
發表:管理員 發表時間:2017-06-17 12:48:56 閱讀:(1100)次
有合作夥伴和渠道反映阿裏雲服務器ecs專用網絡下,無法發送email郵件,於是我們進行了測試和尋找解決方案,網絡上流傳很多版本,但是沒有那麽詳細,具體流程如下:
故障情況如下:
郵件發送請求時候,出現:Provisional headers are shown
[圖片]

排查故障幾個流程:
1、首先你得先看看你的阿裏服務器是經典網絡還是專有網絡,本文章主要適合於專有網絡的服務器,因為專有網絡的服務器禁止了郵件發件25號端口。

2、阿裏服務器專有網絡,安全性比較強,默認自身設置了一層防火墻(在阿裏控制管理後臺中的安全組),
Centos本身又帶了2層防火墻,默認iptables這個是開啟的,需要自己去配置對應的開放端口(文章底部附帶開放端口截圖),另外selinux防火墻是需要進行關閉的(很少用到)
3、阿裏ecs專有網絡的服務器禁止了25號端口,那只能改用465端口來發件;
4、首先原來smtp服務器信息smtp.exmail.qq.com 改為 ssl://smtp.exmail.qq.com 也就是在原來基礎上,前面增加了ssl://;
5、修改phpweb路徑文件:includes/ebmail.inc.php,找到代碼47行
$fp = fsockopen( $smtp, 25, &$errno, &$errstr, 20 );
將25改為465 保存,測試發送完美解決。
[圖片]

附防火墻端口設置圖:
[圖片]

補充一下:
有用戶反饋,說mail命令,無法直接發送email,命令如下:
#echo "內容"|mail -s "標題" [email protected]
這個問題其實跟上面問題一樣,也是得改用ssl465端口來發郵件,
需要找到 mailx的配置文件在/etc/mail.rc
在配置文件中最後面添加下面的代碼(passwd寫開通smtp客戶端給的授權碼)
set ssl-verify=ignore

set [email protected]
set smtp=smtp.163.com
set smtp-auth-user=username
set smtp-auth-password=passwd
set smtp-auth=login
set nss-config-dir=/etc/pki/nssdb/
以上添加好即可。
測試命令:#echo ‘內容‘ | mail -v -r ‘[email protected]‘ -s ‘標題‘ [email protected]
因為用的是默認系統證書,可能認證不通過,但實際不影響發件,可以忽略。

=======================
故障現象

[圖片]

阿裏雲封了25號端口,我們修改配置文件使用465端口來發郵件
[圖片]

該方法適用於阿裏雲centos6
解決辦法:

1 備份/etc/mail.rc 文件
cp /etc/mail.rc /etc/mail.rc.bak

2 修改/etc/mail.rc
在最後添加如下信息:
set ssl-verify=ignore

set [email protected]

set smtp=smtp.exmail.qq.com

set [email protected]

set smtp-auth-password=FlW881218#@!

set smtp-auth=login

set nss-config-dir=/etc/pki/nssdb/

3 測試
echo "cpu 使用率過高" |mail -s "cpu warning" [email protected]

結果:收到郵件,問題解決
[圖片]


阿裏雲centos7 無法發送郵件 使用如下方法

https://bbs.aliyun.com/read/302371.html?spm=a2c4e.11155515.0.0.FyGbyN

先執行下面操作:
借鑒:https://blog.csdn.net/djhsun/article/details/78731683
解決如下報錯:Error in certificate: Peer‘s certificate issuer is not recognized.
[圖片]
1 mkdir -p /root/.certs/
2 echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne ‘/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p‘ > ~/.certs/qq.crt
3 certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
4 certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /root/.certs
5 vi /etc/mail.rc
set nss-config-dir=/root/.certs
6 cd ~/.certs/
7 certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
8 systemctl restart postfix
9 echo "testing" | mail -s "tth" [email protected]

1 備份/etc/mail.rc 文件
cp /etc/mail.rc /etc/mail.rc.bak

2 修改/etc/mail.rc
在最後添加如下信息:
set ssl-verify=ignore

set [email protected]

set smtp="smtps://smtp.exmail.qq.com:465"

set [email protected]

set smtp-auth-password=FlW881218#@!

set smtp-auth=login

set nss-config-dir=/root/.certs


阿裏雲ECS服務器無法發送郵件