centos 7 配置mail.rc使用第三方SMTP发送邮件

时间:2024-02-24 07:44:39

目的:连接第三方smtp服务器去发送邮件,比如qq、新浪、网易等邮箱,只需要直接配置mail.rc文件即可实现。

本实验使用网易126邮箱。

1.先去126邮箱开通smtp服务并获得授权密码记住,后面会用到。

 

2.查看smtp.126.com服务器开启了那些端口,以前默认是25,现在网易停用了。

[root@danny ]# nmap smtp.126.com

Starting Nmap 6.40 ( http://nmap.org ) at 2020-06-17 16:05 CST
Nmap scan report for smtp.126.com (123.126.96.4)
Host is up (0.014s latency).
Other addresses for smtp.126.com (not scanned): 123.126.96.5 220.181.15.113 220.181.15.112 220.181.15.111 123.126.96.3 220.181.15.114
rDNS record for 123.126.96.4: mail-m964.mail.126.com
Not shown: 998 filtered ports
PORT    STATE SERVICE
465/tcp open  smtps
587/tcp open  submission

或者使用nc命令扫描对应端口查看开启状态

[root@danny ]# nc -zv  smtp.126.com 465
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 123.126.96.5:465.
Ncat: 0 bytes sent, 0 bytes received in 0.04 seconds.

 

可以看到开启了465和587端口(本次实验使用465),而下图可看到465端口使用的是ssl协议,所以相对mail.rc配置就需要使用ssl协议。

 

 

3.配置mail.rc

vim /etc/mail.rc

set from=xxx@126.com       //发件方邮箱或昵称,经过测试必须得和下面的发件邮箱一致,否则发不了邮件
set smtp=smtps://smtp.126.com:465   //注意使用的ssl协议连接
set smtp-auth-user=xxx@126.com    //发件邮箱
set smtp-auth-password=xxxxxx  //此处使用的就是前面生成的授权码
set stmp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.certs //此处证书需要手动生成,否则会报错或者连接失败

 

重启服务

systemctl restart postfix.service

 

4.发送邮件测试

#第一种
echo "test" | mail -s \'test linux\'  xxx@qq.com


#第二种
mailx -v -s " 主题 " xxx@qq.com < a.sh
//-v可以动态显示邮件发送状态。可以把a.sh文件的内容作为邮件内容发送

 

关于上面证书创建

默认的证书是没有的,如果不创建相应证书,邮件发送会报错或者连接失败。

//创建证书目录
mkdir -p /root/.certs
cd .certs/

//获取邮件服务器证书
echo -n "" | openssl s_client -connect smtp.126.com:465 | sed -ne \'/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p\' > 126.crt

//将证书添加到受信任列表
certutil -A -n \'smtp_126\' -t "P,P,P" -d . -i ./126.crt

//上述命令中-A表示添加,-n是nickname,可以随意取,例如126或qq;-t表示受信任的标签,可取值是t/c/p三种或者其组合;-d表示证书所在目录,-i指示证书文件的位置。

//# 指向证书文件目录
set nss-config-dir=/root/.certs
 
注:
网上许多教程的-t标签都是"C,,",实践中发现使用该标签仍会报错(gmail的证书是google自己签发的,用C标签没问题,许多博主估计没试就直接抄来)。通过查阅certutil的用法,使用P标签顺利解决问题。
配置完成后,再使用mail命令发送邮件,烦人的警告消失不见。

 

参考文章:http://www.51testing.com/html/53/n-3727153.html