多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## mailx使用ssl方式发送邮件 >[success]mailx在发送邮件时,可以选择25端口,也可以使用其它端口(这个取决于邮件服务商)。 在这里大家要了解 非ssl协议端口和ssl协议端口 163邮箱提供的端口如下: ![](https://box.kancloud.cn/9504c066160c7be4605d3049f23e3d3f_488x141.png) >[danger]现在基本上都采用ssl协议的方式 如:阿里云默认25端口被禁止,所以必须采用其它端口来进行邮件发送;QQ默认采用ssl协议。 所以必须要掌握ssl协议方式的邮件发送。 ### 非SSL协议端口-mailx的配置 以163邮件为例: ~~~ set from="330145635@163.com" # 设置发送邮箱 set smtp=smtp.163.com # 设置邮件服务器(注意端口) set smtp-auth-user="330145635@163.com" #设置邮件用户登录账号 set smtp-auth-password="zqtxbekwabqibjhf" #设置密码,注意这里的密码是客户端授权密码,非用户登录密码。 set smtp-auth=login # ~~~ ### SSL协议端口-mailx的配置 以QQ邮箱为例 ~~~ set from="330XXXX35@qq.com" set smtp=smtp.qq.com # 设置邮件服务器(注意端口)QQ邮箱这样写即可 set smtp-auth-user="330XXXX35@qq.com" #设置邮件用户登录账号 set smtp-auth-password="zqtxbekwabqibjhf" 授权码 set smtp-auth=login #set smtp-use-starttls=yes #QQ邮箱中,加上后,会报错,但是邮件可以正常发送 set ssl-verify=ignore #认证方式 set nss-config-dir=/root/.certs #证书地址 ~~~ ### 证书的处理 >[success]使用SSl协议端口时,需要证书。默认情况下一般是没有证书的,所以需要首先进行证书的获取。 如果直接按照上述方式进行配置,发送测试邮件时,会报如下错误 ![](https://box.kancloud.cn/ec1518fc5c08a0eeb4e710b13b6a4384_1010x83.png) ### 证书的获取 >[danger]可以手动直接生成证书 顺序执行如下命令即可生成证书: ~~~ mkdir -p /root/.certs/ 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 certutil -L -d /root/.certs ~~~ >[danger]生成证书时,根据邮件服务器的不同可以自己调整 为了防止出现前文所说的发送邮件警告提示,还需要进入邮箱 SSL 证书存放目录 /root/.certs 里执行如下命令 ~~~ certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt ~~~ 到这里就设置好了,可以发送一封邮箱测试一下 ~~~ echo date | mailx -s "data" 330145635@qq.com ~~~