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
测试msmtp配置,发送给对方
msmtp [email protected]
输入test
然后按CTRL+c结束
登陆163邮箱,会收到一个空邮件,说明成功了。
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脚本就可以调用它来发送邮件了。