本地邮件系统的安装及配置

目的:本地收发邮件。
软件:getmail、msmtp、procmail,mail(或mutt)
过程:
1)安装并配置 getmail
getmail是一个邮件检索、收取程序,它支持POP3, IMAP协议,可以将远程邮件服务器上指定帐号的邮件收取到本地。
注意:使用前请确认你的邮件帐号设置中开启了POP3或IMAP服务。

1,安装getmail.

1 #pacman -S  getmail


2,配置getmail.
getmail的配置非常简单,只需在 ~/.getmail文件中添加相应的帐号即可,如:

 1 # mkdir .getmail  #配置文件目录
 2 # [geekard@geekard ~]$ cat .getmail/getmailrc
 3 [options]
 4 verbose = 1
 5 read_all = false
 6 message_log = $HOME/.getmail/log
 7 
 8 [retriever]
 9 type = SimplePOP3SSLRetriever
10 server = pop.gmail.com
11 username = geekard@gmail.com
12 port = 995
13 password = *********
14 
15 [destination]
16 type = MDA_external
17 path = /usr/bin/procmail
18 [geekard@geekard ~]$


配置文件中只能指定一个账户,如果向同时接收多个账户的邮件,可以另外编辑一个配置文件,然后在下面的cron命令行中用--rffile参数指定。

 1 [geekard@geekard ~]$ cat .getmail/qq.conf    #qq帐号的配置文件
 2 [options]
 3 verbose = 1
 4 read_all = false
 5 message_log = $HOME/.getmail/log
 6 
 7 [retriever]
 8 type = SimplePOP3SSLRetriever
 9 server = pop.qq.com
10 username = geekard
11 port = 995
12 password = *********
13 
14 [destination]
15 type = MDA_external
16 path = /usr/bin/procmail
17 [geekard@geekard ~]$

 

3.周期检查
只需简单地编辑一个cron任务即可,例如每10分钟向远程服务器检索一次邮件:

1 [geekard@geekard ~]$ crontab -l
2 */10 * * * * /usr/bin/getmail --rcfile getmailrc --rcfile qq.conf
3 [geekard@geekard ~]$


2)安装并配置msmtp

getmail解决了收取邮件的文件,msmtp则解决了发送邮件的问题:它可以利用smtp协议为本地的MUA(如mail, mutt)发送邮件(会安装一个/usr/bin/sendmail链接,所以可以为任何命令行程序发邮件,这在服务器维护方面很有用)。

1, 安装

1 #pacman -S msmtp


2,配置
msmtp的配置也非常简单,只需在 ~/.msmtp 中添加自己在邮件服务器中的帐号即可。如:

 1 [geekard@geekard ~]$ cat .msmtprc
 2 # It looks like Google's in the process of becoming its own certificate
 3 # authority. For some users, they seem to have switched to a "Google
 4 # Certificate Authority" certificate, which is rooted in Equifax.
 5 #tls_trust_file /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt
 6 
 7 # Accounts will inherit settings from this section
 8 defaults
 9 auth             on
10 tls              on
11 tls_trust_file   /usr/share/ca-certificates/mozilla/Thawte_Premium_Server_CA.crt
12 
13 # A first gmail address
14 account        gmail
15 host           smtp.gmail.com
16 port           587
17 from           geekard@gmail.com
18 user           geekard@gmail.com
19 password       xxxxxxx
20 
21 # A second qq address
22 account    qq
23 auth login
24 tls off
25 host       smtp.qq.com
26 port       25
27 from       geekard@qq.com
28 user       geekard@qq.com
29 password   xxxxxx
30 
31 #log file
32 logfile /var/log/mmlog
33 
34 # Set a default account
35 account default : qq
36 [geekard@geekard ~]$

 

然后就可以使用gmail帐号往外发邮件了,当然如果最后一个参数是qq则可以使用qq帐号往外发邮件。

3,测试
我们可以使用mail命令给自己发一封邮件,然后登录到邮箱查看是否成功。

1 [geekard@geekard ~]$ echo 'hello, geekard!' | mail -s "test" geekard@qq.com
2 [geekard@geekard ~]$


3)安装并配置procmail
procmail是一个MDA,getmail将接收到的邮件传给它,它利用配置文件中的规则,将邮件分门别类地放到相应的目录中。

1, 安装

1 #pacman -S procmail


2, 配置
只需要向文件~/.procmailrc添加自己的过滤规则即可,如

 1 #[geekard@geekard ~]$ cat .procmailrc
 2 
 3 MAILDIR=$HOME/mail     #邮箱目录
 4 DEFAULT=$MAILDIR/inbox/
 5 LOGFILE=$MAILDIR/log
 6 VERBOSE=on
 7 
 8 ##规则条目以:0开头
 9 ##规则行中不可包含注释
10 ##使用否条件!禁止某规则
11 ##条件行以*开头,你的朋友作为正则表达式(regxp)
12 ##条件行并列,*之后所有部分将被送到egrep
13 ##执行行紧接条件行之后。这里是一个邮件箱的名称。
14 
15 :0:
16 * ^From: .*overdue_notice@uestc.edu.cn.*
17 library/
18 
19 :0:
20 * ^From: .*ramesh.thegeekstuff@gmail.com.*
21 Geek-stuff/
22 
23 
24 :0:
25 * ^From: .*geekard.*
26 From-geekard/
27 
28 #邮件列表
29 :0
30 * ^List-Id:.*kde-devel.kde.org
31 kde-devel/
32 
33 :0:
34 * ^List-Id:.*lists.fedoraproject.org
35 fedora/
36 
37 :0:
38 * From: LinuxTOY <xxdlhy@gmail.com>
39 LinuxTOY/
40 
41 :0:
42 * ^To: .*lists.stanford.edu.*
43 OpenFlow/
44 
45 ################################
46 #最后一条:不符合上述任何一条
47 #规则的邮件进入到默认邮件箱
48 ################################
49 :0:
50 inbox/
posted @ 2012-05-07 22:43  geekard  阅读(1965)  评论(0编辑  收藏  举报