当你需要服务器/云主机/vps定时发送邮件到自己邮箱时(例如备份、程序错误、Mysql宕机等),一个邮件服务就很重要了,以下主要是安装mailx的实现邮件发送。
当你需要服务器/云主机/vps 定时发送邮件到自己邮箱时(例如备份、程序错误、Mysql 宕机等),一个邮件服务就很重要了,以下主要是安装 mailx 的实现邮件发送。
安装
yum install mailx -y
这里使用到的配置文件只有一个,是/etc/mail.rc,通过修改配置文件/etc/mail.rc 可以使用外部 SMTP 服务器,轻松实现 linux 发邮件功能。
set from=xxxx@qq.com //qq 邮箱或者其他邮箱
set smtp=smtp.qq.com //smtp 地址
set smtp-auth-user=xxx@qq.com
set smtp-auth-password=Yunloc //注意:目前大部分的外部<a href="https://www.yunloc.com/tag/%e9%82%ae%e4%bb%b6" title="查看与 邮件 相关的文章" target="_blank">邮件</a>服务使用第三方客户端时,都需要使用授权码,上面的 smtp-auth-password 使用的就是授权码,而不是邮件帐号的密码。
如果是独立服务器的就可以使用 mailx 发送邮件了,如果是云主机/VPS 还要添加最后一行
set from="xxx@126.com"
set smtp=smtp.126.com
set smtp-auth-user=xxx
set smtp-auth-password=邮箱密码
set smtp-auth=login
配置都很简单,这里就不多说了,有两点需要注意的
1、邮箱需要开启 SMTP 功能,每个邮箱的开启方法都大同小异;
2、现在大部分邮箱使用 SMTP 会让你启动一个授权码来代替邮箱密码
具体各个邮箱开启授权码的方式可以直接百度
测试是否发送成功:
mailx -s "邮箱测试" xxxx@qq.com < message_file 测试邮件一旦成功,收件箱会马上收到邮件,如果没有收到,则等一会可以看到 shell 界面的错误提示;
上面配置的是简单的使用 25 端口的 SMTP 发送邮件的功能,一般情况下我们使用这个就足够了,这个办法 在网上也很多配置说明,这里就不再浪费时间了,下面我们讲重点,使用 TSL 发送邮件;
前面说了,阿里云把 25 端口封了,去申请解封也比较麻烦,于是就想到了用 TSL 方式,绕过 25 端口发送邮件; TSL 也就是使用 SSL 加密的方式,使用 465 或者其他端口来发送邮件,现在大部分邮箱都支持 SSL,具体 SSL 的端口 地址,也可以查百度,这里是以 126 邮箱为准,126 邮箱使用的是 465 或者 994 端口;
下面是详细的配置过程:
1、软件要求:openssl、mailx 12.0 以上;
2、既然使用的是 SSL 协议,那当然是要有证书的了,下面是获取证书的操作;
mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.126.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /root/.certs
若需要 qq 的 ssl 只需把第二条命令中的 smtp.xxx.com:465 给替换了就行了。
只要不报错,我们会在/root/.certs 下面看到几个证书文件,说明操作成功。
3、证书配置好了,下面我们就要来配置 mail.rc 配置文件了,和最开始的不同,这里我们就需要配置和 TSL 相关的东西了
set from=xxxooo@126.com
set smtp=smtps://smtp.126.com:465
set smtp-auth-user=xxxooo@126.com
set smtp-auth-password=你的授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.certs
其实就多了几个配置 stmp 前面加了 stmps://指定协议类型,后面加上端口号,启动 ssl 协议 ,下面指定 ssl 证书所在目录,就这样。
配置 OK 了之后,测试发送邮件,测试能收到邮件就 OK,说明发送没问题,至于具体会出现什么报错,可以根据报错的内容进行谷歌。
我这里在发送邮件的时候会提示一个证书不信任的问题,因为不影响正常发送邮件,所以选择忽略。
证书不信任的问题,需要进入存放证书的目录,执行
cd /root/.certs
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
最后邮箱开启 smtp 的方法请自行百度。
网友评论