¿Hay alguna forma de filtrar correos en una cuenta IMAP remota?


9

Situación: servidor de correo con acceso solo IMAP. Problema: quiero poder filtrar correos (poner algunos correos en varias carpetas, marcarlos como leídos, etc.).

La mayoría de los nuevos clientes de correo electrónico tienen esta capacidad, pero quiero un programa de filtrado independiente, ya que necesito usar varios clientes de correo electrónico para conectarme a este servidor.

En general, algo así como procmail, pero funciona sobre IMAP.

El software se ejecutará en Linux o Solaris.


Respuestas:


8

Un rápido google lanza IMAPFilter que parece que hace lo que quieres:

  • Búsqueda de mensajes utilizando muchos criterios disponibles en el protocolo IMAP, como:
    • Estado (reciente, no leído, etc.) de un mensaje.
    • Tamaño de un mensaje.
    • Edad de un mensaje.
    • Coincidencia de una cadena o un patrón de expresión regular en los encabezados o el cuerpo de un mensaje.
  • Capacidad para utilizar operadores lógicos (y / o / no) mientras busca mensajes.
  • Diferentes capacidades disponibles para procesar mensajes, que incluyen:
    • Borrando mensajes.
    • Mover mensajes a un buzón en el mismo servidor o en servidores diferentes
    • Copiar mensajes a un buzón en el mismo servidor o en servidores diferentes.
    • Marcar mensajes o cambiar banderas de mensajes.
  • Listado de los buzones disponibles y / o suscritos, junto con soporte para la extensión IMAP CHILDREN.
  • Crear, eliminar, renombrar, suscribir o cancelar la suscripción de buzones
  • Soporte de internacionalización (I18N).
  • Soporte de espacio de nombres del servidor usando la extensión IMAP NAMESPACE.
  • Secure Socket Layer (SSL) o Transport Layer Security (TLS) conexiones cifradas imaps (puerto 993).
  • Conexiones cifradas con la extensión IMAP STARTTLS.
  • Autenticación de usuario con el Mecanismo de autenticación de desafío-respuesta (CRAM), específicamente CRAM-MD5.
  • Compatibilidad con expresiones regulares compatibles con Perl (PCRE).

1

Dependiendo de su servidor IMAP, simplemente podría usar alguna implementación de tamiz . Creo que el mejor soporte para el tamiz lo proporciona cyrus.


Bueno, la solución que estoy buscando no puede depender de ninguna manera del servidor. Tengo que asumir que el servidor es solo un IMAP tonto, sin soporte para nada inteligente.

1

Como ya mencionó, procmail es la forma correcta de hacer esto, por lo que puede preguntarle a su proveedor de correo electrónico si lo admite por si acaso, no hace daño.

De lo contrario, quizás la forma más fácil es tener un cliente de correo electrónico siempre abierto que haga la clasificación, etc. Solía ​​haber problemas de bloqueo con varios clientes que acceden al mismo buzón IMAP, pero no los he visto en años.


Esta no es la respuesta. El filtrado debe realizarse en el servidor IMAP, sobre el cual no tiene control.
reinierpost

1

Por pura ligereza, puedes probar Sift .


Ojalá hubiera intentado esto antes de imapfilter.
Joshua K

Esto parece estar abandonado y sin mantenimiento, a diferencia de imapfilter. Corrígeme si estoy equivocado.
selurvedu


0

En los sistemas operativos Linux y Unix, puede utilizar fetchmailpara sondear su cuenta de correo electrónico IMAP y pasar cualquier mensaje nuevo a procmail. Puede configurar procmail para ejecutar scripts basados ​​en coincidencias de patrones de expresión regular en los mensajes recibidos.

Para hacer esto, necesitará instalar los paquetes fetchmail y procmail. La siguiente configuración me permitió ejecutar un script para cada nuevo mensaje de correo electrónico recibido en mi cuenta de correo electrónico. Usé Ubuntu 12.04 LTS.

En ~/.fetchmailrc:

# .fetchmailrc checks my e-mail account for new messages, sends them to procmail

set logfile /home/myusername/fetchmail.log

poll mail.domain.com protocol IMAP
    user "emailaccountname"
    password 'emailpassword'
    folder 'INBOX'
    keep
    ssl
    mda "/usr/bin/procmail -f %F"

Tenga en cuenta la keepdirectiva anterior, que garantiza que los mensajes no se eliminen del servidor IMAP después de que se recuperen.

En ~/.procmailrc:

# .procmailrc received e-mails from fetchmail and runs a script
PATH=/usr/bin:/usr/local/bin
LOGFILE=/home/username/procmail.log
SHELL=/bin/sh

# This rule triggers for every e-mail message:
:0
| `/home/username/myscript.sh`

Hay muchos tutoriales en línea para fetchmail y procmail, y también tutoriales sobre cómo integrar los dos (así es como se me ocurrió lo anterior).

Ahora si ejecuto fetchmailo fetchmail -vel script se /home/username/myscript.shejecuta una vez por cada nuevo mensaje. Puedo ejecutar fetchmail en un cron, o configurar fetchmail para que se ejecute como un demonio con la set daemon 600directiva en .fetchmailrc(donde 600 es el número de segundos entre encuestas).


Esta no es la respuesta. El filtrado debe realizarse en el servidor IMAP.
reinierpost
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.