CentOS 7 发送邮件

工作中我们会碰到服务器上的各种各样错误,这些错误我们可以做各种各样的捕获、打印、记录。但是光这些是不够的的,对应的负责人员要怎么知道这件事?最简单的办法就是发一封邮件(当然也可以使用其他的系统监控软件进行报警通知,这里不做讨论)

  CentOS 7 内置了 mail,可以直接使用,如果觉得依赖库太老可以自己删除掉重新 yum 安装即可。

  • 删除
# 查找已存在的
$ rpm -qa | grep mailx
$ rpm -qa | grep sendmail
# 删除
$ rpm -e xxx   

# 安装
$ yum -y install mailx sendmail

# 配置发件人信息
$ vim /etc/mail.rc
......
# 这里配置的是网易企业免费邮箱的 SMTP 服务地址
set from=我的服务器<xxxx@163.com>
set smtp=smtp.ym.163.com
set smtp-auth-user=xxxx@163.com
set smtp-auth-password=xxxxxxxxx
set smtp-auth=login
......
  • 发送邮件测试
$ echo '内容' | mail -s '标题' xxxxxx@163.com

  正常情况下这里已经可以发送邮件了,也有可能你使用的服务器是阿里云或者其他服务提供商的,他们会封禁 25 端口,导致出现以下错误:

could not connect: 连接超时
"/root/dead.letter" 11/356
. . . message not sent.

或者

contains invalid character ‘\342’
Resolving host smtp.163.com . . . done.
Connecting to 220.181.12.17 . . .Connecting to 220.181.12.18 . . .

  163 邮箱的协议以及端口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3D8UHRAT-1612505821380)(http://pencil.file.lynchj.com/depend/20210205134235.png)]

  因端口被封禁,导致连接超时,这里改用 SSL 协议下的端口即可,使用 SSL 协议需要先请求证书支持。

  • 构建证书
# 创建存放证书目录
mkdir -p ~/.certs
# 向 163 请求证书
echo -n | openssl s_client -connect smtp.ym.163.com:994 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crt
# 添加一个 SSL 证书到证书数据库中
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt
# 添加一个 Global 证书到证书数据库中
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt
# 列出目录下证书
certutil -L -d ~/.certs
  • 重新配置发件人信息
$ vim /etc/mail.rc
set from=我的服务器<xxxx@163.com>
set smtp=smtps://smtp.ym.163.com:994
set smtp-auth-user=xxxx@163.com
set smtp-auth-password=xxxxxx
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.certs

# 配置完毕应该即可避免端口 25 被封禁问题

  还有一种情况就是证书不被信任,执行下面命令即可

$ certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i 163.crt
Notice: Trust flag u is set automatically if the private key is present.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值