摘自: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 "标题" 510551@qq.com 这个问题其实跟上面问题一样,也是得改用ssl465端口来发邮件, 需要找到 mailx的配置文件在/etc/mail.rc 在配置文件中最后面添加下面的代码(passwd写开通smtp客户端给的授权码) set ssl-verify=ignore set from=usernam@163.com 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 'usernam@163.com' -s '标题' 510551@qq.com 因为用的是默认系统证书,可能认证不通过,但实际不影响发件,可以忽略。

======================= 故障现象

[图片]

阿里云封了25号端口,我们修改配置文件使用465端口来发邮件 [图片]

该方法适用于阿里云centos6 解决办法:

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

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

set from=zhangf@aviup.com

set smtp=smtp.exmail.qq.com

set smtp-auth-user=zhangf@aviup.com

set smtp-auth-password=FlW881218#@!

set smtp-auth=login

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

3 测试 echo "cpu 使用率过高" |mail -s "cpu warning" zhangf@aviup.com

结果:收到邮件,问题解决 [图片]


阿里云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" zhangf@aviup.com

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

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

set from=zhangf@aviup.com

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

set smtp-auth-user=zhangf@aviup.com

set smtp-auth-password=FlW881218#@!

set smtp-auth=login

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