CENTOS 使用 MUTT发送邮件

转载 · and大头 · 2019-05-25 · 原文

有些时候我们需要在Centos服务器上发送邮件,例如备份MySQL数据库并发送到指定邮箱,这里我们就说下如何从Centos的shell命令发送邮件。

检查、安装、启动sendmail

//检查
ps -ef | grep sendmail

//安装
yum install sendmail

//启动
service sendmail start

//开机启动
chkconfig --level 2345 sendmail on

检查并安装mutt

//检查mutt是否安装, 已安装会返回/usr/bin/mutt
# which mutt

//安装mutt
# yum install mutt

配置mutt

  1. 配置全局mutt, 直接编辑 /etc/Muttrc 文件
  2. 配置用户级mutt, 复制/etc/Muttrc 到 /当前用户/.muttrc
    //为root用户复制.muttrc
    # cp /etc/Muttrc /root/.muttrc
    

配置mutt, 上述两种方法修改方式相同

#设置邮件编码方式
set charset="utf-8"
# 外发邮件使用的编码 
set send_charset="UTF-8" 

# 用中文格式显示日期 
set locale=`echo "${LC_ALL:-${LC_TIME:-${LANG}}}"` 
# 解决没有设置字符编码的信件显示为乱码的问题 
charset-hook ^us-ascii$ GB2312 
# 解决主题为UTF-8的信件标题显示为乱码的问题 
charset-hook !UTF-8 GB2312 
set assumed_charset="GB2312" 
# 解决中文附件名为乱码的问题 
set rfc2047_parameters=yes 

#自定义发件人信息 
set envelope_from=yes #这条默认没有,请手动添加
set use_from=yes 
set from=xxx.com@xx.com
set realname="Master Lee"
set copy=no

测试发送邮件

//语法
mutt [-hnpRvxz][-a<文件>][-b<地址>][-c<地址>][-f<邮件文 件>][-F<配置文件>][-H<邮件草稿>][-i<文件>][-m<类型>] [-s<主题>][邮件地址]

参 数:
-a<文件> 在邮件中加上附加文件。
-b<地址> 指定密件副本的收信人地址。
-c<地址> 指定副本的收信人地址。
-f<邮件文件> 指定要载入的邮件文件。
-F<配置文件> 指定mutt程序的设置文件,而不读取预设的.muttrc文件。
-h 显示帮助。
-H<邮件草稿> 将指定的邮件草稿送出。
-i<文件> 将指定文件插入邮件内文中。
-m<类型> 指定预设的邮件信箱类型。
-n 不要去读取程序配置文件(/etc/Muttrc)。
-p 在mutt中编辑完邮件后,而不想将邮件立即送出,可将该邮件暂缓寄出。
-R 以只读的方式开启邮件文件。
-s<主题> 指定邮件的主题。
-v 显示mutt的版本信息以及当初编译此文件时所给予的参数。
-x 模拟mailx的编辑方式。
-z 与-f参数一并使用时,若邮件文件中没有邮件即不启动mutt。
最常用的有:
-a, -c, -f, -m, -s

发送

mutt xxx@qq.com -s "测试mutt" -a test.txt < test.txt

echo "邮件正文" | mutt xxx@qq.com -s"xxxx" -a test.txt

如果邮件发送错误,查看日志(/var/log/maillog)