如何对收到的电子邮件进行分类

use*_*035 5 email mutt imap

我有一个 Gmail 帐户,mutt 配置为通过 IMAP 获取邮件。昨天我订阅了一个邮件列表,现在我的个人电子邮件与列表中的邮件混在一起。

列表电子邮件发送给我和 lilypond-user@gnu.org。我如何告诉 mutt 将所有此类电子邮件移动到一个单独的文件中,这样它们就不会与我的电子邮件混合在一起。但是我仍然可以阅读它们,打开那个文件?

Kus*_*nda 6

有多种选择,具体取决于您想要实现的目标以及您想要实现的目标。

  • 让 IMAP 服务器为您进行过滤。

    这有时是基于 Web 邮件的解决方案中的一个选项,它允许您根据例如每封邮件的To:Cc:标题中列出的地址来过滤邮件。我不熟悉 Gmail 在这方面的产品。

  • 手动标记邮件mutt并将它们复制到 IMAP 服务器上的新文件夹或本地邮箱。

    标记要移动的邮件,T然后是搜索模式~C lilypond-user@gnu.org(这会标记所有直接发送到或抄送到地址的邮件lilypond-user@gnu.org)。然后按;,接着s到“保存”(移动)命令适用于所有被标记的邮件。然后输入要将邮件保存到的 IMAP 文件夹路径。

    IMAP 文件夹路径应指定为

    imap[s]:[user[:pw]@]imapserver.example.com[:port]/path
    
    Run Code Online (Sandbox Code Playgroud)

    只是说我有权访问的 IMAP 服务器不喜欢这样。没有错误,但消息显然没有被复制。首先在不太重要的消息上进行测试!您显然可以将消息保存在本地!

    你也可以定义一个宏mutt来做到这一点。

  • 从 IMAP 服务器下载消息并在本地过滤和读取它们。

我倾向于使用fetchmail. 这让我有机会在本地机器上进行自己的垃圾邮件过滤和邮件分类。

对于这两个任务,我使用procmail1,这是一个相当先进的邮件处理程序。

fetchmail我使用的基本配置是

poll myimapserver.example.com
    protocol imap
    user "myimapusername" password "myimappassword" is "mylocalusername"
    mda "/usr/local/bin/procmail -m $HOME/.procmailrc"
    ssl sslcertfile /etc/ssl/cert.pem sslcertck
    idle
Run Code Online (Sandbox Code Playgroud)

这将在新消息到达时从 IMAP 服务器中提取它们,并将它们传送到procmail进行处理。路径等在您的系统上会有所不同。

然后我procmail使用配置 ( $HOME/.procmailrc) 进行过滤,例如

MAILDIR="$HOME/Mail"
DEFAULT="inbox/"

:0
* ^TO_announce@openbsd.org
openbsd-announce/

:0
* ^TO_misc@openbsd.org
openbsd-misc/
Run Code Online (Sandbox Code Playgroud)

... 对于我所在的两个邮件列表(它们将存储在 下的子目录中$HOME/Mail)。不匹配任何模式的邮件将被存储在$HOME/Mail/inbox被指定为MAILDIRDEFAULT。我正在使用 Maildir 邮箱。删除路径上的尾部斜杠以获取 mbox 邮箱。


1 注意procmail是退休。我没有意识到这一点,因为我从 90 年代开始就一直在使用,而没有考虑任何新兴的替代方案。似乎,在互联网上进行了一些温和的浏览之后,这maildrop被认为是 的一个很好的替代品procmail,我可能会考虑将我的过滤转移到maildrop自己身上。

  • 主要的竞争者似乎是 [fdm](https://github.com/nicm/fdm) 和 [maildrop](http://www.courier-mta.org/maildrop/)(我个人更喜欢 `fdm`) . 不知道他们是否建立良好。人们通常面临着放弃邮件而选择其他可能更容易跟踪的系统的压力。因此 MDA 的格局已经严重扭曲。 (2认同)