在 Neo/Mutt 和 iSync 中混合本地和遠端 IMAP 文件夾?
我目前已經為幾個不同的帳戶配置了 Neo/Mutt 以及 iSync。一切都同步了,我已經大致按照我想要的方式配置了 Mutt 客戶端。
<save-message>
但是,在使用將消息移動到存檔文件夾時遇到問題。根據賬戶類型不同:
- 在我的兩個 Gmail 帳戶中,如果我閱讀了一封郵件,然後
<save-message>
轉到我的本地“所有郵件”文件夾,則該郵件將按預期移動。然後,當我執行時mbsync
,我在 Mutt 中的 All Mail 文件夾會顯示同一郵件的兩個副本,其中一個被標記為刪除。它們也都被標記為未讀,即使我在移動它之前已經閱讀了該消息。我的解決方法是從我的收件箱中刪除郵件。在接下來的同步中,已刪除的郵件出現在所有郵件中,沒有重複(但仍然令人討厭地標記為未讀)。- 在我的 ProtonMail 帳戶中,我可以閱讀郵件並將其保存到我的存檔文件夾中。在下一次同步時,我在存檔文件夾中有一條重複的消息,一條標記為未讀,另一條標記為已讀,兩者均未標記為刪除。與 Gmail 帳戶不同,從我的收件箱中刪除郵件不會導致該郵件顯示在我的存檔中,因此半措施在這裡不起作用。
所以也許這是兩個獨立的問題,但它們看起來確實是相關的。我已經閱讀了多篇部落格文章並蒐索了許多 dotfiles。我已經看到了重複消息問題的“解決方案”,例如文件夾掛鉤,當您進入文件夾時會刪除重複消息。這些不是真正的解決方案,IMO。
所以我想知道是否可以告訴 Mutt 將消息保存到遠端文件夾,以及這是否會產生更好的結果。同時,我還沒有為 IMAP 配置 Mutt,並且希望 Mutt 不進行 IMAP 同步,將這項工作留給
mbsync
. 我仍然想主要使用 Mutt 來閱讀本地儲存的郵件,但我也想教它將郵件移動到遠端 IMAP 文件夾。這可能嗎?還是有一個我忽略的更明顯的方法?與此同時,我只是手動將存檔消息標記為已讀,並刪除重複項。如果我能解決這個問題,到目前為止,Mutt 將是我最喜歡的電子郵件閱讀器。
我想出瞭如何使用 ProtonMail 帳戶來解決這個問題。事實證明,可以
save-message
直接訪問 IMAP 目錄。然而,當mbsync
與 ProtonMail Bridge 的 IMAP 介面很好時,NeoMutt 會卡在“登錄…”在嘗試調試整體問題時,我查看了
mbsync
’s log. 弄清楚為什麼郵件被重複並沒有太大幫助,但我確實注意到它使用的是LOGIN
IMAP 身份驗證方法。所以我將這一行添加到我的 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
我缺少的配置來解決這個問題,但現在我可能只是改變我的宏來做這樣的事情:
- 同步 NeoMutt(
$
預設),然後執行mbsync
,確保所有消息的未讀/讀狀態已與 IMAP 同步。- 然後實際執行
save-message
。- 重複步驟 1。
這會有點慢,但如果我先標記一堆消息,那麼希望它不會太糟糕。現在足夠好™。
關於Gmail,我決定將我所有尚未移動到ProtonMail 的Gmail 轉發並讓該帳戶失效。我仍然有一個 Gmail 工作帳戶,但它幾乎沒有得到太多使用。類似的方法可能在那裡很有效,如果我感到很惱火,也許我會試一試,並用它是否有效來更新這個答案。