主要解决:云服务器25端口发邮件问题,因为购买的是按量付费的腾讯云CVM(用于测试),不支持解封25端口,所以采用465端口(SMTPS)发邮件
465端口是为SMTPS(SMTP-over-SSL)协议服务开放的
它是SMTP协议基于SSL安全协议之上的一种变种协议,
它有SSL安全协议的非对称加密的高度安全可靠性,可以保证邮件的安全性
测试25端口和465端口连接情况:
命令:
1 | telnet smtp.163.com 25 |
测试连接25端口:
结果:没有响应
测试连接465端口:
结果:没问题,正常连接
因为25端口不通,所以使用465端口发送邮件
1、获取163邮箱授权码
这里我们以163邮箱为例,首先获取163邮箱授权码。
- 登录163邮箱–》设置–》POP3/SMTP/IMAP
进行开启POP3/SMTP服务并得到授权码。
注意这个授权密码只显示一次,一定要保存好。
2、安装mailx并配置mail
- 安装命令:
1 | yum install -y maix |
- 配置mail:
1 | vim /etc/mail.rc |
在mail.rc 配置文件末尾增加如下内容:
1 | set from=lisuibi@163.com #对方收到邮件时显示的发件人 |
3、生成发邮件用的证书
- 创建目录:
1 | mkdir /root/.certs |
生成对应的证书:
#s_client:是一个SSL/TLS客户端程序,它能与s_server通信,也能与其他使用ssl协议的其他服务程序进行通信
#sed:打印证书开头和结尾中间的内容
#>:保存到.certs/163.crt这个证书文件中
执行命令,生成证书:
1 | echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crt |
4、测试发送邮件
命令:
#echo:发送的邮件内容
#-s:指定subject标题
#-v:verbose模式,在用户终端上显示信息传递的细节
1 | echo 'test mail content' | mail -v -s "test mail title" |
结果:
完成!