使用465端口发送邮件和相关报错解决

如何使用465端口发送邮件

今年阿里云的VPC网络无法使用25号端口进行邮件发送,解封以后如果发现还是会被封堵并且无法再解封。 所以各种邮件报警走要走smtps465端口。
这篇文章详细说明了如何使用465端口和mailx发送邮件。

https://www.cnblogs.com/yunweis/p/8149242.html

465发送邮件报错解决

使用465发送邮件的时候,脚本报错了。 报错如下

Error initializing NSS Unknown error -8015.

但是手动发送就不报异常,并且可以收到邮件。如:

echo 123 | mail -s "123123" 18710112635@163.com

后来发现以root用户就可以发送,其他用户不行。 (由于上面的文章介绍,生成的证书目录放在了root下,这样会导致其他用户没有可读和执行权限)
解决办法是 将证书文件目录:certs/ 移动到一个755权限的地方即可。如/etc下 一定要保证其他用户有读取和执行的权限,否则其他用户无法发送邮件。

脚本

#!/bin/bash
certdir=/data/cert
certname=qq.crt
mkdir -p $certdir
echo -n | openssl s_client -connect smtp.exmail.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > $certdir/$certname
certutil -A -n "GeoTrust SSL CA" -t "C,," -d $certdir -i $certdir/$certname
certutil -A -n "GeoTrust Global CA" -t "C,," -d $certdir -i $certdir/$certname
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d $certdir -i $certdir/$certname
echo "
set from=zabbix@xiaoming.com
set smtp=smtps://smtp.exmail.qq.com:465
set smtp-auth-user=zabbix@xiaoming.com
set smtp-auth-password=xxxxxxx
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=$certdir" >> /etc/mail.rc

3,370 thoughts on “使用465端口发送邮件和相关报错解决