centos_7中使用mail命令发送邮件
管理服务器时我们经常需要写一些监测脚本,然后在出问题的时候通过邮件来通知,接下来我们为大家介绍用最简单的方式来实现 Linux 发送邮件。
Mail是cent7 用来发送邮件的指令,直接开干。
系统版本:centos7x3.10.0-514.el7.x86_64
1、安装
centos下默认自带mail命令:
可以用如下命令查看存放位置:
1 | which mail |
结果:
如果出现没用此命令说明没用安装,可以使用下面的命令进行安装一下:
1 | yum -y install mailx |
2、配置
利用mail命令进行邮件发送,是需要利用到第三方邮件服务器,如126、163等,需要一个授权码来识别(注意不是邮箱密码)
一、获取邮箱授权码:
获取授权码过程如下:(我这里以126邮箱为例,其他的邮箱也差不多)
登录 126 邮箱官网后点击设置,选择 POP3/SMTP/IMAP
把 POP3/SMTP/IMAP
服务都开启了
接着找到 授权密码管理 点击 新增授权码 然后发送短信后就会出现授权码,复制下来,待会要用。
二、授权码获取到后,按如下步骤配置:
1、修改/etc/mail.rc
1 | vim /etc/mail.rc |
2、在最后添加如下配置:
1 | # mail config |
—说明:(我这里是以 126 邮箱为例)
from:对方收到邮件时显示的发件人
smtp:指定第三方发邮件的smtp服务器地址
set smtp-auth-user:第三方发邮件的用户名
set smtp-auth-password:邮箱授权码
smtp-auth:SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式
nss-config-dir: SSL验证信息存放位置,需要后面步骤创建
ssl-verify: SSL验证信息忽略
3、创建 /root/.certs 目录
1 | mkdir -p /root/.certs |
4、下载证书到 /root/.certs 目录,本例是下载126证书
a、向126请求证书
1 | echo -n | openssl s_client -connect smtp.126.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/126.crt |
b、添加一个证书到本地:
1 | certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/126.crt |
c、再次添加一个证书到本地:
1 | certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/126.crt |
d、标记证书被信任
1 | cd /root/.certs/ |
5、测试邮件发送,有两种方式,可以用mail命令也可以用mailx命令,如下:
a、使用mail命令 ,加上 -v 会显示发送过程,多个接收人直接在后面空格加上其他人邮箱地址:
1 | echo "hallo" | mail -v -s "this is Test Mail" xxxxxx@qq.com |
出现这个说明邮件已经发送成功
b、使用mailx命令:
1 | mailx -s "hello" xxxxxx@qq.com |
回车后手动输入邮件正文,如下:
然后按ctrl+d结束输入,自动发送
mail 参数:
1 | -b address 指定密件副本的收信人地址 |