共计 1419 个字符,预计需要花费 4 分钟才能阅读完成。
mail 命令是 Linux 环境下电子邮件发送和接收工具,默认情况下 mail 会调用 sendmail 发信,但 sendmail 很容易被视作垃圾邮件。推荐使用 STMP 服务替代 sendmail 发信,这样更加稳定。
安装 mail
默认情况下可能并未内置 mail 命令,直接输入下面的命令安装:
#CentOS
yum install -y mailx
#Debian or Ubuntu(未测试)apt-get -y install mailx
配置 STMP
不修改任何配置的情况下 mail 命令会调用系统内置 sendmail 发信,以下使用 SMTP 服务替代 sendmail
# 修改配置文件
vi /etc/mail.rc
#在末尾追加如下内容并保存
set from=service@xiaoz.me
set smtp=smtp.exmail.qq.com
set smtp-auth-user=service@xiaoz.me
set smtp-auth-password=35******3N
set smtp-auth=login
- set from:设置发件人
- set smtp:设置外部 STMP 服务器
- set smtp-auth-user:设置 STMP 用户名(一般为完整邮箱地址)
- set smtp-auth-password:设置 SMTP 密码
发信测试
echo "this is my test mail" | mail -s 'mail test' xxx@qq.com
#或者
mail -s 'mail test' xxx@qq.com
使用 SSL/TLS
上述配置邮件内容是明文方式,存在安全隐患,再加上 Gmail/Zoho 等邮箱强制要求使用 SSL/TLS 加密,为了提高安全性推荐发送邮件的时候使用 SSL 或 TLS,请继续往下看。
先找到本地 nssdb 证书路径,输入下面的命令:
[root@ultravps ~]# find / -name "cert*.db"
/etc/pki/nssdb/cert8.db
/etc/pki/nssdb/cert9.db
修改 mail 配置文件,并使用 SSL 加密:
# 修改配置文件
vi /etc/mail.rc
#末尾追加如下内容
set from=service@xiaoz.org
set smtp=smtps://smtp.zoho.com:465
set nss-config-dir=/etc/pki/nssdb/
set ssl-verify=ignore
set smtp-auth-user=service@xiaoz.org
set smtp-auth-password=htH*****T8
set smtp-auth=login
- set nss-config-dir:指定本地证书路径
- set smtp=smtps://smtp.zoho.com:465 设置 SMTP 地址及端口,注意 smtps 说明启用了 SSL 加密
- set ssl-verify:忽略证书错误
如果您想启用 TLS 加密,追加一行内容,并设置正确的 TLS 端口,如下:
# 设置正确的地址及端口,注意这次是 smtp 不是 smtps
set smtp=smtp://smtp.zoho.com:587
#追加一行,启用 TLS
set smtp-use-starttls=yes
总结
mail 命令配置外部 SMTP 邮件服务,可以帮助 shell 自动化的时候实现任务通知,到达率也比自带 sendmail 高很多。
此文部分内容参考与:
centos 7 配置 mailx 发送 zoho mail 邮件
Mailx and Gmail nss config dir
正文完
星哥玩云-微信公众号