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

2020-09-10 10:27:17 浏览数 (1)

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等)作为正文文件 命令如下:
代码语言:javascript复制
####
[root@congying ~]# mail -s "[主题]"  [收件地址]< [文件路径(邮件正文.txt)]
####

或者:

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

3 邮件中文乱码问题解决

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

代码语言:javascript复制
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

0 人点赞