Linux实用技巧——mail发送邮件命令以及中文乱码解决

0 前言及准备

最近使用linux监控数据统计状况以及警报,最常使用的就是mail命令。

准备:只需简单注册个国内的邮件服务商邮箱,如163、gmail等,也可以使用公司邮箱,需要安装mailx工具,mailx是一个小型的邮件发送程序。


1 mailx安装及配置

1.1 安装

运行如下命令:

[root@congying ~]#yum install mailx
  • 1

1.2 编辑配置文件

运行如下命令:

[root@congying ~]# vim /etc/mail.rc 
  • 1

编辑 mail.rc 文件,内容如下:

# 对方收到邮件时显示的发件人
set [email protected]

# 指定第三方发邮件的smtp服务器地址
set smtp=smtp.163.com

# 第三方发邮件的用户名
set [email protected]

# 用户名对应的密码,有些邮箱填的是授权码
set smtp-auth-password=xxx

# SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式
set smtp-auth=login
  •  

2 发送邮件

2.1 无正文邮件

[root@congying ~]# mail -s  "[主题]"  [收件地址]
  • 1

示例

[root@congying ~]# mail -s  "Test_Subject"  [email protected]
  • 1

2.2 有正文邮件

  • 使用现有文件(如html、txt等)作为正文文件
    命令如下:
####
[root@congying ~]# mail -s "[主题]"  [收件地址]< [文件路径(邮件正文.txt)]
####

或者:

####
[root@congying ~]#  cat [文件路径(邮件正文.txt)] | mail -s "[主题]"  [收件地址]
###
  • 无正文文件:
    命令如下:
####
[root@congying ~]# echo "[正文内容]" | mail -s "[主题]"  [收件地址]
####

3 邮件中文乱码问题解决

对于中文乱码问题一般是环境变量所致,但是在设置好了环境变量,使用测试脚本可以发出邮件,但是使用crontab 例行的时候就会出现乱码问题,这时候也可以在脚本中添加环境变量即可,这种方式适用于大部分的中文乱码问题:
即在脚本头部行添加如下环境变量:

export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

你可能感兴趣的:(linux)