linux可以直接用mail发送邮件给对方,但是这种邮件,容易被QQ邮箱或者其他邮箱拦截掉

所以必须用指定账户发送邮件,才不会拦截。


msmtp 是一个SMTP 客户端。

在默认情况下,它把邮件送给负责发邮件的SMTP 服务器


安装msmtp

下载最新版本

http://iweb.dl.sourceforge.net/project/msmtp/msmtp/1.6.3/msmtp-1.6.3.tar.xz


tar xvf msmtp-1.6.3.tar.xz -C /usr/src

cd /usr/src/msmtp-1.6.3

./configure --prefix=/usr/local/msmtp

make

make install

建立软链接

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

创建配置文件目录

mkdir /usr/local/msmtp/etc

编辑配置文件

vim /usr/local/msmtp/etc/msmtprc

内容如下:

主要修改红色部分


# Set default values for all following accounts.

defaults


logfile /var/log/msmtp/msmtp.log

# The SMTP server of the provider.

account qms


# SMTP邮件服务器地址

host smtp.qq.com


# 发送的邮件Email

from [email protected]

auth login


# 邮件服务器登录账号

user [email protected]


# 邮件服务器登陆密码

password [email protected]


# Set a default account

account default : a



mutt是一款基于文字界面的邮件客户端,它需要一个发信的程序,也就是上面的msmtp


安装mutt

yum install -y mutt

创建默认的日志目录

mkdir /var/log/msmtp/

编辑配置文件

vim /etc/Muttrc

倒数第2行添加蓝色部分,红色部分是需要修改的,效果如下:

# attributes when using a mono terminal

#mono header underline ^(From|Subject):

mono quoted bold


set sendmail='/usr/bin/msmtp'

set use_from=yes

set realname='服务器报警'

set from=[email protected] 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


source /etc/Muttrc.local


测试发送一份邮件

echo "测试test"|mutt -s "test" [email protected]


登陆163邮箱

会收到一封

主题为: 服务器报警

内容为: 测试test

的邮件


这样,shell脚本就可以调用它来发送邮件了。