使用 linuxmail命令发送邮件
博客地址:陈帅同学
一般Linux发送报警邮件通过本地邮箱或外部邮箱服务器,这里用最简单的方法实现linux 使用外部邮箱即可实现发送邮件功能,你只需简单注册个国内的邮件服务商邮箱,如163,也可以使用公司邮箱,需要安装mailx工具,mailx是一个小型的邮件发送程序。
原理图:
具体步骤:
- 准备环境
- 编辑配置文件
- 测试用例说明
- 测试demo
demo:
这里我使用 mail 命令,调用 stmp.163.com 的服务 发送邮件
- 测试环境
- rpm -qa mailx 查看有没有装 mailx服务
- 没有安装的话 yum install mailx -y
- 编辑配置文件 /etc/mail.rc
- 在配置文件 /etc/mail.rc 只有 追加 如下配置
- set [email protected]
- set smtp=smtp.163.com
- set [email protected]
- set smtp-auth-password=xxx (这个填写客户端授权码)
- set smtp-auth=login
- 配置说明
- from:对方收到邮件时显示的发件人
- smtp:指定第三方发邮件的smtp服务器地址
- set smtp-auth-user:第三方发邮件的用户名
- set smtp-auth-password:客户端需要授权的填写授权码(163 需要客户端授权码) || 不需要授权的填写密码
- smtp-auth:SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式
- 在配置文件 /etc/mail.rc 只有 追加 如下配置
- 测试用例
- mail -h 先查看帮助 常用选项如下
- [[email protected] ~]# mail -h
mail: option requires an argument -- h
Usage: mail -eiIUdEFntBDNHRV~ -T FILE -u USER -h hops -r address -s SUBJECT -a FILE -q FILE -f FILE -A ACCOUNT -b USERS -c USERS -S OPTION users
c. -s 邮件的主题 ; -a 邮件的附件
- 有邮件有正文
- mail -s "主题" 收件地址< 文件(邮件正文.txt)
% mail -s "邮件主题" [email protected] < /data/findyou.txt
- echo "邮件正文" | mail -s 邮件主题 收件地址
% echo "邮件正文内容" | mail -s "邮件主题" [email protected]
- cat 邮件正文.txt | mail -s 邮件主题 收件地址
% cat /data/findyou.txt | mail -s "邮件主题" [email protected]
2. 带附件
mail -s "主题" 收件地址 -a 附件 < 文件(邮件正文.txt)
mail -s "邮件主题" [email protected] -a /data/findyou.tar.gz < /data/findyou.txt
效果截图: