Press "Enter" to skip to content

CentOS 6使用mutt+msmtp发送邮件

CentOS系统下如果希望向外域发送邮件,需要配置sendmail+dovecot等一系列工具。其实不用这么麻烦,只要mutt+msmtp就可以实现向外域发送邮件的功能了。本文基于CentOS6 64bit。

1,安装配置msmtp

$ yum install gcc gcc-c++ gnutls gnutls-devel gnutls-utils openssl openssl-devel libidn libidn-devel -y
$ wget http://sourceforge.net/projects/msmtp/files/msmtp/1.4.32/msmtp-1.4.32.tar.bz2
$ tar -jxvf msmtp-1.4.32.tar.bz2
$ cd msmtp-1.4.32
$ ./configure --prefix=/usr/local/msmtp
$ cd msmtp-1.4.32
$ make && make install

$ mkdir /usr/local/msmtp/etc

生成配置文件

$ cat >>/usr/local/msmtp/etc/msmtprc<<EOF

直接复制以下内容粘贴在>号的位置即可

defaults
tls on
logfile /usr/local/msmtp/msmtp.log

account acc1
host smtp.163.com 
port 25
from [email protected]
auth login
tls off 
user [email protected] 
password mypasswd

account acc2
host smtp.qq.com
port 465
from [email protected]
auth login
tls_starttls off
tls on
tls_certcheck off
user [email protected]
password mypasswd

account default : acc2
EOF

配置文件里面有一些需要注意的地方:
QQ邮箱不支持tls,使用QQ邮箱需要关闭tls_starttls,
网易免费邮箱的ssl证书通不过验证,所以使用163邮箱时,只能关闭tls证书验证。
该配置文件不支持中文,也不能粘贴中文注释,否则必报错。

2,安装配置mutt

$ yum install mutt -y
$ cat >>/etc/Muttrc<<EOF

直接复制以下内容粘贴在>号的位置即可

set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="[email protected]" 
set editor="vim"
EOF

注意:
如果不设置use_from项,发向gmail的邮件会被退回;
设置了use_from项,收件人会看到发件人在系统里的用户名(例如root);如果是在web邮箱发的邮件,收件人那里会看到QQ邮箱的昵称。

3,功能测试

#发送邮件至[email protected]
$ echo "这里是正文" |mutt -s "这里是标题" [email protected]

#发送邮件至[email protected],同时密送至[email protected]
$ echo "这里是正文" |mutt -s "这里是标题" [email protected] -b [email protected]

不出意外,应该是可以收到邮件了。执行这条命令如果超过5s没有反应,说明msmtprc文件中的default帐户配置有误。可以先执行ps -ef | grep mutt找出进程号kill之,然后修改msmtprc文件中的相关配置以后再试。

One Comment

  1. wonderflow 2014-08-21

    用mutt的好处是什么,只要装了msmtp就能发简单的邮件了。

Leave a Reply

Your email address will not be published. Required fields are marked *