阿里云ECS服务器专用网络无法发送邮件/邮件发送不出去?
时间:2018年05月15日 人气:...

有合作伙伴和渠道反映阿里云服务器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

因为用的是默认系统证书,可能认证不通过,但实际不影响发件,可以忽略。


热门评论