linux下配置mail发送邮件
检查每天的备份情况,然后发送到我的邮箱
安装
默认情况下,centos7系统内自动会有这个包的不需要安装,如果没有的可以装下
# 检查是否有这个包
rpm -qa|grep mailx
# 没有的话使用yum安装即可
yum -y install mailx
配置文件
配置文件默认是:/etc/mail.rc
vim /etc/mail.rc
# 使用vim编辑文件,文件末尾处添加以下配置
set from=xxx@xxxx.com # 对方收到邮件时显示的发件人
set smtp=smtps://smtp.exmail.qq.com # 邮箱服务器地址,这里也可以是smtp 也可以是smtps
set smtp-auth-user=xxxx@xxxx.com # 邮箱账号
set smtp-auth-password=xxxx # 邮箱的授权码,这个不是邮箱的密码,授权码是需要自己在邮箱的设置中添加的
set smtp-auth=login # smtp的认证方式,默认就是login,也可以改成CRAM-MD5或PLAIN方式
set ssl-verify=ignore # 忽略验证
set nss-config-dir=/etc/maildbs # 证书文件目录
#生成证书文件
mkdir /etc/maildbs && certutil -N -d /etc/maildbs
发送邮件的两种方式
mail -s “标题” 邮件地址 < 文件 # 它是先读取文件中的内容当作邮箱正文发送
echo “文件内容” | mail -s “标题” 邮件地址
常用参数:
- -s:指定邮件标题
- -c:可以指定抄送人
- -a:后面跟文件可以作为附件发送
- -v:可以显示详细的参数
可能遇到的问题
问题一:如果你的邮箱收不到发送的邮件的话,你在邮箱内开启smtp服务试下
问题二:如果你有需要配置证书发送的话,可以参考以下内容
你可能会遇到如下报错:Error in certificate: Peer’s certificate issuer is not recognized.
这个是因为没有配置证书导致的,但是一般不影响发送
# 生成证书
mkdir /etc/certs/
cd /etc/certs/
echo -n | openssl s_client -connect smtp.exmail.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ./test.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ../certs -i ./test.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ../certs -i ./test.crt
# 修改配置文件
set nss-config-dir=/etc/certs # 修改为你自己的证书