Email
如何將 mutt 與本地儲存、IMAP 和即時推送新電子郵件一起使用?
我正在考慮切換到
mutt
電子郵件。不過,我有幾個要求。
- 我希望能夠離線儲存電子郵件。
- 我希望將電子郵件立即推送到我的本地電腦,而不是定期輪詢(例如使用 IMAP IDLE)。
對於離線儲存,我可以使用
imapoffline
orisync
。我知道後者更穩定。但是,要按需推送電子郵件,我為 isync 找到的唯一選項是mswatch。不幸的是,這需要在遠端電子郵件伺服器上安裝一個程序,這是不可能的。是否有允許我使用mutt
離線電子郵件儲存和即時電子郵件傳遞的解決方案?
不幸的是,另一個答案中提出的兩種可能性並不完美。
offlineimap
在最好的時候是相當多的車。例如,沒有辦法在新郵件到達後自動執行腳本。fetchmail
不雙向同步。相反,我最終使用的解決方案是imapnotify和isync的組合。我配置
imapnotify
為在觸發新郵件時執行腳本(通過 IDLE)。此腳本的執行
mbsync "${channel}:INBOX"
取決於哪個帳戶有郵件。接下來它執行notmuch new
。最後,它將未讀電子郵件的數量記錄到一個文件中,如下所示。該文件的內容顯示在我的桌面環境的面板上。mail_count_file="/home/foo/.cache/new_mail_count" new_count=$(find ~/.mail/*/Inbox/new -type f | wc -l) if [[ $new_count > 0 ]]; then echo $new_count > "$mail_count_file" else if [[ -f "$mail_count_file" ]]; then rm "$mail_count_file" fi fi
更新
imapnotify (nodejs-imapnotify) 定期斷開連接,沒有警告/錯誤,並且經常錯過新郵件。python-imapnotify也間歇性地工作。但是,根據我的經驗, goimapnotify效果很好。它很少退出,當它退出時(例如,由於網路斷開和/或掛起週期),它會迅速重新啟動自己而不會大驚小怪。