我正在考虑改用mutt
电子邮件。不过,我有一些要求。
- 我希望能够离线存储电子邮件。
- 我希望将电子邮件立即推送到我的本地计算机,而不是定期轮询(例如使用 IMAP IDLE)。
对于离线存储,我可以使用imapoffline
或isync
。据我了解,后者更稳定。但是,要按需推送电子邮件,我找到的 isync 的唯一选项是微软手表。不幸的是,这需要在远程电子邮件服务器上安装一个程序,这是不可能的。有没有一种解决方案可以让我使用mutt
脱机电子邮件存储和即时电子邮件传送?
答案1
不幸的是,另一个中提出的两种可能性回答是不完美的。offlineimap
在最好的时候也是相当有问题的。例如,无法在新邮件到达后自动运行脚本。fetchmail
不双向同步。
相反,我最终使用的解决方案是以下组合通知和同步。我配置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也间歇性地工作。然而,goimap通知根据我的经验,效果很好。它很少掉线,当它掉线时(例如,由于网络断开和/或挂起周期),它会快速自行重新启动而无需大惊小怪。