Sup
Sup 是一款为管理大量邮件的人员开发的功能强大的新型邮件客户端。它可以被视为 Mutt 和 Gmail 的结合体,具有极快的操作和搜索速度、标签、自动联系人管理、同时支持各种帐户等等功能。
安装
自动
手动
Sup 也可以通过 RubyGems 和系统 Ruby 一起安装,如下所示
安装依赖项:base-devel、ruby、ruby-rake 和 ruby-rdoc。
首先安装 xapian-ruby
gem,然后安装 sup
gem
$ gem install xapian-ruby $ gem install sup
启动 sup
$ sup
配置
Sup 自带一个易于使用的配置工具,名为 sup-config
。要使用它,请在控制台中启动它并按照以下步骤操作
- 输入您的全名。
- 输入您的主要电子邮件地址,以及任何备用电子邮件地址。
- 如果您有签名文件,请输入其路径。
- 输入应用于撰写新邮件的编辑器,以及任何应传递给它的参数。
- 为您的邮件添加来源,包括
- mbox 文件
- maildir 目录
0.12 版本中移除了对远程源(POP3、IMAP、IMAPS 和 mbox+ssh)的支持。
Sup 在很大程度上只是一个 MUA(邮件用户代理),无法自行处理邮件下载。您可以使用 offlineimap、fetchmail 和 rsync 等工具将电子邮件传输到本地系统 mbox 或 maildir 文件夹。
sup wiki 上有一个示例,用于配置使用 offlineimap 的 gmail+imap 源。Mutt#POP3 子章节展示了一些其他的邮件传输方法。
添加电子邮件源后,sup-config
将执行 sup-sync
命令以将邮件导入到您的邮箱中。
邮件过滤
sup 的工作方式是一次在一个视图中显示所有相关的邮件,而没有文件夹。为了精确控制查看和不查看的内容,邮件需要进行过滤。
有很多种邮件过滤的方法。根据您访问邮件的方式,您可能希望在服务器端(例如使用 imapfilterAUR)或客户端进行过滤。
要决定选择哪种方式,请考虑以下两种情况
- 您始终在同一台计算机上使用 sup 检查邮件 -> 选择本地过滤
- 当使用其他计算机时,您希望能够阅读您的(整洁的)电子邮件(通过网络邮件) -> 在服务器上过滤
本地过滤
sup 钩子 before-add-message.rb 使您能够利用一些 ruby 知识轻松地过滤您的邮件,并将标签、存档、标记为已读等应用于邮件。
服务器端过滤
Sup 只是从视图中隐藏,因此为了保持服务器端清洁,您必须求助于其他工具。imapfilterAUR 是一款流行的邮件过滤器。从 example.config 开始进行设置。
sup 源
Sup 使用文件 ~/.sup/sources.yaml
来同步您的邮件及其索引,并支持从源向所有邮件添加一个或多个标签。
~/.sup/sources.yaml
--- - !supmua.org,2006-10-01/Redwood/Maildir uri: maildir:/home/User/Mail/Inbox usual: true archived: false id: 1 labels: [] - !supmua.org,2006-10-01/Redwood/Maildir uri: maildir:/home/User/Mail/Pulse usual: true archived: true id: 2 labels: - pulse - cruft
如示例所示,Pulse 文件夹有 2 个标签:pulse 和 cruft。来自 Pulse 的所有邮件在导入时都会被存档并从视图中隐藏,避免了屏幕混乱。有关标签和 id 的详细信息,请参阅 sup wiki。
sup 钩子
sup 有两种类型的钩子:交互式和非交互式,使用户可以轻松自定义程序。有关详细信息,请参阅 sup wiki 上关于钩子的内容。
before-poll 钩子
为了自动激活过滤和同步,我们使用 before-poll 设置一个非交互式启动钩子
File: ~/.sup/hooks/before-poll.rb Executes immediately before a poll for new messages commences. No variables.
这是一个简单的示例(不带过滤)
say "Running offlineimap..." system "offlineimap", "-o", "-u", "quiet"
这是一个简单的示例(带过滤)
say "Running imapfilter..." system "imapfilter", "-c", "path-to-config.lua" say "Running offlineimap..." system "offlineimap", "-o", "-u", "quiet"
现在运行 sup 将在 sup 启动时或您手动轮询邮件时开始过滤,然后同步邮件。有关详细信息,请参阅 sup wiki 上关于 before-poll 的内容
查看 HTML 附件
创建 ~/.sup/hooks/mime-decode.rb
,内容如下
require 'shellwords' unless sibling_types.member? "text/plain" case content_type when "text/html" `/usr/bin/w3m -dump -T #{content_type} #{Shellwords.escape filename}` end end
或
require 'shellwords' unless sibling_types.member? "text/plain" case content_type when "text/html" `/usr/bin/links -dump #{Shellwords.escape filename}` end end
注意执行程序的差异。有关详细信息,请参阅 sup wiki
查看非文本附件
创建 以下钩子
~/.sup/hooks/mime-view.rb
# filename has already been shell-escaped pid = Process.spawn("xdg-open", filename, :out => '/dev/null', :err => '/dev/null') Process.detach pid true
有关详细信息,请参阅 sup wiki
用法
执行 sup
命令以启动 Sup 邮件客户端。该程序应显示由 sup-config
导入的消息。
新用户要记住的最重要的键是 ?
键。这将随时显示键盘命令的完整列表,提醒新用户如何浏览程序。
要在线程之间导航,请使用箭头键或 j
和 k
键(Shift+j
和 Shift+k
的工作方式类似于 Page Up 和 Page Down 键)。要在带有新消息的线程之间跳转,请按 Tab 键。Sup 默认情况下不加载所有线程;按 Shift+m
加载更多(将自动加载更多消息以填充窗口)。
要查看线程,请选择它并按 Enter
键。要在查看线程时展开或折叠单个消息,请选择该消息并按 Enter
键。按 Shift+n
仅展开新消息(默认视图)或 Shift+e
切换所有消息的状态。按 o
显示或隐藏消息的隐藏部分(例如签名)。
要在线程中的消息之间导航,请按 n
和 p
键。要显示消息的标头,请按 h
键。
要循环浏览缓冲区,请按 b
键,或按 ;
键查看所有打开缓冲区的列表。要关闭缓冲区,请按 x
键。
要存档线程,请按 a
键。这将从收件箱中隐藏它,直到有人回复它,届时它将重新出现。要杀死线程,请按 &
键。这相当于 Gmail 的“静音”功能,即使有人回复消息也会隐藏消息。它永远不会在收件箱中重新出现,但仍会出现在搜索结果中。
要星标线程,请按 *
键。要将线程标记为垃圾邮件,请按 Shift+s
键。Sup 没有内置的垃圾邮件过滤器;为此,请考虑使用 spamassassin 等程序。
要标记线程,请按 t
键。要标记线程中的消息,请按 l
键。要搜索标签,请按 Shift+l
键。Enter
要搜索的标签或按 Enter
键以调出标签列表。要执行全文搜索,请按 \
键。
要查看联系人列表,请按 Shift+c
键。要向列表中的某人发送电子邮件,请选择他们的姓名并按 Enter
键。
备份与恢复
备份电子邮件非常重要。为确保您不会丢失任何内容,请首先备份源,例如 mbox 文件和 maildir 目录,然后运行
$ sup-dump > filename
这将备份文本文件中的所有消息状态。要从此文本文件恢复您的消息状态,只需运行
$ sup-sync [<source>+] --restored --restore filename
请记住,以上命令仅备份和恢复消息状态。消息本身需要单独备份。