近期在做监控的时候,需要通过命令行来发送邮件。普通邮件通过25端口发送,简单配置一下即可,但是我们的邮件服务器并不支持普通的smtp邮件发送,仅仅支持smtps发送邮件,这就需要证书验证了,我们在这里通过自制证书并忽略验证来通过smtps发送邮件
mailx
安装mailx
1 | yum -y install mailx |
配置mailx(smtps - 465端口)
编辑/etc/mail.rc,并添加上以下内容
1 | set from=username@hostname.com # 这里是发件人的邮箱地址 |
配置mailx(smtp - 25端口)
smtp的发送方式相对于smtps的发送方式的配置要简单需要,因为不需要ssl验证,所以也就不需要自制证书,配置完下面部分后即可使用
1 | set from=username@hostname.com # 这里是发件人的邮箱地址 |
证书制作
首先创建一个目录保存证书,然后创建证书和密钥的数据库
1 | $ mkdir .certs |
然后从邮箱服务器获取证书,并导入到本地数据库(将hostname修改成对应的邮箱主机)
1 | $ echo -n | openssl s_client -connect smtp_hostname:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > .certs/hostname.crt |
发送邮件
执行一下命令即可发送邮件
1 | $ mail -s "test" keven518@163.com |
crtl+d结束输入 或者执行 man mailx
查看帮助文档
1 | $ Error in certificate: Peer's certificate issuer is not recognized. |
上述错误直接无视即可