2011年4月29日星期五

FreeBSD下如何使用mutt连接gmail

我把这个帖子重新修改了一下,增加了一部分关于SSL协议的内容,然后把最新版本的写到freebsdchina的wiki上去了。

当前地址如下:


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
把下述内容复制进去
引用:
-----BEGIN CERTIFICATE-----
MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT
DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE
AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl
ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT
AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ
cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2
aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh
Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/
qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm
SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf
8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t
UCemDaYj+bvLpgcUQg==
-----END CERTIFICATE-----
touch Equifax_Secure_CA.pem
把下述内容复制进去
引用:
-----BEGIN CERTIFICATE-----
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
70+sB3c4
-----END CERTIFICATE-----
然后执行
引用:
c_rehash mail/.certs
认证部分就完成了。

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
然后注意看最后的输出,你应该看到tls/ssl后面的内容了吧,注意没有这个发不出去邮件啊,
引用:
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
配置msmtp,让msmtp能发送邮件到gmail的服务器上:

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
4.配置fetchmail,让fetchmail能从gmail的服务器上取回邮件:
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/
5.配置procmail来把fetchmail取回来的电子邮件分拣到不同的本地邮箱:

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

################################################################################
6.配置mutt,让mutt能调用fetchimal+procmail和msmtp来接受和发送邮件,当然还要让mutt调用vim和gnupg:
引用:
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

没有评论:

发表评论

上海松善实业有限公司

    上海松善实业有限公司是一家集多品牌销售于一体的电线电缆骨干企业,公司成立于2016年。 公司拥有国内各大品牌:起帆、远东、上上、江南、胜华等。     主要产品有:高低压电力电缆、橡套电缆、控制电缆、架空绝缘电缆、塑胶电缆、电子计算机电缆、通讯电缆、...