0、本文演示环境:

本文实际操作的系统是 CentOS 7.6,为腾讯云服务器。

1、获取163邮箱授权码:

为了安全,我们不应直接使用原始密码登录第三方客户端,因此有了授权码这个东西。授权码是用于登录第三方邮件客户端的专用密码。

登录163邮箱后,进入 设置--客户端授权密码--设置客户端授权码,开启并设置授权码(且要开通SMTP服务):

获取163邮箱的授权码

2、在Linux系统上安装mailx服务:

在命令行直接输入 mail 指令,如果提示找不到该指令,则表示你还没有安装该服务,请使用 yum 安装该服务:

yum -y install mailx

3、添加163邮箱的smtp配置:

在系统文件 /etc/mail.rc 末尾追加下面内容(按实际情况修改成你的账号和授权码):

set from=你的账号@163.com
set smtp=smtps://smtp.163.com:465
set smtp-auth-user=你的账号
set smtp-auth-password=你的授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.certs

4、下载163邮箱的证书:

上述配置开启了SSL安全连接,因此我们还需要手动获取163邮箱的SSL证书保存到本地 /root/.certs 目录,以备调用和验证。具体命令如下:

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

5、测试发送邮件:

我们可以给自己的QQ邮箱发个邮件测试一下是否畅通,指令如下(替换你自己的QQ号):

echo "这是邮件body" | mail -s "这是邮件标题" xxxxxx@qq.com

如果邮件正文很长,可以存入文件,然后用下面的指令发送:

mail -s "这是邮件标题" xxxxxx@qq.com < body.txt

需要携带附件的话,加 -a FILE 参数即可,指令举例:

echo "这是邮件body" | mail -s "这是邮件标题" -a backup.zip xxxxxx@qq.com

如果邮件发不出去,请加上 -v 参数,控制台会打印发件详情,看看在哪一步报错:

echo "这是邮件body" | mail -v -s "这是邮件标题" xxxxxx@qq.com

温馨提示:发送带html标签的邮件会被163邮箱当做垃圾邮件退回!

6、学以致用:

掌握了以上配置,我们可以结合crontab,实现定时备份网站数据发到自己的邮箱。

 

本文借鉴:http://blog.51cto.com/ygtq666/2164919