Estoy pensando en cambiarme mutt
por correo electrónico. Sin embargo, tengo algunos requisitos.
- Me gustaría poder almacenar el correo electrónico sin conexión.
- Me gustaría que el correo electrónico se envíe inmediatamente a mi computadora local en lugar de encuestas periódicas (por ejemplo, usando IMAP IDLE).
Para el almacenamiento fuera de línea, podría usar imapoffline
o isync
. Entiendo que este último es más estable. Sin embargo, para enviar el correo electrónico a pedido, la única opción que he encontrado para isync es mswatch . Desafortunadamente, esto requiere que se instale un programa en el servidor de correo electrónico remoto, lo cual no es posible. ¿Existe una solución que me permita usar mutt
, con almacenamiento de correo electrónico fuera de línea y entrega instantánea de correo electrónico?
Respuestas:
La única forma de "enviar" el correo inmediatamente a su cliente es que el servidor lo haga tan pronto como se entregue el correo. Esto inevitablemente requerirá la instalación y ejecución del software en el servidor de correo, por lo que cada solución potencial tendrá el mismo problema
mswatch
.Las encuestas frecuentes son probablemente su mejor opción.
En mi experiencia, ejecutar
offlineimap
o similar desde cron cada pocos minutos funciona lo suficientemente bien.Algunos programas de obtención de imap admiten el comando imap IDLE. IDLE no es exactamente 'push' (ya que el cliente todavía extrae el correo del servidor), pero generalmente genera actualizaciones casi instantáneas en su buzón local.
offlineimap lo admite, pero el manual dice "El soporte IDLE es incompleto y experimental. Pueden encontrarse errores".
fetchmail admite IDLE desde la versión 5.0
fuente
offlineimap
tiene algún soporte para IDLE, pero el manual dice "El soporte de IDLE es incompleto y experimental. Pueden encontrarse errores".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
(aunque esto es para un cliente específico).fetchmail
también es compatible con IDLE desde v5.0 fetchmail.info/fetchmail-features.htmlDesafortunadamente, las dos posibilidades sugeridas en la otra respuesta eran imperfectas.
offlineimap
fue bastante buggy en el mejor de los casos. Por ejemplo, no hay forma de ejecutar automáticamente una secuencia de comandos después de que llega un nuevo correo.fetchmail
no se sincroniza bidireccionalmente.En cambio, la solución que terminé usando era una combinación de imapnotify e isync . Configuré
imapnotify
para ejecutar un script cuando se activa un nuevo correo (a través de IDLE).Este script se ejecuta
mbsync "${channel}:INBOX"
según la cuenta que tenga correo. A continuación se ejecutanotmuch new
. Finalmente, registra la cantidad de correos electrónicos no leídos en un archivo como se muestra a continuación. El contenido de este archivo se muestra en un panel de mi entorno de escritorio.Actualizar
imapnotify (nodejs-imapnotify) se desconecta regularmente sin advertencias / errores, y a menudo pierde correo nuevo. python-imapnotify también funciona de manera intermitente. Sin embargo, goimapnotify funciona muy bien en mi experiencia. Raramente se cae, y cuando lo hace (por ejemplo, debido a desconexiones de la red y / o suspender ciclos), se reinicia rápidamente sin problemas.
fuente
offlineimap
: usando lapostsynchook
opción en la configuración; así es como corronotmuch new
..."No hook exists for “run after an IDLE response”. Email will show up, but may not be processed until the next refresh cycle."