Estou pensando em mudar mutt
para e-mail. No entanto, tenho alguns requisitos.
- Gostaria de poder armazenar o email offline.
- Eu gostaria que o email fosse enviado imediatamente para o meu computador local, em vez de pesquisas periódicas (por exemplo, usando o IMAP IDLE).
Para armazenamento offline, eu poderia usar imapoffline
ou isync
. Eu entendo que o último é mais estável. No entanto, para enviar emails sob demanda, a única opção que encontrei para o isync é o mswatch . Infelizmente, isso requer a instalação de um programa no servidor de email remoto, o que não é possível. Existe uma solução que me permita usar mutt
, com armazenamento offline de email e entrega instantânea de email?
Respostas:
A única maneira de enviar por e-mail imediatamente para o seu cliente é fazê-lo assim que o correio for entregue. Isso inevitavelmente exigirá que o software seja instalado e executado no servidor de email, portanto, toda solução em potencial terá o mesmo problema
mswatch
.A pesquisa frequente é provavelmente a sua melhor opção.
Na minha experiência, a execução
offlineimap
ou similar do cron a cada poucos minutos funciona bem o suficiente.Alguns programas de busca por imap suportam o comando imap IDLE. O IDLE não é exatamente 'push' (já que o email ainda é extraído do servidor pelo cliente), mas geralmente resulta em atualizações quase instantâneas na caixa de correio local.
offlineimap suporta, mas o manual diz "O suporte ao IDLE está incompleto e experimental. Podem ser encontrados erros."
O fetchmail suporta IDLE desde a versão 5.0
fonte
offlineimap
tem algum suporte para o IDLE, mas o manual diz "O suporte ao IDLE é incompleto e experimental. Podem ser encontrados erros".Don't set the automatic send/receive interval too short [less than 5 minutes] or you could end up endlessly polling the mail server, send/receive errors and sometimes even duplicates
(embora isso seja para um cliente específico).fetchmail
também suporta IDLE desde a v5.0 fetchmail.info/fetchmail-features.htmlInfelizmente, as duas possibilidades sugeridas na outra resposta foram 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 emails.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
mbsync "${channel}:INBOX"
dependendo de qual conta possui email. Em seguida, ele é executadonotmuch new
. Por fim, registra o número de e-mails não lidos em um arquivo como abaixo. O conteúdo deste arquivo é exibido em um painel do meu ambiente de área de trabalho.Atualizar
O imapnotify (nodejs-imapnotify) se desconecta regularmente, sem avisos / erros e geralmente perde novos e-mails. O python-imapnotify também funciona de forma intermitente. No entanto, o goimapnotify funciona muito bem na minha experiência. Raramente desiste e, quando ocorre (por exemplo, devido à desconexão da rede e / ou suspensão de ciclos), ele se reinicia rapidamente sem problemas.
fonte
offlineimap
: usando apostsynchook
opção na configuração; é assim que eu corrernotmuch new
..."No hook exists for “run after an IDLE response”. Email will show up, but may not be processed until the next refresh cycle."