使用mutt+msmtp做linux邮件客户端
这几天领导让我部署开发部门写的一个脚本,需要把脚本生成的附件通过email发到他的邮箱里面去。那就开始干吧,因为之前一直用mail 命令来发邮件,可是这次行不通了。因为要带附件。有人告诉我mail 命令也能带附件,可是我怎么也没找到相关的参数。可又不想搭个mail服务器,因为闲麻烦。
于是就开始在网上找简单又有效的命令行客户端,还真让我找到了。那就是MUTT+MSMTP,看到网上好多文章,拿出几个来照着做了做,结果报各种各样的问题。
还是自己看看具体每个参数作用吧!
经过一番整理,去掉些没用的参数后测试成功。现在把具体的操作步骤写在下面:
我的目的其实很简单,就是利用MUTT和MSMTP 登录163的邮件服务器发邮件。为什么非要登录163邮箱呢?因为我测试过qq邮箱、yahoo还有sina的邮箱都发布出去,只有163的一连就通了,我估计是邮箱设置里验证的关系,也不想去深研究他了。下面给出具体步骤
首先去163申请个免费邮箱,收费免费都一样
下载MSMTP
- 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
- make
- make install
- cd /usr/local/msmtp/
- mkdir etc #配置文件目录和配置文件都要自己建
- cd etc
- vim msmtprc #手动创建配置文件
- account default
- host smtp.163.com #你的发送邮件服务器
- port 25
- from xman@163.com #要从哪个邮箱发出
- auth login #这里如果使用on的话会报 "msmtp: cannot use a secure authentication method"错误
- tls off
- user xman@163.com #邮箱用户名
- password xmanufo #邮箱密码,这里可是明文的,如果你觉得不安全可以把文件改为600属性
- logfile /var/log/mmlog
保存退出。
简单测试一下
/usr/local/msmtp/bin/msmtp xman@163.com
随便输入一些内容用ctrl+d结束。然后到邮箱看看有没有收到,如果这里提示错误按照错误代码找原因,或者看看上面的日志文件
下面开始安装 MUTT 如果是CentOS的话直接用yum就好了
yum install mutt
安装完成后要手动给他建立一个配置文件,
- vim /etc/Muttrc
- set sendmail="/usr/local/msmtp/bin/msmtp" #你的msmtp命令路径
- set use_from=yes
- set realname="xman@163.com"
- set editor="vim"
简单的4行就可以了
好了,让我们来测试一下吧!
echo "testmail" | mutt -s "测试" -a /etc/hosts ufo@sina.com
这里的-a 是指添加附件,如果是多个附件的话就 多加几个 -a 文件名
还可以这样
mutt -s "测试" -a /etc/hosts -a /etc/apple ufo@sina.com < /tmp/imax.txt
这个的意思就是以 /tmp/imax.txt 文件的内容作为邮件内容。
好了,就这么简单