首页 > 其他 > 详细

阿里云服务器Centos7 配置465端口号发送邮件

时间:2020-01-16 23:59:13      阅读:243      评论:0      收藏:0      [点我收藏+]
阿里云禁用25号端口:

出于安全考虑,阿里云默认封禁TCP 25端口出方向的访问流量,即你无法在阿里云上的云服务器通过TCP 25端口连接外部地址。
TCP 25端口的出方向封禁可能影响您通过TCP 25 端口连接第三方邮件服务商的SMTP服务器对外部发送邮件。
如果您需要使用阿里云上的云服务器对外部发送邮件,建议您使用阿里云邮产品或者使用第三方邮件服务商提供的465端口。
ps:其实华为云服务器也禁用25端口了

解决方案:

1.投诉,申请解禁25端口
结果:根据阿里云解决方案,向阿里云申请解封25号端口,但其也只能用第三方smtp,不可本机发送邮件(实际不给开,全封禁了)
2.不用 25端口号,改用 smtps ssl 465 端口号,安全发送邮件
结果:经测试,可解决问题

操作步骤如下:

1.安装邮箱服务

yum install mailx -y

2.QQ邮箱开启第三方授权码及排坑

可参考博客 https://blog.51cto.com/13760351/2384001

3.改变配置

vim /etc/mail.rc
set from=xx@qq.com
set smtp=smtps://smtp.qq.com:465
set ssl-verify=ignore
set nss-config-dir=/root/.certs #证书所在目录
set smtp-auth-user=xx@qq.com
set smtp-auth-password=授权码
set smtp-auth=login

4.创建证书目录

mkdir /root/.certs

5.ssl 授权

echo?-n?|?openssl?s_client?-connect?smtp.qq.com:465?|?sed?-ne?‘/-BEGIN?CERTIFICATE-/,/-END?CERTIFICATE-/p‘?>?~/.certs/qq.crt
certutil?-A?-n?"GeoTrust?SSL?CA"?-t?"C,,"?-d?~/.certs?-i?~/.certs/qq.crt
certutil?-A?-n?"GeoTrust?Global?CA"?-t?"C,,"?-d?~/.certs?-i?~/.certs/qq.crt
cd ?/root/.certs/
certutil?-A?-n?"GeoTrust?SSL?CA?-?G3"?-t?"Pu,Pu,Pu"?-d?~/.certs/./?-i?qq.crt
certutil?-L?-d?/root/.certs

6.邮件发送测试

技术分享图片

问题分析:

刚导入证书文件没有给其授权,很可能是权限不足问题

解决方案一:

chmod 777 * /root/.certs
ll

技术分享图片

发送邮件尝试:

echo "邮件正文" | mail -s "邮件主题1" 145..2664@qq.com

测试结果:还是无法发送邮件

再次分析:

/root/.certs 是root用户家目录,一般用户无法进去读取文件

解决办法:

换路径,证书文件授权
mkdir /tmp/.certs
mv /tmp/.certs
cd /tmp/.certs
chmod 777

ll

技术分享图片

7.更改证书目录

vim /etc/mail.rc
set from=xx@qq.com
set smtp=smtps://smtp.qq.com:465
set ssl-verify=ignore
set nss-config-dir=/tmp/.certs #更改证书所在目录
set smtp-auth-user=xx@qq.com
set smtp-auth-password=授权码
set smtp-auth=login

技术分享图片

8.发送邮件测试

echo "邮件正文" | mail -s "邮件主题" 145...664@qq.com

技术分享图片
技术分享图片

方案二:

这里可能有人要问,既然知道了放在/root目录下面不行,那么一开始就把证书导入/tmp目录不就可以了吗?
做出如下尝试:

echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne ‘/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p‘ > /tmp/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d /tmp/.certs/ -i /tmp/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d /tmp/.certs -i /tmp/.certs/qq.crt
cd /tmp/.certs
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d /tmp/.certs/./ -i qq.crt
certutil -L -d /tmp/.certs/

技术分享图片

9.文件授权

cd /tmp/.certs
chmod 777 *
ll

10.邮箱发送验证

echo "邮件正文" | mail -s "邮件主题1" 145...664@qq.com

技术分享图片

温馨提示:

1.网上大多数文档都是证书导入到/root目录下面,所以这里介绍是导入/root目录下出现问题,再次解决的办法
2.一般情况,我们很少单独发送邮件,都是配合监控工具一块使用,如zabbix, 还要去证书所在目录下添加属组: chown zabbix:zabbix *
3.安装证书,并不是一定要导入/tmp目录,只要是非/root目录都可以的。
4.文章只演示了qq邮箱,其实163邮箱也可以,方法类似

阿里云服务器Centos7 配置465端口号发送邮件

原文:https://blog.51cto.com/13760351/2467168

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!