mutt+fetchmail+procmail+exim4 邮件服务器
养慈
2023-12-01
传说中的这一套东西还真有点复杂,让人不那么好懂。不过终于也将其搞好了,可以用来从 yahoo 来收发邮件。本来还想把 gmail 弄好的,但它好像还要复杂点。
这三个程序的配置都有点复杂,光看他们的超长的 man 页就让人受不了。还有一些问题:
1,乱码,有一些邮件 subject 是乱码
set assumed_charset=gb2312:utf-8:big5
#.muttrc中相关行
2,html 邮件,不知怎么会有这多的这样的邮件
auto_view text/html #.muttrc 相关行
text/html; w3m -T text/html -I %{charset} -dump %s; nametemplate=%s.html; copiousoutput #.mailcap相关行
3,地址薄
set alias_file=~/.mutt.alias #.muttrc 相关行
source ~/.mutt.alias #.muttrc 相关行
4,附件
不是问题,很简单。
unix 风格的程序入手可以有点困难,但弄好了以前真可以节约不少时间。其中给我印象最深的像 axel, wget, rtorrent, 等。
-------------------------------------------分割线---------------------------------------------------------------------------------分割线-------------------------
后记总结:
邮件服务器中分三块,MTA:邮件转发代理,exim4;MDA:邮件分发代理,procmail;MUA:邮件用用户代理,mutt。fetchmail 只是用来获取其它邮件服务器上的邮件。
可以分为三个部分来配置。
1,exim4
它的配置最简单,参考《debain 学习笔记》可以很快搞定。对它有一点疑问,为什么向外 smtp 服务器发信的 passwd-client 要写在 /etc/ 中而不是自己主目录中?
2,fetchmail+procmail
fetchmail 默认也会安装成系统服务,这样的话就要求把 fetchmailrc 写到 /etc 目录,其中包含 host 和 passwd,并且,procmail 的配置文件也要写在 /etc 目录,这觉得这样有点不妥,还不如用普通用户运行 fetchmail 来运行,这样的话配置文件都在主目录中,所以删去其系统服务。在主目录中写上 .fetchmailrc 和 .procmailrc 。
vim .fetchmailrc
1 #
2 set postmaster "root"
3 set bouncemail
4 set no spambounce
5 # set properties ""
6 set daemon 600
7 #
8 poll pop.mail.yahoo.com.cn
9 protocol pop3
10 uidl
11 user "username"
12 password "password"
13 keep
14 mda "/usr/bin/procmail -d %T"
15 #
vim .procmailrc
1 MAILDIR=$HOME/mail/
2 LOGFILE=$HOME/mail/.procmail.log
3 LOGABSTRACT=no
4 VERBOSE=off
5 FORMAIL=/usr/bin/formail
6 NL="
7 "
8
9 #使用formail截获重复的邮件。
10 :0 Whc: .msgid.lock
11 | $FORMAIL -D 16384 .msgid.cache
12
13 :0 a
14 $MAILDIR/duplicates
15
16
17 :0
18 * .*
19 $MAILDIR/inbox/
fetchmail 负责从外服务器中取回邮件,procmail 负责分发。procmail 分发时可以采用 mbox 和 maildir 等格式,只是在其目录配置时在最后加一个'/'来说明。默认采用 mbox 格式并分发到主目录中,这里常用的 maildir 格式。
3,mutt
由 procmail 分发的邮件已经存在目录中,现在就可以在 mutt 配置文件中指定目录,其配置文件有三:.muttrc(主配置文件),.mailcap(附件类型打开方式),.mutt.alias(地址薄)。
1 # 收信设置
2 #
3 macro index G "!fetchmail\r"
4 macro pager G "!fetchmail\r"
5 #
6 # 发信设置
7 #
8 set sendmail="/usr/sbin/exim4"
9 set from=username@yahoo.com.cn
10 set realname="name"
11 set use_from=yes
12 set editor="vim"
13 set edit_headers=no
14 set envelope_from=yes
15 #
16 #
17 # 文件夹设置
18 set folder="~/mail/"
19 set mbox="~/mail/inbox/"
20 set mbox_type=maildir
21 set spoolfile="~/mail/inbox/"
22 set postponed="~/mail/postponed/"
23 set record="~/mail/sent/"
24 #
25 #
26 # 显示设置
27 set locale="zh_CN.UTF-8"
28 set pager_context=1
29 set pager_index_lines=6
30 set pager_stop
31 set date_format="%a, %d %b %y"
32 set index_format="%4C %Z %d %-15.15L (%4l) %s"
33
34 set resolve=yes
35 set quit=ask-yes
36 set move=no
37
38 set alias_file=~/.mutt.alias
39 source ~/.mutt.alias
40
41 auto_view text/html application/msword
42 auto_view image/*
43
44 subscribe debian-chinese-gb@lists.debian.org
45 subscribe debian-chinese-big5@lists.debian.org
46 subscribe debian-user@lists.debian.org
47
48 set copy=yes
49 set delete=yes
50 set fast_reply=yes
51 set include=yes
52 set markers=yes
53 unset menu_scroll
54 set pgp_verify_sig=no
55 set save_empty=yes
56 set sendmail_wait=0
57
58 #---Sort
59 set sort=threads
60 set ascii_chars=yes
61 set sort_aux=reverse-date-sent
62
63 #---Headers
64 ignore *
65 unignore Date To From: Subject X-Mailer Organization User-Agent
66 hdr_order Date From To Subject X-Mailer User-Agent Organization
67
68 set assumed_charset=gb2312:utf-8:big5
上面的 .muttrc 主要参考了下面列出的网址。
vim .mailcap
1 application/msword; wvHtml --targetdir='/tmp' --charset=utf-8 %s - | w3m -T text/html -I %{charset} -dump; nametemplate=%s.html; copiousoutput
2
3 # text/html; lynx --dump %s; nametemplate=%s.html; copiousoutput
4
5 text/html; w3m -T text/html -I %{charset} -dump %s; nametemplate=%s.html; copiousoutput
上面是从王垠的入门中 copy 过来的,经过小的更改。加了 --targetdir 不然是当前目录下有很多图片什么的,--charset 是 locale 中的语言,将 lynx 换成 w3m, 因为它能很好的支持中文。
debian 学习笔记:exim4邮件服务器
http://www.ringkee.com/note/opensource/debian/ch11s05.html [+]
mutt email程序使用入门:王垠
http://www.kreny.com/docs/mutt.htm
配置mutt做邮件客服端
http://mail.ustc.edu.cn/~lixuebai/GNU/MuttConfig.html#fetchmailrc [+]
[指南]Exim4+fetchmail+mutt在debian下收发电子邮件
http://www.linuxsir.org/bbs/showthread.php?t=218880