Como posso usar o mutt com armazenamento local, IMAP e envio instantâneo de novos emails?

8

Estou pensando em mudar para mutt para e-mail. No entanto, tenho alguns requisitos.

  1. Eu gostaria de poder armazenar o e-mail off-line.
  2. Eu gostaria de ter o e-mail enviado imediatamente para o meu computador local, em vez da pesquisa periódica (por exemplo, usando o IMAP IDLE).

Para armazenamento off-line, eu poderia usar imapoffline ou isync . Eu entendo que o último é mais estável. No entanto, para que o email seja enviado sob demanda, a única opção que eu encontrei para o isync é mswatch . Infelizmente, isso requer que um programa seja instalado no servidor de email remoto, o que não é possível. Existe uma solução que me permita usar mutt , com armazenamento de e-mail off-line e entrega instantânea de e-mail?

    
por Sparhawk 22.09.2015 / 01:27

2 respostas

4

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
    
por 04.10.2015 / 08:33
5

A única maneira de "enviar email" imediatamente para o seu cliente é para o servidor fazê-lo assim que o email é entregue. Isso inevitavelmente exigirá que o software seja instalado e executado no servidor de e-mail, portanto, todas as possíveis soluções terão o mesmo problema que mswatch .

A sondagem frequente é provavelmente sua melhor opção.

Na minha experiência, executar offlineimap ou similar do cron a cada poucos minutos funciona bem o suficiente.

Alguns programas imap-fetching suportam o comando imap IDLE. O IDLE não é exatamente 'push' (já que o correio ainda é retirado do servidor pelo cliente), mas geralmente resulta em atualizações quase instantâneas na sua caixa de correio local.

offlineimap oferece suporte, mas o manual diz que "o suporte a IDLEs é incompleto e experimental. Bugs podem ser encontrados".

O fetchmail suporta o IDLE desde a versão 5.0

    
por 22.09.2015 / 03:38

Tags