Linux利用QQ邮箱服务器发送邮件

原理:利用QQ提供的smtp服务器给目标邮件地址发送邮件
材料:

  • 绑定手机号的QQ账号
  • Linux服务器一台

QQ邮箱开通授权码

QQ邮箱SMTP服务在第三方使用时需要获取授权码
详情见这里开通,需要手机号发送短信
https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28

安装mailx命令行客户端

yum install mailx 

配置

编辑配置文件/etc/mail.rc加入以下内容

set from=**4306@qq.com                    # 对方收到邮件时显示的发件人
set smtp=smtps://smtp.qq.com:465        # 第三方发邮件的smtp服务器地址
set smtp-auth-user=xx4306@qq.com        # 第三方发邮件的用户名
set smtp-auth-password=************             # 注意是授权码,不是QQ密码
set ssl-verify=ignore
set nss-config-dir=/root/.certs
set smtp-auth=login                        # SMTP的认证方式

发送

测试发送邮件

echo "Hello" | mail -v -s "test" xxx@qq.com

使用上面的配置,邮件是完全能够发出去的,但是发送邮件的时候会提示 "Error in certificate: Peer’s certificate issuer is not recognized."提示,运行以下命令生成一个证书即可。

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

仍然提示"Error in certificate: Peer’s certificate issuer is not recognized."需要在执行一句

cd /root/.certs
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt

再发送邮件即可

参考:

  1. https://blog.csdn.net/zjwreal/article/details/84947131
  2. https://boke112.com/4515.html
Tags:LInuxQQ邮箱
上一篇
打赏
下一篇

添加新评论