centos 7.5 采用Mutt及msmtp配置进行邮件发送

62 篇文章 1 订阅

Centos 7.5 采用Mutt及msmtp配置进行邮件发送

         在mysql集群中,通过Keepalived做负载均衡,当keepalived或者是Mysql集群有问题通过邮件通知,但是Keepalived本身发送邮件不是很好用,采用mutt方式。其中一种即采用mutt和msmtp的解决方案,它类似于foxmail及outlook的客户端,可以通过命令行的方式来进行邮件的自动发送。

一、msmtp的安装与配置

Linux下可以直接用mail命令发送邮件,但是发件人是user@servername,如果机器没有外网的dns,其他人就无法回复。此时,有一个可以使用网络免费邮箱服务的邮件发送程序就比较重要了。msmtp就是这样的一个程序。

#1、下载源码包

wget http://sourceforge.net/projects/msmtp/files/msmtp/1.4.31/msmtp-1.4.31.tar.bz2

#2、解压

tar -jxvf msmtp-1.4.31.tar.bz2 && cd msmtp-1.4.31

#编译安装

./configure --prefix=/usr/local/msmtp && make && make install

#做软链接

ln -s /usr/local/msmtp/bin/msmtp /usr/bin/msmtp

 

#3、新建msmtp的配置文件

mkdir /usr/local/msmtp/etc && vim /usr/local/msmtp/etc/msmtprc

 

#4、输入如下内容

# Set default values for all following accounts.
defaults

logfile /var/log/msmtp/msmtp.log
# The SMTP server of the provider.
account 163

# SMTP邮件服务器地址
host smtp.163.com

# 发送的邮件Email
from user@163.com
auth login

# 邮件服务器登录账号
user user@163.com

# 邮件服务器登陆密码
password password
# Set a default account
account default : 163

 

#############################################

#5、测试msmtp是否配置正确

msmtp test@163.com
test
[ctrl+d]

 

echo  "测试test"|mutt -s "test"  receiver@163.com

二、  mutt的安装与配置

1、安装配置mutt
yum install -y mutt

2、mutt一般情况下是默认已经安装在linux系统中,可以通过which mutt来查看对应的安装路径。只需要做一些配置即可,具体的配置可以有两种方式。可以修改/etc/Muttrc或新增.muttrc,在/etc/Muttrc相应的配置文件。具体的配置文件如下:

vi /etc/Muttrc,在最后增加如下内容

set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname='Mysql HA Monitor'
set from=test@163 ###在msmtp中配置的账号,另外此账号要确定是否能正常登录
set envelope_from=yes
auto_view text/html
set charset='utf-8'
set send_charset='utf-8'
set locale ='zh_CN.UTF-8'
set content_type = 'text/html\;charset=utf-8'
set rfc2047_parameters=yes

在配置完mutt后,可以采用如下的命令进行邮件发送功能的验证,具体如下:

$ echo “helloworld” | mutt –s “test subject” ***@163.com

正常情情况下,邮件能够成功发送。

若出现了异常,可以采用如下的方式进行问题排查:

$ echo “helloworld” | mutt –s “test subject”***@163.com

Error sending message, child exited 78 ().

Segmentation fault

当遇到如上的问题时,一般情况是由于某些配置文件错误导致的,但通过上述简短的信息无法排查出到底是哪里出现了问题。可以采用如下的方式进行检验:

$ mutt –s “test subject” ***@163.com

上述命令会要求你输入正文,然后再输入邮件正文,此时会出现较为详细的错误,如下所示:

msmtp: account default not found: noconfiguration file available

此时可以确定是由于msmtp出现了问题,而且是由于无法加载默认的default用户而导致的。解决方案即是在配置sendmail时将其配置文件加上。如下所示:

set sendmail=”/usr/local/msmtp/bin/msmtp –C.msmtprc”

3、mutt的常用命令

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

Linux命令参数:

-a<文件>   在邮件中加上附加文件。

-b<地址>   指定密件副本的收信人地址。

-c<地址>   指定副本的收信人地址。

-f<邮件文件>   指定要载入的邮件文件。

-F<配置文件>   指定mutt程序的设置文件,而不读取预设的.muttrc文件。

-h   显示帮助。

-H<邮件草稿>&nbsp;  将指定的邮件草稿送出

-i<文件>   将指定文件插入邮件内文中

 -m<类型>   指定预设的邮件信箱类型。

-n   不要去读取程序培植文件(/etc/Muttrc)

 -p   在mutt中编辑完邮件后,而不想将邮件立即送出,可将该邮件暂缓寄出。

-R   以只读的方式开启邮件文件

 -s<主题>   指定邮件的主题。

-v   显示mutt的版本信息以及当初编译此文件时所给予的参数。

-x   模拟mailx的编辑方式。

-z   与-f参数一并使用时,若邮件文件中没有邮件即不启动mutt。

带附件的邮件发送命令:

$ mutt -s "subject" -a /home/admin/backup.tar.gz xxx@163.com < /tmp/x.txt

-s: 邮件标题,用""括上

-a: 邮件附件。如上命令就是将/backup目录下 backup.tar.gz文件作为附件发送。

< /tmp/x.txt:/tmp目录下x.txt文件里的内容作为邮件内容发送。

给多人发送邮件,只要在邮箱地址后加空格接着输入邮箱地址即可,如:

$ mutt -s "subject" -a /home/admin/backup.tar.gz xxx1@163.com xxx2@163.com xxx3@163.com< /tmp/x.txt

详细的mutt的文档请参见: http://book.selboo.com.cn/book/Mutt.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值