目的:本地收发邮件。
软件: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/