当前地址如下:
http://wiki.freebsdchina.org/doc/m/mutt_gmail_usage
--------------------------------------------------------------------------------------------------------------------------------------------
写在前面:
引用:
版权:gpl 首发linuxsir,转载注明出处以及作者, 常用id:fender/fender010/fender0107401 |
我搞定了mutt+fetchmail+msmtp+procmail+vim+gnupg+gmail,
以前虽然弄过一次,但是没有弄彻底,前几天升级evolution时实在是忍受不了了,编译的时间实在是长啊,碰上网络不好,再下载不到源代码就更痛苦了,
mutt这个东西相当的好用,evolution和mutt相比的话,感觉就像是gedit和vim/gvim相比,并且evolution在FreeBSD上面启动有点慢,总之mutt是相当的爽!
gmail是个好东西,但是总是登录网页就有点不爽了,用evolution的话实在是编译不起啊,所以应该mutt+gmail才好,
现在把过程写下来,和大家分享一下,喜欢的照猫画虎即可,但也不要只是看,有什么意见一定要提出来,
这个是在FreeBSD上的配置过程,debian、gentoo也基本上大致如此,也就是包的名字稍微有点差异,
首先要明确几个概念:
引用:
fetchmail用来收邮件, procmail用来在你自己的机器上分拣邮件,你可以指定那个邮件列表的投递到什么邮箱里面去, msmtp这个用来发送邮件, gnupg用来发邮件的时候进行数字签名或者是验证别人的电子签名,当然还能加密电子邮件,反正就是和安全有关的东西了, mutt负责把这些东西组合起来, vim自然是用来写邮件了, |
freebsd里面配置过程如下:
1.安装openssl(没有这个你就不能执行c_rehash命令,我在FreeBSD里面whereis openssl发现基本系统里面有一个openssl命令,但是还是需要安装ports tree里面的openssl),安装mutt,安装gnupg,安装fetchmail,
这些都没有什么好说的,需要注意的是freebsd里面安装gnupg以后还需要安装pinentry-curses、pinentry-gtk、 pinentry-gtk2、pinentry-qt中的一个,只有这样才能正常使用gnupg,
fetchmail编译时需要加入openssl的支持,但是FreeBSD里面好像是默认就有了,
如果你是使用debian的话,那么维护fetchmail的dd估计已经加上了,如果使用gentoo的话,估计需要你自己加上,因为gentoo的定制行很强,估计开发者不会给你加上,不确认是不是加入了的话ldd命令可以帮你确认一下,
2.认证部分比较复杂,看仔细了,注意我也没有太弄明白,因为不懂ssl到底是怎么回事,谁明白最好说一下:
想彻底搞清楚的,看最后我给出的那个链接,
想简单的这样即可:
引用:
cd mail/.certs/ touch Thawte_Premium_Server_CA.pem 把下述内容复制进去 引用:
把下述内容复制进去 引用:
引用:
|
3.安装msmtp,
这个也需要ssl支持,但是FrreeBSD的port maintainer没有把这个编译选项加进去,那就让我们来看看Makefile的内容,用vim打开以后搜索一下ssl,发现下述内容:
引用:
26 .if defined(WITH_GNUTLS) 27 LIB_DEPENDS+= gnutls.26:${PORTSDIR}/security/gnutls 28 CONFIGURE_ARGS+= --with-ssl=gnutls 29 .elif defined(WITH_OPENSSL) 30 USE_OPENSSL= yes 31 CONFIGURE_ARGS+= --with-ssl=openssl 32 .else 33 CONFIGURE_ARGS+= --without-ssl 34 .endif |
引用:
make WITH_OPENSSL=yes configure |
引用:
Install prefix ......... : /usr/local TLS/SSL support ........ : yes (Library: OpenSSL) GNU SASL support ....... : no GNU Libidn support ..... : yes NLS support ............ : yes GNOME Keyring support .. : no MacOS X Keychain support : no |
cat .msmtprc
引用:
account default host smtp.gmail.com port 587 from user_name@gmail.com tls on tls_starttls on tls_trust_file /home/fender/mail/.certs/Thawte_Premium_Server_CA.pem auth on user user_name password 123456 logfile /home/fender/mail/.msmtp.log |
cat .fetchmailrc
引用:
poll pop.gmail.com port 995 proto POP3 user 'user_name@gmail.com' password '123456' # mda "/usr/local/bin/procmail -d %T" options no keep ssl sslcertck sslcertpath /home/fender/mail/.certs/ |
cat .procmailrc
引用:
################################################################################ PATH=$HOME/bin:/usr/bin:/usr/local/bin: MAILDIR=$HOME/mail LOGFILE=$MAILDIR/.procmaillog ################################################################################ # FreeBSD mailing list: :0 * ^List-Id:.*freebsd-announce 1_freebsd-announce :0 * ^List-Id:.*freebsd-security-notifications 1_freebsd-security-notifications :0 * ^List-Id:.*freebsd-amd64 1_freebsd-amd64 :0 * ^List-Id:.*freebsd-doc 1_freebsd-doc :0 * ^List-Id:.*freebsd-gnome 1_freebsd-gnome :0 * ^List-Id:.*freebsd-performance 1_freebsd-performance :0 * ^List-Id:.*freebsd-security 1_freebsd-security :0 * ^List-Id:.*cnproj-cvs 1_cnproj-cvs :0 * ^List-Id:.*cnproj-submit 1_cnproj-submit ################################################################################ # Gnu Octave mailing list: :0 * ^List-Id:.*bug-octave 2_bug-octave :0 * ^List-Id:.*help-octave 2_help-octave :0 * ^List-Id:.*octave-maintainers 2_octave-maintainers ################################################################################ :0 * .* 3_default ################################################################################ |
引用:
cat .muttrc ################################################################################ # Personal information set hostname=PC-686.Workstation set realname=Li my_hdr From:user_name@gmail.com ################################################################################ # sendmail set sendmail="/usr/local/bin/msmtp" # 发电子邮件全靠这个了! ################################################################################ # fetchmail and procmail macro index G "!fetchmail -a -m 'procmail -d %T'\r" # 收电子邮件并且分发的格格邮箱全靠这个! ################################################################################ # GnuPG source /home/fender/.mutt/gpg.rc # 想使用gnupg的话,/usr/local/share/examples/mutt/下面cp这个文件就好了,然后放到一个地方source一下,直接source也可以,但是我喜欢集中我的配置文件, ################################################################################ # Signature set signature="/home/fender/.mutt/signature" # 发邮件时的个性签名位置, ################################################################################ # Folders source /$HOME/.mutt/folder ################################################################################ # Aliases set alias_file = /$HOME/.mutt/aliases source /$HOME/.mutt/aliases # 电子邮件通讯录, ################################################################################ # Color source /$HOME/.mutt/color ################################################################################ # Mailing list source /$HOME/.mutt/subscription # 我定的邮件列表, ################################################################################ # Mailboxes source /$HOME/.mutt/mailboxes # 让mutt监视的电子邮箱,有新邮件好报告我,截图里面显示N的就是有新邮件的, ################################################################################ # Header source /$HOME/.mutt/header # 定制如何显示邮件头 ################################################################################ set editor="vim" # 我可爱的vim编辑器,写啥都很爽,其实我这个帖子就是再gvim里面写的, set sort=threads # 指定一个排列邮件的方法,看邮件列表的时候很有用 set pager_stop set fast_reply set pager_index_lines=10 set index_format="| %4C | %Z | %{%b %d} | %-15.15L | %s" # 定制一下index的显示方式, set folder_format="| %2C | %t %N | %8s | %d | %f" # 定制一下邮箱的显示方式,一定要有%N,否则没法知道哪个有新邮件, ################################################################################ |
注意事项:
1.打开防火墙的相应端口,否则白忙活了,我现在用freebsd的ipfw,规则如下:
引用:
$cmd 00700 allow tcp from any to any 587 out via $nic setup $ks $cmd 00800 allow tcp from any to any 995 out via $nic setup $ks |
2.mutt的配置可以参考:http://www.davep.org/mutt/muttrc/
3.我是在自己的home下面建了一个mail,用这个目录来专门放电子邮件,mutt的配置文件是.muttrc,还有一些source了.mutt/下面的一些东西,
引用:
cd mail ; ls 1_cnproj-cvs 1_freebsd-security-notifications 1_cnproj-submit 2_bug-octave 1_freebsd-amd64 2_help-octave 1_freebsd-announce 2_octave-maintainers 1_freebsd-doc 3_default 1_freebsd-gnome 3_postponed 1_freebsd-performance 3_sent 1_freebsd-security |
引用:
cd .mutt ; ls aliases folder header signature color gpg.rc mailboxes subscription |
4.写好邮件需要发送了,如果想使用gnupg的,就按一下p就可以了,
5.我上面的内容里面,gmail的帐号用user_name代替了,密码用123456代替了,你们换自己的就可以了,
6.不要关掉sendmail,系统还需要这个东西再内部发送邮件,
7.还没有想好,总之要随机应变吧,根据自己情况做出一些调整。
mutt可以使用imap协议来链接gmail,但是我用了一下,感觉还是下载到本地好点,有兴趣的可以看看。
主要参考资料:http://www.andrews-corner.org/mutt.html#download
http://www.webmasterworld.com/webmaster/3359450.htm
http://ask.metafilter.com/25271/Advanced-parsing-with-procmail
今天我说一下,我是如何配置fetchmail 来收取gmail 邮件的。
首先,我花了几天的时间看了fetchmail 和procmail 等这些东西在/usr/share/doc 下的文档。同时大概看了一下fetchmail 的手册页。
配置如下,参考了example 文件:
# ~/.fetchmailrc for user-specific
# This file MUST be chmod 0600, owner fetchmail
# The default for this option is 300, which polls the server every 5 minutes.
#
# set daemon 1200
#
# By default, the fetchmail will output logging messages to
# syslog; uncomment the line below to disable this. This might be useful
# if you are logging to another file using the 'logfile' option.
#
# set no syslog
#
# Avoid loss on 4xx errors. On the other hand, 5xx errors get more
# dangerous.
#
set no bouncemail
#
# Set postmaster to nico, so that I can receive mail under any conditions
# Even if destination of undeliverable mail or no matching local recipient
# mails
#
set postmaster nico
#
# The following defaults are used when connecting to any server, and can
# be overridden in the server description below.
#
# Set antispam to -1, since it is far safer to use that together with no
# bouncemail.
#
#
defaults
protocol pop3
mda "formail -s procmail"
antispam -1
ssl sslcertck keep
sslcertpath '/etc/ssl/certs/'
poll pop.gmail.com with uidl
user 'mygmailaccount@gmail.com' there with password 'mypassword' is 'nico' here
说明:
1.文字中的反斜杠请在复制后手工删除,这是博客系统的问题。为防止安全问题,它自动对引号进行了转义。
按照fetchmail 手册页中的说法(我英文不是太好)
2. set ... 开头的是全局参数,如 bouncemail、postmaster等。这里我设置了postmaster 为nico
,这是我的Debian 系统上的一个用户名,请换成你自己的用户名。这样我就可以收到一些发信地址不可
到达或者是本地没有相关匹配收件人的邮件。
3. 关键词defaults 等同于poll ,因此在defaults 后面跟着的第一行一定要是邮件服务器用的参数,如
protocol、uidl、dns、no dns等。
4. 下面的poll 用来具体指定一个邮件服务器,完全可以把上面defaults 字段中的参数放到这里。但要小
心,千万不要把服务器参数和用户参数混淆了。
5. defaults 字段中的protocol 是服务器参数,antispam、ssl、keep 是用户参数。mda 建议放在
defaults 字段。其它的关键词只要不跟在服务器或者用户帐号的后面,放哪里都行。
6. mda "formail -s procmail"来自于man procmail。请改成你自己的MDA客户端程序,并做相应配
置。fetchmail 的手册页里不推荐procmail ,它推荐maildrop 作为客户端。但我用着没问题。个
人看着办吧。想要这方面的详细信息,请man fetchmail
7. sslcertpath 中的内容请改成自己系统中的路径。如果没有请参照网上的方法做一下签名文件放好。
7. 暑假我会找时间翻译fetchmail、procmail、msmtp 的手册页的。