Gibt es eine Möglichkeit, E-Mails in einem Remote-IMAP-Konto zu filtern?


9

Situation: Mailserver mit nur IMAP-Zugriff. Problem: Ich möchte in der Lage sein, E-Mails zu filtern (einige E-Mails in verschiedene Ordner legen, als gelesen markieren usw.).

Die meisten neuen E-Mail-Clients verfügen über diese Funktion, ich möchte jedoch ein eigenständiges Filterprogramm, da ich verschiedene E-Mail-Clients verwenden muss, um eine Verbindung zu diesem Server herzustellen.

Im Allgemeinen - so etwas wie procmail, aber über IMAP arbeiten.

Die Software wird unter Linux oder Solaris ausgeführt.


Antworten:


8

Ein schneller Google- Aufruf ruft IMAPFilter auf, der so aussieht, als würde er das tun , was Sie wollen:

  • Durchsuchen von Nachrichten anhand vieler verfügbarer Kriterien im IMAP-Protokoll, z.
    • Status (aktuell, ungelesen usw.) einer Nachricht.
    • Größe einer Nachricht.
    • Alter einer Nachricht.
    • Übereinstimmung einer Zeichenfolge oder eines Musters mit regulären Ausdrücken in den Kopfzeilen oder im Nachrichtentext.
  • Möglichkeit, beim Durchsuchen von Nachrichten logische Operatoren (und / oder / oder nicht) zu verwenden.
  • Verschiedene Funktionen zum Verarbeiten von Nachrichten verfügbar, darunter:
    • Nachrichten löschen.
    • Verschieben von Nachrichten in ein Postfach auf demselben oder einem anderen Server
    • Kopieren von Nachrichten in ein Postfach auf demselben oder einem anderen Server.
    • Nachrichten markieren oder Nachrichtenflags ändern.
  • Auflistung der verfügbaren und / oder abonnierten Postfächer sowie Unterstützung für die IMAP CHILDREN-Erweiterung.
  • Erstellen, Löschen, Umbenennen, Abonnieren oder Abbestellen von Postfächern
  • Unterstützung der Internationalisierung (I18N).
  • Server-Namespace-Unterstützung mit der IMAP NAMESPACE-Erweiterung.
  • Secure Socket Layer (SSL) - oder Transport Layer Security (TLS) -verschlüsselte IMAP-Verbindungen (Port 993).
  • Verschlüsselte Verbindungen mit der Erweiterung IMAP STARTTLS.
  • Benutzerauthentifizierung mit dem Challenge-Response-Authentifizierungsmechanismus (CRAM), insbesondere CRAM-MD5.
  • Unterstützung für Perl-kompatible reguläre Ausdrücke (PCRE).

1

Abhängig von Ihrem IMAP-Server können Sie einfach eine Implementierung von Sieve verwenden . Ich denke, die beste Unterstützung für das Sieb bietet Cyrus.


Nun - die Lösung, nach der ich suche, kann in keiner Weise vom Server abhängen. Ich muss davon ausgehen, dass der Server nur ein dummer IMAP ist, ohne Unterstützung für nichts Kluges.

1

Wie Sie bereits erwähnt haben, ist procmail der richtige Weg, um dies zu tun. Sie können also Ihren E-Mail-Anbieter fragen, ob er dies nur für den Fall unterstützt - es tut nicht weh.

Andernfalls ist es vielleicht am einfachsten, einen E-Mail-Client immer geöffnet zu haben, der die Sortierung usw. durchführt. Früher gab es Sperrprobleme, wenn mehrere Clients auf dasselbe IMAP-Postfach zugreifen, aber ich habe diese seit Jahren nicht mehr gesehen.


Dies ist nicht die Antwort. Die Filterung muss auf dem IMAP-Server erfolgen, über den Sie keine Kontrolle haben.
Reinierpost

1

Aus Gründen der Leichtigkeit können Sie Sift ausprobieren.


Ich wünschte, ich hätte dies vor dem Imapfilter versucht.
Joshua K

Dies scheint im Gegensatz zu Imapfilter aufgegeben und nicht gewartet zu werden. Korrigiere mich, wenn ich falsch liege.
Selurvedu


0

Unter Linux- und Unix-Betriebssystemen können Sie fetchmailIhr IMAP-E-Mail-Konto abfragen und neue Nachrichten an weiterleiten procmail. Sie können procmail so konfigurieren, dass Skripts basierend auf Übereinstimmungen mit Mustern regulärer Ausdrücke in empfangenen Nachrichten ausgeführt werden.

Dazu müssen Sie die Pakete fetchmail und procmail installieren. Mit der folgenden Konfiguration konnte ich ein Skript für jede neue E-Mail-Nachricht ausführen, die in meinem E-Mail-Konto empfangen wird. Ich habe Ubuntu 12.04 LTS verwendet.

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"

Beachten Sie die keepobige Anweisung, die sicherstellt, dass Nachrichten nach dem Abrufen nicht vom IMAP-Server entfernt werden.

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`

Es gibt viele Online-Tutorials für Fetchmail und Procmail sowie Tutorials für die Integration der beiden (so bin ich auf das oben Gesagte gekommen).

Wenn ich jetzt laufe fetchmailoder fetchmail -vdas Skript /home/username/myscript.sheinmal für jede neue Nachricht ausgeführt wird. Ich kann fetchmail in einem Cron ausführen oder fetchmail so konfigurieren, dass es als Daemon mit der set daemon 600Direktive in ausgeführt wird .fetchmailrc(wobei 600 die Anzahl der Sekunden zwischen den Abfragen ist).


Dies ist nicht die Antwort. Die Filterung muss auf dem IMAP-Server erfolgen.
Reinierpost
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.