Mutt电子邮件的使用

Mutt电子邮件的使用


"All mail clients suck. This one just sucks less." -me, circa 1995


安装完mutt后,在/usr/share/doc/mutt/*下有份很好的手册

mutt是一个基于ncurse的Email客戶端。即是一个邮件管理程序。事实上,我们通常所指的mutt是一套邮件处理工具链,mutt作为邮件管理工具,是这套工具链的核心。在这套工具链中,一般还包括以下工具:

  • offlineimap 是采用 IMAP 协议处理邮件;
  • getmail 采用 POP3 协议处理邮件;
  • procmail 用来过滤邮件;
  • msmtp 用来发送邮件

(11/18)搞了一晚上,终于可以用了,mutt的内置的imap不怎么好,不能离线阅读,明天换成offlineimap试试。另外,多邮箱地址的还没有搞定,明天继续。

(11/20)最终还是选择了pop3,offlineimap还是没有搞定。

1.程序安装


安装mutt,msmtp,getmail,procmail:

$ sudo apt-get install mutt msmtp getmail4 procmail

如果需要用vim编写信件,而又没安装的话:

$ sudo apt-get install vim

2.配置发信工具 msmtp


在家目录下建立名为 .msmtprc 的配置文件:

$ vim ~/.msmtprc

在文件中加入一下内容:

#Gmail
account gmail                   # 账户名称是gmail,这个可以随意写
host smtp.gmail.com             # 发信服务器是smtp.gmail.com,这个是邮件服务器规定的
from waikeungshen@gmail.com     # 邮箱地址
 
tls on                          # tls/ssl加密,gmail邮件服务器的要求
auth on                         # 发信验证,大多邮件服务器的要求
port 587                        # gmail的发信端口
 
user waikeungshen               # 邮箱账号
password xxxxxx                 # 邮箱密码,明文
 
# 默认发信账户名称
account default: gmail

配置文件根据实际情况修改,其中发信发信服务器地址,发信端口是必须的。tls的值可能是tls on 也可能是 tls off,而auth on/login/plain。

保存退出后,由于里面的密码是明文,所以要设置权限,此文件只能本人访问。

$ chmod 600 ~/.msmtprc

3.配置收信工具getmail


首先在家目录下建立 .getmail 文件夹:

$ mkdir ~/.getmail

然后在.getmail目录内为每个邮箱各建立一个配置文件,比如为我的gmail建立getmailrc.gmail:

$ vim ~/.getmail/getmailrc.gmail

并写入如下内容:

[options]
verbose  = 0                        # 不产生过多信息
read_all = false                    # 只收取新信件
delete   = false                    # 将服务器上已被接收的信件删除
 
[retriever]
type     = SimplePOP3SSLRetriever   # POP3收信方式
server   = pop.gmail.com            # 收信服务器地址,这个是邮件服务器规定的
port     = 995                      # 收信端口
username = waikeungshen@gmail.com   # 邮箱账号
password = xxxxxxxx              # 密码,明文
 
[destination]
type     = MDA_external             # 因为要使用procmail分拣信件,所以此处这样填写
path     = /usr/bin/procmail        # procmail命令的位置,如果不确定可以
unixfrom = true                     # 这一行写不写无所谓

注意:不可将不同邮箱的配置文件写到一起。例如我还有一个hotmail的邮箱,我另外建立一个邮箱的配置文件getmailrc.hotmail。

创建一个脚本文件来调用这些邮箱的配置文件。

$ vim ~/.getmail/getmail.sh

在里面写道:

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

执行该脚本,就相当与对我的gmail和hotmail邮箱执行了getmail的命令。但不能每次都是我们手动去执行,将此事交给系统守护进程:

$ crontab -e

第一次使用此命令可能会出现选择编辑器的提示,可以选择vi,然后就会启动vi,可能又会就VIM的配置文件报一些错误,回车就打开了相应文件。在其中加入:

0,10,20,30,40,50 * * * * ~/.getmail/getmail.sh > /dev/null 2>&1

注意:> /dev/null 2>&1避免getmail收信报告被当作信件发至邮箱(如果不这样,新信件就看不完了)。现在是每十分钟收一次。

同样由于文件中含有明文密码,设置权限:

$ chmod -R 700 ~/.getmail

4.创建邮箱文件


getmail收取信件,而信件的存放地点,我们还未指定。在家目录下建立mail目录,其内用文本文件inbox、sent作为收件箱和发件箱:

$ mkdir ~/mail
$ touch ~/mail/inbox ~/mail/sent ~/mail/.procmaillog

一起创建的还有procmail的错误记录文件.procmaillog。mail目录内存放了信件等重要内容,杜绝他人访问:

$ chmod -R 700 ~/mail

5、配置信件分拣、投递工具procmail


getmail只是将收到的信件交由procmail处理,procmail如何让它们到达我们已经创建好的收件箱,需要在.procmailrc中说明:

$ vim ~/.procmailrc

加入以下内容:

PATH=/bin:/sbin:/usr/bin:/usr/sbin
SHELL=/bin/bash
MAILDIR=$HOME/.Mail
DEFAULT=$MAILDIR/inbox
LOGFILE=$MAILDIR/procmaillog

#:0
#* ^From.*@gmail.com
#Gmail

:0
*.* inbox

procmail很强大,可以设置各种分拣、投递的规则,当然过滤垃圾邮件也不在话下。这里只是将除gmail外所有信件都投到inbox中。

6、信件管理工具mutt基本配置


以上的msmtp、getmail、procmail,我们平时都接触不到,因为管理、呈现信件的事情由mutt承担,所以只要和mutt打交道就行了。

正因为这个原因,mutt的配置文件也更为复杂,先在家目录下建立.muttrc文件:

$ vim .muttrc

首先需要加入一些基本的设置语句:

set folder    = "~/mail"          # 所有信件所在目录
set mbox      = "~/mail/inbox"    # 收件箱文件
set record    = "~/mail/sent"     # 发件箱文件
set spoolfile = "~/mail/inbox"    # 启动mutt后默认显示的信箱文件
 
set sendmail  = "/usr/bin/msmtp"  # 发信程序msmtp的位置,如果不确定可以
                                  #    通过$ which msmtp获得

为什么没有指定收信工具呢?因为守护进程已经指使getmail定时收信,而getmail每收到一封信,就交由procmail,从而将新信投递到inbox中。

此时mutt已经能够工作,但收到的许多中文信件会显示乱码。所以必须在.muttrc中再加入以下内容:

set charset      = "utf-8"           # 终端支持的编码,Linux下一般是utf-8
 
set send_charset = "utf-8"           # 发信编码
 
charset-hook ^us-ascii$ gb2312       # 用gb2312编码显示未设置编码的信件
charset-hook ^big5$ big5             # 用big5编码显示繁体信件
charset-hook !utf-8 gb2312           # 用gb2312编码显示非utf-8编码的信件
set assumed_charset    = "gb2312"    # 用gb2312编码显示未经MIME编码的信件
set rfc2047_parameters = yes         # 用gb2312编码显示中文附件名

7、信件管理工具mutt个性化配置


参考我的.muttrc配置文件

#编码
set charset="utf-8"
set send_charset = "utf-8"           # 发信编码
charset-hook ^us-ascii$ gb2312       # 用gb2312编码显示未设置编码的信件
charset-hook ^big5$ big5             # 用big5编码显示繁体信件
charset-hook !utf-8 gb2312           # 用gb2312编码显示非utf-8编码的信件
set assumed_charset    = "gb2312"    # 用gb2312编码显示未经MIME编码的信件
set rfc2047_parameters = yes         # 用gb2312编码显示中文附件名

#编辑器
set editor="/usr/bin/vim"

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

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

#这是一个格式字符串,用来控制你的index的列表显示。它的缺省定义是
set index_format="%4C %Z %{%b %d} %-15.15L (%4l) %s"
#指定你有那些信箱文件。当你按 "c" 切换信箱时,再按 Tab 键,这些信箱就可供你选择
mailboxes Mailbox sent-mail 

# Quit without question
set quit=ask-yes

# Ask for a key after command
set wait_key=yes

set folder    = "~/.Mail"          # 所有信件所在目录
set mbox      = "~/.Mail/inbox"    # 收件箱文件
set record    = "~/.Mail/sent"     # 发件箱文件
set spoolfile = "~/.Mail/inbox"    # 启动mutt后默认显示的信箱文件
 
set sendmail  = "/usr/bin/msmtp"  # 发信程序msmtp的位置,如果不确定可以

# 回信时是否包含原文
set include

# 回信引文前的符号
set indent_str="> "

# To recognize reply messages
set reply_regexp="^(re([\[0-9\]+])*|aw|回复|答复)[::][ \t]*"

# Traditional Fwd: subject
set forward_format="Fwd: %s"

set pager_stop=yes
set edit_headers=no
set pager_index_lines=5

# 当你按"r"回信时,不提示你输入回信地址和主题,直接进入编辑模式
set fast_reply
#no reply to myself
unset metoo
unset reply_self
set reply_regexp="^(re([\[0-9\]+])*|aw|回复)(:[ \t]|:)"

# 判断邮件列表
subscribe gdg-hangzhou@googlegroups.com
subscribe hzlug@googlegroups.com

#你发出的邮件保存到那个信箱文件?比如可以像我这样每个月发出的信件放在不同的文件里。
set record="~/Mail/=sent-mail-`date +%Y-%m`"

#把mutt发送的from域作为sendmail发送邮件的sender(否则会用user@localdomian)
set envelope_from=yes

# 排序方式
#set sort=threads
#set sort_aux=reverse-last-date
#set ascii_chars=yes

#信件打分
score "~N" +2           # 新信+2
score "~O" +1           # 没看过的信+1
score "~f newnuy" +5    # newnuy的信+5
score "~s Linux" +3     # 主题包含Linux的信+3
score "~D" -3           # 标记删除的信-3
 
set sort = score        # 启用分数排序

#地址簿
source ~/.mutt/mutt.alias
set alias_file=~/.mutt/mutt.alias


color index yellow default ~p                 # To me
color index blue default ~P                # From me 
color index brightyellow default ~N          # New
color index brightgreen default "~N ~p"     # New to me
color index brightcyan default ~T               # Tagged
color index cyan default ~D              # Deleted
color index black cyan ~F               # flaged

参考

  1. 浅述mutt客户端

=-=-=-=-=
Powered by Blogilo

转载于:https://www.cnblogs.com/waikeung/p/3470482.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值