我有一个 Gmail 帐户,mutt 配置为通过 IMAP 获取邮件。昨天我订阅了一个邮件列表,现在我的个人电子邮件与列表中的邮件混在一起。
列表电子邮件发送给我和 lilypond-user@gnu.org。我如何告诉 mutt 将所有此类电子邮件移动到一个单独的文件中,这样它们就不会与我的电子邮件混合在一起。但是我仍然可以阅读它们,打开那个文件?
有多种选择,具体取决于您想要实现的目标以及您想要实现的目标。
让 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
. 这让我有机会在本地机器上进行自己的垃圾邮件过滤和邮件分类。
对于这两个任务,我使用procmail
1,这是一个相当先进的邮件处理程序。
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
被指定为MAILDIR
和DEFAULT
。我正在使用 Maildir 邮箱。删除路径上的尾部斜杠以获取 mbox 邮箱。
1 注意procmail
是退休。我没有意识到这一点,因为我从 90 年代开始就一直在使用,而没有考虑任何新兴的替代方案。似乎,在互联网上进行了一些温和的浏览之后,这maildrop
被认为是 的一个很好的替代品procmail
,我可能会考虑将我的过滤转移到maildrop
自己身上。