Sup

出自 ArchWiki

Sup 是一款为管理大量邮件的人员开发的功能强大的新型邮件客户端。它可以被视为 Mutt 和 Gmail 的结合体,具有极快的操作和搜索速度、标签、自动联系人管理、同时支持各种帐户等等功能。

安装

自动

安装 supAUR

手动

Sup 也可以通过 RubyGems 和系统 Ruby 一起安装,如下所示

注意
  • 建议以您的用户身份(而不是 root 用户或使用 sudo)运行所有 gem install 命令,以进行按用户安装。请参阅 Ruby#配置
  • 如果您之前没有使用过 gem,那么您首先需要将 $(ruby -e 'puts Gem.user_dir')/bin 添加到您的 PATH 环境变量中。请参阅 RubyGems

安装依赖项:base-develrubyruby-rakeruby-rdoc

首先安装 xapian-ruby gem,然后安装 sup gem

$ gem install xapian-ruby
$ gem install sup

启动 sup

$ sup

配置

Sup 自带一个易于使用的配置工具,名为 sup-config。要使用它,请在控制台中启动它并按照以下步骤操作

  1. 输入您的全名。
  2. 输入您的主要电子邮件地址,以及任何备用电子邮件地址。
  3. 如果您有签名文件,请输入其路径。
  4. 输入应用于撰写新邮件的编辑器,以及任何应传递给它的参数。
  5. 为您的邮件添加来源,包括
    1. mbox 文件
    2. 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 开始进行设置。

提示: 一些服务器施加配额,为了保持在配额内,您可以使用 archivemailAUR 清理服务器上的旧邮件。

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 个标签:pulsecruft。来自 Pulse 的所有邮件在导入时都会被存档并从视图中隐藏,避免了屏幕混乱。有关标签和 id 的详细信息,请参阅 sup wiki

注意: source 语句需要具有唯一的 id 才能正常工作。

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

查看非文本附件

注意: 安装 xdg-utils 以使用 xdg-open

创建 以下钩子

~/.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 导入的消息。

新用户要记住的最重要的键是 ? 键。这将随时显示键盘命令的完整列表,提醒新用户如何浏览程序。

要在线程之间导航,请使用箭头键或 jk 键(Shift+jShift+k 的工作方式类似于 Page Up 和 Page Down 键)。要在带有新消息的线程之间跳转,请按 Tab 键。Sup 默认情况下不加载所有线程;按 Shift+m 加载更多(将自动加载更多消息以填充窗口)。

要查看线程,请选择它并按 Enter 键。要在查看线程时展开或折叠单个消息,请选择该消息并按 Enter 键。按 Shift+n 仅展开新消息(默认视图)或 Shift+e 切换所有消息的状态。按 o 显示或隐藏消息的隐藏部分(例如签名)。

要在线程中的消息之间导航,请按 np 键。要显示消息的标头,请按 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

请记住,以上命令仅备份和恢复消息状态。消息本身需要单独备份。

参见