Linux系统发邮件

Linux系统发送邮件

管理服务器时我们经常需要写一些监测脚本,然后在出问题的时候通过邮件来通知

SMTP

SMTP(Simple Mail Transfer Protocol)简易邮件传输通讯协议

SMTP服务器是遵循SMTP协议的发送邮件服务器,用来发送或中转你发出的电子邮件。可以理解为就是用来寄信的,而且大多数SMTP服务器也是免费的。

QQ邮箱的SMTP

 

授权码作为密码

mailx

yum install -y mailx

系统指定SMTP服务器

vim /etc/mail.rc

在文件最后插入:

set from=345678910@qq.com
set smtp=smtp.qq.com  
set smtp-auth-user=345678910
set smtp-auth-password=授权码
set smtp-auth=login  

from是你设置stmp服务的邮箱地址,也就是用来发送邮件的邮箱地址
smtp是发生的外部smtp服务器的地址,如qq的smtp.qq.com
smtp-auth-user是外部smtp服务器认证的用户名
smtp-auth-password是外部smtp服务器认证的用户密码(授权码)
smtp-auth是邮件认证的方式

发送邮件测试

echo ‘test’ | mail -s 'test' 345678910@qq.com

mail命令语法

mail  -s  "标题"  邮件地址  < 文件

mail  -s  "test" 345678910@qq.com </etc/hosts

echo  "正文" | mail  -s  "test"  345678910@qq.com

使用465端口发送邮件

阿里云回复:

  由于国际与国内均对垃圾邮件进行严格管控,我国《互联网信息服务管理办法》、《中国互联网协会反垃圾邮件规范》均对垃圾邮件进行说明与管理规范。 鉴于服务器25端口被大量垃圾邮件充斥,严重影响广大用户正常使用。为了共同维护良好的网络环境,自即日起阿里云新购服务器不再提供25端口邮件服务, 建议您尝试使用465加密端口发送邮件。

创建证书:

mkdir /root/.certs
echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /root/.certs/163.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d /root/.certs -i /root/.certs/163.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d /root/.certs -i /root/.certs/163.crt
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d /root/.certs/./ -i /root/.certs/163.crt
certutil -L -d /root/.certs

mail.rc:

set from=345678910@163.com
set smtp=smtps://smtp.163.com:465
set smtp-auth-user=345678910
set smtp-auth-password=password
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.certs

 

posted @ 2019-05-15 14:47  load晴天  阅读(1491)  评论(0编辑  收藏