0 前言及准备
最近使用linux监控数据统计状况以及警报,最常使用的就是mail命令。
准备:只需简单注册个国内的邮件服务商邮箱,如163、gmail等,也可以使用公司邮箱,需要安装mailx工具,mailx是一个小型的邮件发送程序。
1 mailx安装及配置
1.1 安装
运行如下命令:
代码语言:javascript复制[root@congying ~]#yum install mailx
1.2 编辑配置文件
运行如下命令:
代码语言:javascript复制[root@congying ~]# vim /etc/mail.rc
编辑 mail.rc 文件,内容如下:
代码语言:javascript复制# 对方收到邮件时显示的发件人
set from=xxxx@163.com
# 指定第三方发邮件的smtp服务器地址
set smtp=smtp.163.com
# 第三方发邮件的用户名
set smtp-auth-user=xx@163.com
# 用户名对应的密码,有些邮箱填的是授权码
set smtp-auth-password=xxx
# SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式
set smtp-auth=login
2 发送邮件
2.1 无正文邮件
代码语言:javascript复制[root@congying ~]# mail -s "[主题]" [收件地址]
示例:
代码语言:javascript复制[root@congying ~]# mail -s "Test_Subject" cymobius@163.com
2.2 有正文邮件
- 使用现有文件(如html、txt等)作为正文文件 命令如下:
####
[root@congying ~]# mail -s "[主题]" [收件地址]< [文件路径(邮件正文.txt)]
####
或者:
代码语言:javascript复制####
[root@congying ~]# cat [文件路径(邮件正文.txt)] | mail -s "[主题]" [收件地址]
###
- 无正文文件: 命令如下:
####
[root@congying ~]# echo "[正文内容]" | mail -s "[主题]" [收件地址]
####
3 邮件中文乱码问题解决
对于中文乱码问题一般是环境变量所致,但是在设置好了环境变量,使用测试脚本可以发出邮件,但是使用crontab 例行的时候就会出现乱码问题,这时候也可以在脚本中添加环境变量即可,这种方式适用于大部分的中文乱码问题: 即在脚本头部行添加如下环境变量:
代码语言:javascript复制export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"