Infelizmente, as duas possibilidades sugeridas na outra resposta eram imperfeitas. offlineimap
foi bastante buggy no melhor dos tempos. Por exemplo, não há como executar automaticamente um script após a chegada de novos e-mails. fetchmail
não sincroniza bidirecionalmente.
Em vez disso, a solução que acabei usando foi uma combinação de imapnotify e isync . Eu configurei imapnotify
para executar um script quando novos emails são acionados (via IDLE).
Este script é executado em mbsync "${channel}:INBOX"
, dependendo de qual conta tem e-mail. Em seguida, ele executa notmuch new
. Finalmente, ele registra o número de e-mails não lidos em um arquivo, conforme abaixo. O conteúdo deste arquivo é exibido em um painel do meu ambiente de área de trabalho.
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