码迷,mamicode.com
首页 > 其他好文 > 详细

阿里云ECS服务器无法发送邮件

时间:2018-07-18 20:41:41      阅读:414      评论:0      收藏:0      [点我收藏+]

标签:dir   openssl   mail.rc   l命令   有用   nal   方案   from   增加   

摘自: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


阿里云ECS服务器无法发送邮件

标签:dir   openssl   mail.rc   l命令   有用   nal   方案   from   增加   

原文地址:http://blog.51cto.com/03301216/2146874

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!