代码改变世界

CentOS 5.5下用Mutt+msmtp收发Gmail邮件

2011-11-23 19:04  HJKing  阅读(1108)  评论(0)    收藏  举报

 

  • 系统环境:

  CentOS release 5.5 (Final)

  • 软件环境:

  1.Mutt 1.4.2.2-3.0.2.el5.x86_64 (系统自带)

  2.gnutls-1.4.1-3.el5_4.8.x86_64

  3.libgsasl-1.4.4-1.el5.x86_64.rpm

  4.libntlm-1.2-1.el5.x86_64.rpm

  5.msmtp-1.4.23

  其中,3和4可以从http://flexbox.sourceforge.net/centos/5/x86_64/ 下载到

  5可以到http://msmtp.sourceforge.net/ 下载。(如果有连接失效,请自行google之)

 

  • 软件安装

安装依赖包

[root@localhost ~]# rpm -ivh libgsasl-1.4.4-1.el5.x86_64.rpm 
[root@localhost ~]# rpm -ivh libntlm-1.2-1.el5.x86_64.rpm

 

安装msmtp

    tar xjf msmtp-1.4.23.tar.bz2
    cd msmtp-1.4.23
    ./configure
    make
    make install

     默认msmtp被放在/usr/local/bin/下 

  • 软件设置
    • mutt设置

      vim ~/.muttrc

set from = "username@gmail.com"
set realname = "YourName"

set imap_user = "username@gmail.com"
set imap_pass = "password"

set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed = "+[Gmail]/Drafts"
set certificate_file = ~/.mutt/certificates

set sendmail="/usr/local/bin/msmtp"
set use_from=yes
set envelope_from=yes

set move = no
set imap_keepalive = 900

set charset=”UTF-8″

set send_charset=”UTF-8″

set locale=”zh_CN.UTF-8″

charset-hook ^us-ascii$ gb2312

charset-hook !UTF-8 gb2312

set sort=reverse-threads
set sort_aux=last-date-received
set editor = "vim"

  • msmtp设置

      创建~/.msmtprc~/.msmtp.log,分别为配置和日志文件。

defaults

logfile ~/.msmtp.log

#Gmail

account gmail

tls on
auth on

host smtp.gmail.com
port 587

from username@gmail.com
tls_certcheck off

user username
password password

account default : gmail

      然后chmod 600 .msmtprc

 

  • 测试

    echo "test" |mutt -s " first_test" test2@domain.com

  

感受:之前安装msmtp(1.4.25),发送邮件时提示TLS没有编译进来,后来把与gnutls相关的包都安装了,再configure时又提示tls_init等function没有。后来把msmtp换到1.4.23版本,就没有问题了。

Tips:

  1. 如果你不能肯定SMTP 服务器是否支持TLS 加密或者是否有其它验证方式,用如下命令看看就知道了

    msmtp --host=smtp.gmail.com --serverinfo

    在/usr/share/doc/msmtp/examples下有两个很有用的小脚本,可以在离线状态下编辑邮件并发送(其实保存在$ MAILDIR/.msmtpqueue 目录下),上线时手工运行msmtp-runqueue.sh来实现真正的发送。

 

进阶参考

  1. http://blitiri.com.ar/p/other/mutt-labels/

  2. http://blog.chinaunix.net/space.php?uid=145571&do=blog&id=2798800

  3. http://mutt.blackfish.org.uk/

  4. http://www.mutt.org/

  5. http://xhc.me/wp-content/uploads/mutt/manual_1.5.19_zh.html

  6. http://docs.huihoo.com/homepage/shredderyin/mutt_frame.html

  7. http://msmtp.sourceforge.net/

  8. hjking.github.com