在 Neo/Mutt 和 iSync 中混合本地和远程 IMAP 文件夹?

在 Neo/Mutt 和 iSync 中混合本地和远程 IMAP 文件夹?

我目前已经为几个不同的帐户配置了 Neo/Mutt 和 iSync。一切都同步,我已经按照我想要的方式大致配置了 Mutt 客户端。但是,在使用<save-message>将邮件移动到存档文件夹时遇到问题。根据帐户类型的不同而有所不同:

  • 在我的两个 Gmail 帐户中,如果我阅读了一封邮件,然后将其<save-message>移至本地“所有邮件”文件夹,该邮件就会按预期移动。然后,当我运行 时mbsync,Mutt 中的“所有邮件”文件夹会显示同一邮件的两份副本,其中一份标记为删除。它们也都被标记为未读,即使我在移动它之前已经阅读了该消息。我的解决方法是从收件箱中删除邮件。在接下来的同步中,已删除的邮件将显示在“所有邮件”中,且不会出现重复邮件(但仍然令人烦恼地标记为未读)。

  • 在我的 ProtonMail 帐户中,我可以阅读消息并将其保存到我的存档文件夹中。下次同步时,我的存档文件夹中有一条重复的消息,其中一条标记为未读,另一条标记为已读,并且都没有标记为删除。与 Gmail 帐户不同,从收件箱中删除邮件不会导致该邮件出现在我的存档中,因此半措施在这里不起作用。

所以也许这是两个独立的问题,但它们看起来确实相关。我阅读了多篇博客文章并搜索了许多点文件。我已经看到了重复消息问题的“解决方案”,例如文件夹挂钩,当您进入文件夹时它会删除重复项。在我看来,这些都不是真正的解决方案。

所以我想知道是否可以告诉 Mutt 将消息保存到偏僻的文件夹,以及这是否会产生更好的结果。同时,我还没有为 IMAP 配置 Mutt,并且希望 Mutt 不进行 IMAP 同步,从而将该工作留给mbsync.我仍然想主要使用 Mutt 来读取本地存储的邮件,但我也想教它将邮件移动到远程 IMAP 文件夹。

这可能吗?或者是否有我忽略的更明显的方法?与此同时,我只是手动将存档消息标记为已读,并删除重复项。如果我能解决这个问题,Mutt 将是迄今为止我最喜欢的电子邮件阅读器。

答案1

我想出了如何使用 ProtonMail 帐户来实现此功能。事实证明,可以save-message直接访问 IMAP 目录。然而,虽然mbsync与 ProtonMail Bridge 的 IMAP 接口正常,但 NeoMutt 会卡在“正在登录...”上。

在尝试调试整个问题时,我查看了mbsync的日志。弄清楚邮件重复的原因并没有多大帮助,但我确实注意到它使用了LOGINIMAP 身份验证方法。所以我将这一行添加到我的 NeoMutt 配置中:

set imap_authenticators = "login"

与以下宏一起,我可以将当​​前邮件或标记的邮件直接移动到 IMAP 存档邮箱,并且不再收到重复邮件:

macro index,pager A ":set confirmappend=no\n<tag-prefix><save-message>imap://127.0.0.1:1143/Archive\n:set confirmappend=yes\n"

仍然存在一个小问题,如果在同一运行中将邮件标记为已读并移至存档mbsync,则该邮件仍将显示为未读。我确信mbsync我肯定缺少一些配置来解决这个问题,但现在我可能只会更改我的宏来执行以下操作:

  1. 同步 NeoMutt ($默认情况下),然后运行mbsync​​,确保所有消息的未/读状态已与 IMAP 同步。
  2. 然后实际运行save-message
  3. 重复步骤 1。

这会有点慢,但如果我先标记一堆消息,那么希望它不会太糟糕。现在就足够好了™。

关于 Gmail,我决定将所有尚未转移到 ProtonMail 的 Gmail 转发,然后让该帐户消失。我仍然有一个 Gmail 工作帐户,但它的使用率几乎没有那么高了。类似的方法可能在那里很有效,如果我感到足够恼火,也许我会尝试一下并更新这个答案是否有效。

相关内容