Esiste un modo per filtrare la posta nell'account IMAP remoto?


9

Situazione: server di posta con accesso solo IMAP. Problema: voglio essere in grado di filtrare i messaggi (metti alcuni messaggi in varie cartelle, contrassegnali come letti e così via).

La maggior parte dei nuovi client di posta elettronica ha questa capacità, ma desidero un programma di filtro autonomo, poiché è necessario utilizzare vari client di posta elettronica per connettersi a questo server.

In genere - qualcosa come procmail, ma funziona su IMAP.

Il software verrà eseguito su Linux o Solaris.


Risposte:


8

Un veloce google lancia IMAPFilter che sembra fare quello che vuoi:

  • Ricerca di messaggi utilizzando molti criteri disponibili nel protocollo IMAP, come:
    • Stato (recente, non letto, ecc.) Di un messaggio.
    • Dimensione di un messaggio.
    • Età di un messaggio.
    • Corrispondenza di una stringa o di un modello di espressione regolare nelle intestazioni o nel corpo di un messaggio.
  • Capacità di usare operatori logici (e / o / no) durante la ricerca di messaggi.
  • Diverse funzionalità disponibili per elaborare i messaggi, tra cui:
    • Eliminazione di messaggi
    • Spostamento di messaggi in una cassetta postale nello stesso server o in server diversi
    • Copia dei messaggi in una cassetta postale nello stesso server o in server diversi.
    • Contrassegnare i messaggi o modificare i flag dei messaggi.
  • Elenco delle cassette postali disponibili e / o sottoscritte, insieme al supporto dell'estensione IMAP CHILDREN.
  • Creazione, eliminazione, ridenominazione, iscrizione o annullamento dell'iscrizione alle cassette postali
  • Supporto per l'internazionalizzazione (I18N).
  • Supporto dello spazio dei nomi del server utilizzando l'estensione IMAP NAMESPACE.
  • Connessioni imaps crittografate Secure Socket Layer (SSL) o Transport Layer Security (TLS) (porta 993).
  • Connessioni crittografate utilizzando l'estensione IMAP STARTTLS.
  • Autenticazione utente con il meccanismo di autenticazione Challenge-Response (CRAM), in particolare CRAM-MD5.
  • Supporto per le espressioni regolari compatibili (PCRE) Perl.

1

A seconda del tuo server IMAP, potresti semplicemente usare alcune implementazioni di setaccio . Penso che il miglior supporto per il setaccio sia fornito da Cyrus.


Bene - la soluzione che sto cercando non può dipendere in alcun modo dal server. Devo presumere che il server sia solo un IMAP stupido, senza supporto a niente di intelligente.

1

Come hai già detto, procmail è il modo giusto per farlo, quindi potresti chiedere al tuo provider di posta elettronica se lo supportano per ogni evenienza - non fa male.

Altrimenti, forse il modo più semplice è avere un client di posta elettronica sempre aperto che faccia l'ordinamento ecc. C'erano problemi di blocco con più client che accedevano alla stessa casella di posta IMAP, ma non li vedo da anni.


Questa non è la risposta Il filtro deve avvenire sul server IMAP, sul quale non si ha alcun controllo.
reinierpost,

1

Per pura leggerezza, puoi provare Sift .


vorrei averlo provato prima di imapfilter.
Joshua K,

Questo sembra essere abbandonato e non mantenuto, a differenza di imapfilter. Correggimi se sbaglio.
selurvedu,


0

Sui sistemi operativi Linux e Unix, è possibile utilizzare fetchmailper eseguire il polling del proprio account di posta elettronica IMAP e passare qualsiasi nuovo messaggio a procmail. È possibile configurare procmail per eseguire script in base alle corrispondenze del modello di espressione regolare nei messaggi ricevuti.

Per fare ciò, dovrai installare i pacchetti fetchmail e procmail. La seguente configurazione mi ha permesso di eseguire uno script per ogni nuovo messaggio di posta elettronica ricevuto nel mio account di posta elettronica. Ho usato Ubuntu 12.04 LTS.

In ~/.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"

Nota la keepdirettiva sopra, che garantisce che i messaggi non vengano rimossi dal server IMAP dopo il loro recupero.

In ~/.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`

Ci sono molti tutorial online per fetchmail e procmail e anche tutorial su come integrare i due (è così che mi è venuta in mente la precedente).

Ora se eseguo fetchmailo fetchmail -vlo script /home/username/myscript.shviene eseguito una volta per ogni nuovo messaggio. Posso eseguire fetchmail in un cron o configurare fetchmail per l'esecuzione come demone con la set daemon 600direttiva in .fetchmailrc(dove 600 è il numero di secondi tra i sondaggi).


Questa non è la risposta Il filtro deve avvenire sul server IMAP.
reinierpost,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.