人工智能 centos使用mailx告警邮件配置

maoqiyou · June 12, 2020 · 3 hits

今天为大家介绍一个可以直接在 Linux 上使用 SMTP 发送邮件的程序:Mailx,这个程序可以帮助我们让服务器直接支持邮件发送,不用再在每个站点上都设置了。

centos 配置自带邮件服务器 mailx 发件配置

安装 mailx 程序

1
yum -y install mailx

🌟 安装之前,建议移除不再需要且可能会引起冲突的 postfix 或 sendmail 程序。

修改发件人设置

1
2
3
4
5
6
7
8
9
10
$ vim + /etc/mail.rc 
set nss-config-dir=/root/.certs
set smtp="smtps://smtp.163.com:465"

set from="[email protected]"
set smtp-auth=login
set smtp-auth-user="[email protected]"
# 不是密码,不是密码!!!获取网易163设置的客户端授权密码。
set smtp-auth-password="xxxxxx"
set ssl-verify=ignore

💡 一般邮件服务器会提供 smtp、smtps 和 smtp starttls 服务来发送邮件。smtp 最简单的,也最不安全的,不建议使用,最好使用 smtps 或者 smtp starttls 来发送邮件。

测试发送

可以发送出邮件,但是会报错,如下面这种情况。需要生成证书来解决此问题。

1
2
$ echo "TEST" | mail -s "Title" "[email protected]"
$ Error in certificate: Peer's certificate issuer is not recognized.

生成证书

在本地新建目录生成证书

1
2
3
4
5
6
7
8
$ mkdir /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 .certs
$ certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i 163.crt

💡 参考上面的设置(如果要用 qq 邮箱,可以把所有的生成证书的 163 改为 qq),同样可以使用 126,163 等邮箱在服务器上通过 SMTP 发送邮件。设置成功以后,服务器上的所有站点,或者其他程序、其他语言开发的站点,都可以直接发送邮件了,是不是很方便?

再次修改 mail.rc

1
2
$ vim /etc/mail.rc
$ set nss-config-dir=/root/.certs/

测试发送

1
2
3
# mail -s发送邮件 -v可以显示发件的详细信息
$ echo "邮件正文" | mail -s "标题" "[email protected]"
$ mail -s "xxxx" [email protected] < /root/cpu.sh

参考链接:

使用 Mailx 通过 SMTP 在 Centos 上发送邮件,解决 WordPress 发送邮件问题

mialx 配置 qq 邮箱发送邮件

如何开启客户端授权码?

No Reply at the moment.
You need to Sign in before reply, if you don't have an account, please Sign up first.