LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 5050|回复: 15

freebsd+mutt+fetchmail+msmtp+procmail+vim+gnupg+gmail

[复制链接]
发表于 2009-3-18 20:03:53 | 显示全部楼层 |阅读模式
--------------------------------------------------------------------------------------------------------------------------------------------
[color="Red"]
我把这个帖子重新修改了一下,增加了一部分关于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时实在是忍受不了了,编译的时间实在是长啊,碰上网络不好,再下载不到源代码就更痛苦了, :yun:

mutt这个东西相当的好用,evolution和mutt相比的话,感觉就像是gedit和vim/gvim相比,并且evolution在FreeBSD上面启动有点慢,总之mutt是相当的爽!

gmail是个好东西,但是总是登录网页就有点不爽了,用evolution的话实在是编译不起啊,所以应该mutt+gmail才好,

[color="Magenta"]现在把过程写下来,和大家分享一下,喜欢的照猫画虎即可,但也不要只是看,有什么意见一定要提出来,

这个是在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
把下述内容复制进去
[QUOTE]-----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

[/QUOTE]

认证部分就完成了。

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"  [color="Magenta"]# 发电子邮件全靠这个了!

################################################################################
# fetchmail and procmail
macro index G "!fetchmail -a -m 'procmail -d %T'\r" [color="Magenta"]# 收电子邮件并且分发的格格邮箱全靠这个!

################################################################################
# GnuPG
source /home/fender/.mutt/gpg.rc [color="Magenta"]# 想使用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 [color="Magenta"]# 让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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2009-3-18 20:29:08 | 显示全部楼层

我搞定了mutt+fetchmail+msmtp+procmail+vim+gnupg+gmail,分享一下,有兴趣的去看看,哈

虽然不是debian下面搞定的,但是debian下面过程应该大同小异,有兴趣的去看看,

以前讨论过,也有兄弟感兴趣,所以在这也发一下,

传送门:

http://www.linuxsir.cn/bbs/thread346776.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-18 20:31:14 | 显示全部楼层

我搞定了mutt+fetchmail+msmtp+procmail+vim+gnupg+gmail,分享一下,有兴趣的去看看,哈

虽然不是gentoo下面搞定的,但是gentoo下面过程应该大同小异,有兴趣的去看看,

以前讨论过,也有兄弟感兴趣,所以在这也发一下,

传送门:

http://www.linuxsir.cn/bbs/thread346776.html
回复 支持 反对

使用道具 举报

发表于 2009-3-18 21:23:23 | 显示全部楼层
好帖!曾经被Mutt折磨死,最后还是没搞定……什么fetchmail、msmtp搞的我头都晕了,看完LZ的帖子,我决定抽空再折腾一遍,哈哈

呃,难道LZ不打算把帖子里的邮件地址用XXXX@GMAIL.COM代替一下么?
回复 支持 反对

使用道具 举报

发表于 2009-3-18 21:33:20 | 显示全部楼层
致以崇高的敬意   ;)
回复 支持 反对

使用道具 举报

发表于 2009-3-18 21:47:23 | 显示全部楼层
技术帖~~支持一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-18 22:08:27 | 显示全部楼层
Post by clinif;1962877
好帖!曾经被Mutt折磨死,最后还是没搞定……什么fetchmail、msmtp搞的我头都晕了,看完LZ的帖子,我决定抽空再折腾一遍,哈哈

呃,难道LZ不打算把帖子里的邮件地址用XXXX@GMAIL.COM代替一下么?

已经换了,

还是换换比较安全,要不然很快就会接到很多广告,哈哈。
回复 支持 反对

使用道具 举报

发表于 2009-3-18 22:16:54 | 显示全部楼层
一直对在提字符下就能完成工作的人表示敬意。

本菜用了6年的Outlook Express, 本月才正式开始把所有邮件转入Thunderbird麾下.
回复 支持 反对

使用道具 举报

发表于 2009-3-18 22:41:22 | 显示全部楼层
眾多的 MTA 及 mail client,樓主選擇時是怎樣考慮的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-18 23:01:03 | 显示全部楼层
其实我就没有怎么考虑,我选择fetchmail就是看别人用了,哈哈,

选择mutt是因为体积小、好编译、另外定制能力好,还有就是现在比较喜欢gnome-termial,总喜欢再gnome-termial里面运行程序。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表