Chinaunix首页 | 论坛 | 博客
  • 博客访问: 82193
  • 博文数量: 31
  • 博客积分: 2048
  • 博客等级: 大尉
  • 技术积分: 353
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-24 22:28
文章分类

全部博文(31)

文章存档

2011年(1)

2009年(30)

分类:

2009-04-09 22:18:57

由于邮件数目不多,我就没有用 procmail 对邮件进行分类和过滤。

原理:
1. getmail 定时收取邮件,并把邮件投递到预设的目录下。
2. mutt 监视邮件目录,报告新邮件,读取邮件。并调用 msmtp 回复或发送新邮件。
3. msmtp 被 mutt 调用,用来发送邮件。

配置过程:

1. 安装软件包。
$ sudo pacman -S mutt getmail msmtp

2. 建立需要的目录和文件。
$ mkdir -p ~/Mail/inbox
$ touch ~/Mail/postponed
$ mkdir ~/.getmail
$ mkdir ~/log

3. 编辑配置文件。

a. ---------- ~/.muttrc ----------


#编辑器 直接在 Mutt 的终端里使用非图形界面的 Emacs (emacs -nw)
set editor=vim

#设置邮件发送程序
set sendmail="/usr/bin/msmtp"

#建立信箱
set folder="~/Mail"
set mbox="~/Mail/inbox"
set spoolfile="~/Mail/inbox"
set mbox_type=Maildir
set postponed="~/Mail/postponed"

# 让mutt监视下面几个邮箱,并随时报告新邮件
mailboxes "=inbox" $MAIL

set check_new = yes
set timeout = 600

#set alternates="xxx@mail.ustc.edu.cn"

#这是一个格式字符串,用来控制你的index的列表显示。它的缺省定义是
set index_format="%3C %Z %{%b %d} %-15.15L <%A> %s %X"
#指定你有那些信箱文件。当你按 "c" 切换信箱时,再按 Tab 键,这些信箱就可供你选择
#mailboxes Mailbox sent-mail
#这是一个 bool 型变量。它表明你在回信时引用原文是否加入原文的邮件头。
set header=no
#可以设置为 yes, no, ask-yes, 或者 ask-no. 这是说,当你按q退出时,是否提示你(ask-yes,ask-no),
#还是直接就退出了(yes),还是根本不理你(no)。
set quit=yes
#html类型的附件是允许直接通过 .mailcap 浏览的?
#doc类型的附件通过wvware转成html 浏览
auto_view text/html

#这也是一个提示性变量。它是确定当你退出时,是否提示你把信件从 spool 移动到的 mbox 文件。
set move=no
#当 Mutt 用 thread 方式显示时,是否用纯 ascii 表示树状列表。
set ascii_chars=yes
#回信时是否包含原文。
set include
#回信的引文之前插入那个符号?
set indent_str="> "
#排序方式。
set sort=reverse-date
#当用 thread 排序方式时,我们对各个 thread 的相对排序顺序。
set sort_aux=threads
#如果翻到最后,再按往下翻也不会翻到下一封信件
set pager_stop
#如果设置,当你按 "r" 回信时,就不会再提示你输入回信地址和主题,直接进入编辑模式。
set fast_reply
#当你按 "t" 或者 "D" 之类的标记操作时,是否自动把光标移动到下一封信件。
set resolve=yes
#地址簿
source ~/.mutt.alias
#当你在 index 里按 "a" 为来信者取别名时,使用哪一个别名文件保存这个别名。
set alias_file=~/.mutt.alias
#你发出的邮件保存到那个信箱文件?比如可以像我这样每个月发出的信件放在不同的文件里。
set record="~/Mail/sent-mail-`date +%Y-%m`"
#你的终端支持哪一种编码的显示?这个必须和你的终端编码一样。推荐用utf8
set charset="utf8"
#send_charset
set send_charset="us-ascii:iso-8859-1:gb2312:utf-8"
#外部程序退出时,是否要求用户按一个键才返回。这在察看某些shell命令输出时是比要的,
#否则它们一下就消失了。
set wait_key=yes
#当你要把信件存到另一个信箱,而这个信箱已经存在时,是否提示附加?
set noconfirmappend
#是否把邮件头也放在编辑器里可以修改?
set edit_headers=no
#当你在用 pager 看信件时,在 index 留出多少行显示邮件列表?
set pager_index_lines=4
#告诉 Mutt 你已经订阅了那些邮件列表(mailing-list).
#subscribe ***

#mutt显示日期为中文
#set locale="zh_CN"
#有些没有设置字符编码时
charset-hook ^us-ascii$ gb2312
#Chinaren 等服务器发出来的信件使用了 quoted-printable 的 subject,
#而且设置编码为 "iso8859-1",这显然错误的。
#对付这个错误的办法是把 iso-8859-1 变成 gb2312 的别名
charset-hook ^iso-8859-1$ gb2312
# evolution 发过来的 subject 为 utf-8 编码的邮件标题乱码!
#那就把不是 utf-8 的编码都映射到 gb2312
charset-hook !utf-8 gb2312

#把mutt发送的from域作为sendmail发送邮件的sender(否则会用user@localdomian)
set envelope_from_address="*@gmail.com"
set use_envelope_from=yes

#设置你自己的邮件头。
my_hdr From: Homo sapiens<***@gmail.com>
my_hdr Reply-To: Homo sapiens<***@gmail.com>
#设置了 "my_hdr From:" 后以下两项设置就会失效
#set use_from=yes
#set from="***@gmail.com"

macro index G "!~/.getmail/getmail.sh\n" "Invoke getmail"
macro pager G "!~/.getmail/getmail.sh\n" "Invoke getmail"

#邮件头的颜色
color header brightred black ^from
color header brightblue black ^to
color header brightcyan black ^subject
color header brightgreen black ^date

color body brightyellow black .*
color attachment magenta black
color message green black
color index green black 通知|紧急|爱|love
color status cyan black


b. 地址簿文件 ~/.mutt.alias 格式为:
alias ab Xx X

c. 由于我有多个邮箱,需要为每个邮箱写一个 getmailrc 。

---------- ~/.getmail/getmailrc.gmail ----------

[options]
verbose = 0
delete = false
message_log = ~/log/getmail.log

[retriever]
type = SimplePOP3SSLRetriever
server = pop.gmail.com
username = *
password = *

[destination]
type = Maildir
path = ~/Mail/inbox/


---------- ~/.getmail/getmailrc.163 ----------

[options]
verbose = 0
delete = false
message_log = ~/log/getmail.log

[retriever]
type = SimplePOP3Retriever
server = pop.163.com
username = *
password = *

[destination]
type = Maildir
path = ~/Mail/inbox/


d. ---------- ~/.msmtprc ----------

# Set default values for all following accounts.
defaults
logfile ~/log/msmtp.log

# Gmail
account gmail
host smtp.gmail.com
from * (填 email 地址)
port 25
auth on
tls on
tls_certcheck off
user *
password *

# 163
account 163
host smtp.163.com
from * (填 email 地址)
auth plain
user *
password *

# Set a default account
account default : gmail


4. 为 getmail 写个收邮件的脚本,并扔到 crontab 中。

---------- ~/.getmail/getmail.sh ----------

#!/bin/bash
getmail -v -n -r ~/.getmail/getmailrc.gmail -r ~/.getmail/getmailrc.163


$ chmod 700 ~/.getmail/getmail.sh

$ crontab -e ,添加:

#每小时10分,30分,50分的时候收一次信

10,30,50 * * * * ~/.getmail/getmail.sh


5. 为了增强安全性,用 chmod 改变文件权限。

OK,大功告成!

参考:



~lixuebai/GNU/MuttConfig.html

http://www.kongove.cn/blog/?p=149
阅读(5664) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~