之前一直用sendmail+mailx来发邮件,但是突然在一台服务器上遇到个问题,一打开sendmail,负载暴涨,iowait 40-60,所以,尝试用下mutt+msmtp,在网上找了相关资料,根据自己配置,总结以下
安装msmtp
<span style="font-size:14px;">wget http://nchc.dl.sourceforge.net/sourceforge/msmtp/msmtp-1.4.17.tar.bz2
tar xvf msmtp-1.4.17.tar.bz2
cd msmtp-1.4.17
./configure --prefix=/usr/local/msmtp
make
make install
cd /usr/local/msmtp/
mkdir etc #配置文件目录和配置文件都要自己建
cd etc </span>
vim msmtprc #创建配置文件
<span style="font-size:14px;">account default
host smtp.163.com #你的发送邮件服务器
port 25
from yjzy123@163.com #要从哪个邮箱发出
auth login
tls off
user yjzy123@163.com #邮箱用户名
password youxiang #邮箱密码,这里可是明文的,如果你觉得不安全可以把文件改为600属性
logfile /var/log/mmlog </span>
yum install mutt #yum安装mutt
vim /etc/Muttrc #创建配置文件
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="yjzy123@163.com"
set editor="vim"
简单测试一下
/usr/local/msmtp/bin/msmtp yjzy123@163.com
随便输入一些内容用ctrl+d结束
echo "testmail" | mutt -s "测试" -a /etc/hosts ***@163.com
这里的-a 是指添加附件,如果是多个附件的话就 多加几个 -a 文件名
mutt -s "测试" -a /etc/hosts -a /etc/hosts ***@163.com < /etc/hosts
这个的意思就是以 /etc/hosts 文件的内容作为邮件内容。
注意:
1.在QQ邮箱中有一项如果不设置,得到的会是 ”454 Authentication
在QQ邮箱的设置里面,找到账户-》POP3/IMAP/SMTP选择开启POP3/SMTP服务
2.我在配置之前,就已经装过mutt,所以,在配置完之后,发邮件总是会接到一个报错
errormsg='envelope from address root@localhost.localdomain not accepted by the server'
排查之后,发现在/root/下有个.muttrc 删掉之后,就可以正常发件了