Mail-Loops verhindern

From OtterHub - OTRS Community Wiki
Jump to: navigation, search

Als Mail-Loop bezeichnet man Endlossschleifen, in denen sich automatisch reagierende E-Mail-Systeme gegenseitig mit E-Mails bombardieren, weil sie diese E-Mails nicht als Auto-Responses erkennen. Das Prinzip ist folgendes:

  • A schickt an B eine E-Mail.
  • B antwortet automatisch auf alle E-Mails und schickt A deshalb eine Auto-Response
  • A antwortet auch automatisch auf alle E-Mails und schickt wiederum auf die Auto-Responses von B eine Antwort
  • usw. usf.

Das ganze läuft im Extremfall so lange, bis einer der Rechner abstürzt oder das Postfach auf einem der Accounts vollläuft. Falls es passiert, zieht es auf jeden Fall auf allen beteiligten Rechnern erhebliche manuelle Arbeit mit sich.

Aus diesem Grund ist es sowohl Kür als auch Pflicht jedes Betreibers von automatisch reagierenden Mail-Systemen, Mail-Loops wirksam zu verhindern.

Vorweg: Dieser Artikel soll nicht als Sammlung von "Kochrezepten" aufgefasst werden, auch wenn diese als Beispiele eingearbeiten sein können. Grundsätzlich müssen wirksame Maßnahmen auf das System abgestimmt sein. Hintergrundkenntnisse über die vorgestellten Methoden und Prozesse sind deshalb von essenzieller Bedeutung.

OTRS und Auto-Responder

Das oben beschrieben Verhalten lässt sich auch mit zwei OTRS-Systemen reproduzieren. Wenn beide darauf eingestellt sind, dass auf jede E-Mail eine Antwort-Mail mit den aktuellen Ticket-Status verschickt werden soll, können sich zwei OTRS-Systeme gegenseitig in einen Mail-Loop bringen (selbst experimentell ausprobiert).

Um das zu verhindern, gibt es für E-Mails den zusätzlichen Header

X-OTRS-Loop: True

ist dieser in einer eingehenden E-Mail gesetzt, verschickt OTRS auf diese Nachricht keine automatischen Antwort. Diesen Header muss der Admin ggf. durch Filterregeln erzeugen lassen.

Strategien zur Erkennung automatischer Antworten

Es gibt leider keinen Standard, an dem ein System erkennen kann, ob eine E-Mail automatisch verschickt wurde oder nicht, da hier jeder sein eigenen Süppchen kocht. Es gibt allerdings zwei Indizien, die stark darauf hindeuten:

  • Leerer Return-Path:
    In dieser Header-Zeile steht die E-Mail, an die eine Antwort bei technischen Problemem bei der Zustellung gehen soll. Ist diese leer, ist die logische Konsequenz, dass keine Antwort erfolgen soll.
  • Gesetzter X-Loop-Header. Wie bei allen X-Header-Einträgen gibt es keine Vorgabe, wie dieser Header gesetzt werden soll (und es gibt verschiedene Interpretationen). Man kann jedoch davon ausgehen, dass bei gesetzten X-Loop die Antwort automatisch erstellt wurde.

Auto-Responses, die von OTRS verschickt werden, erfüllen übrigens beide Kriterien.

Lösungsansatz für procmail

[procmail] ist ein unter unix-artigen Betriebssystemen weit verbreiteter Mailfilter, mit dem man eingehende E-Mails an andere Programme zur weiteren Bearbeitung übergeben kann. Oben genannten Indizien kann man unter procmail kann man diese Hinweise mit einer einzigen Regel abfackeln:

:0 fhw:
* ^(Return-Path: <>|X-Loop:)
| formail -I "X-OTRS-Loop: True"

Ich möchte auf die Regel nicht im Detail eingehen, zur Erklärung schlage man nach in

man procmailrc
man egrep
man formail

Lösungsansatz für PostMaster

Über den PostMaster Filter ist dies etwas komplizierter, da man zwei separate Regeln anlegen muss. Außerdem kann man bei einer Standard-Installation noch gar nicht über den Return-Path filtern, das muss man erst in der SysConfig freischalten (Ticket -> Core::PostMaster -> PostmasterX-Header).

Die genaue Definition der Regeln überlasse ich denen, die den PostMaster einsetzen.

Vorsicht

Man könnte auf die Idee kommen, Auto-Responder über X-OTRS-Queue direkt nach Junk zu verschieben. Das kann mächtig in die Hose gehen, wenn z. B. im Betreff einen Ticket-Nummer angegegben ist. In dem Fall wird nämlich das komplette Ticket mit allen daran hängenen Artikel nach Junk verschoben. Aus diesem Grund sollte man auch automatisches Löschen an der Stelle tunlichst unterlassen.

[Anmerkung: In neueren Versionen ist dieses Problem gelöst, da zwischen X-OTRS-Queue und X-OTRS-FollowUp-Queue unterschieden wird. Dadurch werden bei FollowUps (Autoantworten mit Ticketnummer) die PostMaster Filter entsprechend nicht gesetzt.]

To be continued ...

Kategorie:Mail