使用 Mutt 增强您的电子邮件功能
电子邮件——互联网最初的乐趣和弊端之一。它拉近了我们的距离,但也迫使我们从杂乱、干扰和江湖骗子中筛选信息。解析和组织数据是一项棘手的任务。正如大多数棘手且耗时的工作一样,人们会爱上自己喜欢的工具。据推测,您有一个您珍爱的电子邮件阅读器。尽管如此,我建议您暂时“背叛” Thunderbird、Evolution 或 KMail 一天,体验一下 Mutt 这款不被看好的邮件客户端的强大功能。
Mutt 是一款功能丰富、轻量级、基于文本的电子邮件客户端。是的,它是基于文本的。不要被 Mutt 简单的外观所迷惑。基于文本的显示是一个特性,它提供了一个可自定义、简洁的视口。Mutt 电子邮件客户端可以很好地与远程 IMAP、POP3 和 SMTP 服务器配合使用。也支持 SSL 连接。无论 Mutt 没有提供哪些功能,都可以利用其他工具(例如地址簿、Web 浏览器、文档查看器等)来增强 Mutt 的内在能力。那么,当大多数邮件客户端都能做同样的事情时,为什么还要大惊小怪呢?Mutt 更快、更可定制且资源占用更少。
需要每天快速浏览数百封电子邮件吗?发现您当前的邮件客户端占用了太多屏幕空间吗?也许您的邮件客户端消耗了太多内存?您是否想要更好的电子邮件线程处理,以便处理您所属的所有邮件列表?您是系统管理员,经常需要一种快速测试电子邮件服务器的方法吗?厌倦了使用笔记本电脑的触摸板来阅读和发送电子邮件吗?想使用 Vim 或 Emacs 来撰写电子邮件吗?如果以上任何一项适用于您,Mutt 将会吸引您。
Mutt 的第一个明显的优势是其内存占用小。下面,我展示了我的系统上 KMail、Thunderbird、Evolution 和 Mutt 的内存使用情况
VIRT RES SHR %MEM COMMAND 156m 37m 19m 3.7 thunderbird-bin 161m 33m 19m 3.3 evolution 96352 23m 17m 2.3 kmail 14548 6092 3180 0.6 mutt
Mutt 仅使用大多数流行的电子邮件客户端所用内存的一小部分。因此,如果您使用的是较旧的硬件,Mutt 可能会通过释放一些内存来加快您的计算机速度。无论如何,Mutt 都不会占用您系统的资源。
Mutt 的另一个优势是基于文本的显示。首先,界面是高度可定制的。所有字段和颜色都可以更改以满足您的需求。将新邮件消息着色为绿色,将已删除的消息着色为红色。生成漂亮的线程消息视图。一切皆有可能。
Mutt 拥有这一切,而且是通过 shell,更不用说。您不再需要打开 IMAP 访问权限才能访问您的私有服务器。相反,ssh进入服务器并运行 Mutt。
在我介绍 Mutt 的其他功能之前,让我们先配置 Mutt,以便您可以进行试驾。在本文中,我重点介绍如何配置 Mutt 以与 IMAP 服务器一起使用。在我的示例中,我使用 Gmail 的 IMAP 服务。由于 Gmail 是一项公开、免费的服务,因此每个人都应该能够轻松上手。如果您有另一个想要使用的 IMAP 服务器,请更改我的示例中的设置以匹配您的 IMAP 服务器的配置。如果您使用的是 Gmail,请确保在 Gmail 的“设置”→“转发和 POP/IMAP”中启用您帐户的 IMAP 访问权限。
首先,安装 Mutt。我建议使用 Mutt 1.5.17 或更高版本。我在此处讨论的功能,例如 IMAP 标头缓存,在较旧的 Mutt 版本中不可用。您的发行版很可能具有最新版本。因此,请使用 yum、apt-get 或从 www.mutt.org 编译源代码。如果您的自定义二进制文件出现关于未知功能的警告,请检查您是否在编译的配置步骤中启用了所有必要的选项。
在首次运行 Mutt 之前,让我们配置您的 IMAP 连接。创建并编辑一个 ~/.muttrc 文件,并添加以下配置选项(确保填写您的帐户详细信息)
set from="YOUR NAME <USER@gmail.com>" set imap_user=USER@gmail.com set imap_pass=PASS
这会设置您的发件人行和 IMAP 用户登录名。如果您不希望您的密码以明文形式保存在文件系统中,请不要在您的 ~/.muttrc 中设置 imap_pass。如果未设置 imap_pass,则在您执行 Mutt 时,系统会提示您输入密码。
接下来,设置您的文件夹,即您的邮箱的默认位置。您可能还需要将 spoolfile 设置为您的 Gmail 收件箱,以便 Mutt 自动打开它
set folder=imaps://imap.gmail.com set spoolfile=imaps://imap.gmail.com/INBOX
然后,配置 Mutt 将已发送的邮件或您的记录保存到名为“Sent”的 Gmail 文件夹中。您可能还需要配置一个“草稿”或“延期”文件夹
set record=imaps://imap.gmail.com/Sent set postponed=imaps://imap.gmail.com/Drafts
确保启用标头缓存,否则 Mutt 每次执行都必须下载您的收件箱的所有标头
set header_cache=~/.mutt_cache
最后,您需要将 smtp.gmail.com 配置为您的 SMTP 服务器。默认情况下,Mutt 使用以下命令传递电子邮件/usr/sbin/sendmail -oem -oi。在您的情况下,请使用 Gmail 的 SMTP 服务器,以便电子邮件信封看起来是合法的。否则,您的邮件可能会因并非来自 gmail.com 而被标记为垃圾邮件
set smtp_url="smtps://USER\@gmail.com:PASS@smtp.gmail.com/"
再次,省略 :PASS 以提高安全性,并为每条发送的消息启用密码提示。
虽然这些都是基本知识,但 .muttrc 文件有可能包含大量选项。列表 1 是我的完整 .muttrc 文件,其中包含一些额外的调整。许多选项只是可选的。muttrc(5) 手册页解释了所有这些选项,因此请务必查看一下。
列表 1. 示例 .muttrc 文件
# Local folder set mbox_type=Maildir set folder=~/Mail # IMAP Settings set realname="Victor Gregorio" set from="Victor Gregorio <contactvictorg@gmail.com>" set imap_user=contactvictorg@gmail.com set folder=imaps://imap.gmail.com set spoolfile=imaps://imap.gmail.com/INBOX set record=imaps://imap.gmail.com/Sent set postponed=imaps://imap.gmail.com/Drafts mailboxes =INBOX # check for new email here set header_cache=~/.mutt_cache # Reading Mail set timeout=10 set mail_check=5 set sort=threads set sort_aux=date set move=no set mark_old=no ignore * # ignore all headers except for ... unignore Date: From: To: CC: Bcc: Subject: hdr_order Subject: Date: From: To: CC: Bcc: set index_format="%{%b %d} %-15.15L [%Z] %s" # custom index format # Composing Mail set editor="vim" set markers=no set signature=~/.sig set include=yes set forward_format="Fwd: %s" # Sending Mail set copy=yes set smtp_url="smtps://contactvictorg\@gmail.com@smtp.gmail.com/" # Pretty Colors color status white blue color index green default ~N # new color index red default ~D # deleted color index brightmagenta default ~T # tagged color index brightyellow default ~F # flagged color header green default "^Subject:" color header yellow default "^Date:" color header yellow default "^To:" color header yellow default "^Cc:" color header yellow default "^Bcc:" color header yellow default "^From:" color header red default "^X-.*:" # View Special Formats set mailcap_path=~/.mailcap auto_view text/html # auto-render html inline mutt
最后,我还配置了我的 ~/.mailcap 文件,以便 Mutt 知道使用哪些应用程序打开 HTML 电子邮件、PDF 和图像。我使用 w3m 在 Mutt 中内联自动查看 HTML。您也可以使用 ELinks 或 Lynx
text/html; echo && /usr/bin/w3m -dump %s; nametemplate=%s.html; ↪copiousoutput application/pdf; /usr/bin/evince %s image/jpeg; /usr/bin/display %s image/gif; /usr/bin/display %s image/png; /usr/bin/display %s
您已准备就绪!保存所有配置文件并运行mutt。您将必须接受来自 imap.gmail.com 的安全证书。如果您选择保存证书,它将保存在 ~/.mutt_certificates 中。
键盘是您的朋友。Mutt 非常适合笔记本电脑用户,因为繁重的工作是通过键入而不是点击来完成的。无需将手从键盘上移开,即可掌握 Mutt 的所有强大功能。
按 Enter 键打开电子邮件消息,按 I 键返回邮箱的索引。使用箭头键移动,按 Q 键退出几乎任何屏幕。
在索引中,使用 Tab 键跳到下一个新消息,D 键删除,F 键标记等等。显示屏顶部的栏将显示一些常用的击键。输入 ? 以查看可用命令的完整列表。
Mutt 中的颜色设置在索引视图中特别有用。如果您使用我的示例 .muttrc 中的颜色设置,则所有新消息都以绿色显示,标记的消息以黄色显示,删除的消息以红色显示,标记的消息以紫色显示(稍后会详细介绍标记)。
现在您已经可以访问您的 IMAP 帐户并可以发送电子邮件,以下是一些用于管理您的收件箱的快捷方式。这些快捷方式是 Mutt 的诱人之处。您可以快速浏览您的电子邮件,而无需触摸鼠标。
首先,您可以通过按 O 键按日期、线程和许多其他字段对您的电子邮件进行排序和排序。使用以下命令在 .muttrc 中设置默认排序方法set sort。我更喜欢按线程排序(set sort=threads),然后按日期排序(set sort_aux=date).
按线程对收件箱进行排序会打开一组新的命令,这些命令适用于整个线程。例如,如果您想删除整个线程,请在突出显示线程中的任何电子邮件时使用 Ctrl-D。只需按一下键盘即可删除大量的电子邮件线程。
为了获得更简洁的视图,请使用 limit 命令 L 将您的视图限制为消息的子集。您可以限制为未读、已读、标记等。所有标准的排序和标记命令在有限视图中都有效。如果您想再次查看您的整个收件箱,请限制为all.
想在您的收件箱中搜索消息吗?如果您熟悉 Vim,那么在 Mutt 中搜索电子邮件应该是第二本能。只需像在 Vim 中一样按 / 键,然后告诉 Mutt 您的搜索字符串。搜索采用正则表达式的形式,因此可以随意使用 regex!
说到 regex,您也可以使用 regex 进行删除、标记或标记。例如,要删除与模式匹配的所有消息,请按 D 键。填写您的正则表达式匹配模式并按 Enter 键。只需按几下键,您就完成了。使用 F 键标记,使用 T 键通过正则表达式匹配标记消息。
那么,所有这些标记是关于什么的呢?Mutt 允许您标记消息,然后您可以一举对它们进行操作。将其视为批处理队列。按 T 键将消息标记到队列中,或使用 T 键使用正则表达式匹配进行标记。然后,使用 ; 为通常可用于单个消息的任何命令添加前缀,并且所有标记的消息都将以批处理方式受到影响。
标记消息后,按 ;-D 删除所有标记的消息,按 ;-F 标记等等。同样,按 ? 键显示所有可用的击键。想象一下,您现在可以多么快速地删除大量未读的邮件列表消息。
现在,让我们使用 Gmail SMTP 服务器发送一条测试消息。按 M 键撰写电子邮件消息。填写“To:”行,然后填写“Subject:”行。您的电子邮件编辑器会自动打开。编写您的消息,保存并退出。您将看到一个页面,允许您编辑 Cc、Bcc 和其他字段。最后,按 Y 键发送消息。
需要地址簿吗?没问题。默认情况下,Mutt 支持别名或联系人文件。要开始使用别名,请创建一个空的 ~/.mutt-alias 文件,然后在您的 ~/.muttrc 中对其进行源化和引用。在使用 Mutt 时按 A 键保存联系人。您可以从“To”、“Cc”或“Bcc”条目字段中使用 Tab 键访问联系人
source ~/.mutt-alias set alias_file=~/.mutt-alias
或者,您可以使用 abook。根据设计,abook 地址簿程序与 Mutt 电子邮件客户端集成。使用您的标准发行版工具安装 abook,或编译 abook.sourceforge.net 上提供的源代码。
为 A 设置一个宏来调用 abook。宏是 Mutt 中的强大工具。它们可以将数据管道传输到 shell 脚本或可执行文件,并允许自定义任何击键
set query_command= "abook --mutt-query '%s'" macro index,pager A "<pipe-message>abook --add-email-quiet<return>"
有了新的宏,按 A 键将联系人添加到您的地址簿中。您可以使用 Q 查询 abook 联系人。
像大多数 Linux 强大的工具一样,Mutt 是专门化的。它可以很好地管理电子邮件,并让其他程序担心其余的大部分内容。编辑器和拼写检查器位于 Mutt 之外。
我更喜欢使用 Vim。但是,您想使用 GNU Emacs、GNU nano 或其他编辑器吗?只需将其设置为 ~/.muttrc 中的编辑器即可。默认情况下,如果未定义编辑器,Mutt 将使用 $EDITOR 环境变量。
对于拼写检查,我喜欢 Vim 的即时拼写检查功能。在您的 ~/.vimrc 中使用这些设置以红色下划线显示拼写错误的单词
set spell set spell spelllang=en_us set spellfile=~/.vim/spellfile.add highlight clear SpellBad highlight SpellBad term=standout ctermfg=1 highlight SpellBad term=underline cterm=underline highlight clear SpellCap highlight SpellCap term=underline cterm=underline highlight clear SpellRare highlight SpellRare term=underline cterm=underline highlight clear SpellLocal highlight SpellLocal term=underline cterm=underline
启用 Vim 的拼写检查后,当您的光标位于拼写错误的单词上时,您可以使用以下选项
zg将单词添加到单词列表。
zw撤销。
zug从单词列表中删除单词。
z=获取可能的拼写列表。
Mutt 有太多有趣的功能,无法在一篇文章的范围内概述。但是,我想与您分享的最后一个功能是 bounce 命令。Bounce 允许您将消息重新发送给新的收件人。消息从原始发件人而不是 bounce 发送到新的收件人。这有什么用呢?好吧,如果大量电子邮件被发送到您的工作地址而不是您的个人电子邮件地址怎么办?不要只是批量转发消息——而是 bounce 它们。首先,按 T 键并提供与您的选择匹配的 regex 搜索字符串,标记所有您想要 bounce 的消息。例如,使用发件人的姓名。然后,按 B 键对队列执行操作。填写您的个人电子邮件地址,然后按 Enter 键执行 bounce。
键盘命令看起来很晦涩吗?起初可能是这样,但它们很快就会变成电子邮件强力和弦的响亮击键。努力会得到回报的。Mutt 仍在积极开发中,您可以期待这款不被看好的软件在未来一段时间内继续存在。
Mutt 1.6 版本即将推出一些有趣的功能。Mutt 开发人员兼 SourceForge 项目管理员 Brendan Cully 提供了 Mutt 1.6 功能列表
原生 SMTP 支持。
IMAP/POP 标头和正文缓存,以及 maildir/MH 标头缓存。
显著的 IMAP 性能增强(管道命令和 IDLE 支持)。
IMAP 服务器端搜索。
Flowed text 支持。
更灵活的字符集支持。
用户定义的变量(以 $my_ 开头)。
大文件支持。
索引中的附件计数。
垃圾邮件标记。
S/MIME 支持。
无论您使用哪个版本,请查看 www.mutt.org 以获取发布详细信息。如果您想要了解更多信息,muttrc(5) 手册页可以引导您了解所有 .muttrc 参数,并且 mutt.org 站点有更多示例。如果您感到懒惰,请使用 muttrcbuilder.org 构建 .muttrc 文件。
我希望您在 Mutt 中找到了一些价值,并且它改善了您的电子邮件体验。退一步说,Mutt 可以成为您系统管理员工具箱中的另一个强大工具。
Victor Gregorio 居住在加利福尼亚州旧金山,在 Penguin Computing 担任高级系统管理员和 QA 工程师。人们经常可以发现他站在相机后面或敲击键盘。