阿里云ECS服务器无法发送邮件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里云ECS服务器无法发送邮件相关的知识,希望对你有一定的参考价值。
摘自: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 smtp=smtp.exmail.qq.com
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 smtp="smtps://smtp.exmail.qq.com:465"
set smtp-auth-password=FlW881218#@!
set smtp-auth=login
set nss-config-dir=/root/.certs
以上是关于阿里云ECS服务器无法发送邮件的主要内容,如果未能解决你的问题,请参考以下文章
WorkShare-181102阿里云服务器上无法发送邮件的现象原因及解决