[Postfixbuch-users] Autoresponder - Tutorial

Thomas Schwenski mailing-lists at thomasschwenski.de
Mi Okt 7 20:42:30 CEST 2009


Hallo Namensvetter,

Thomas Gelf schrieb:
> Tut immer gut zu lesen, dass es den ein oder anderen gibt, der sich doch
> tatsächlich Gedanken zu dem macht, was man so verzapft ;-) 

Damit Du nicht weiter denkst hier alles alleine zu machen melde ich mich
auch mal zu Wort.

Ich hab mir bisher Deinen Code nebst Notizen noch nicht angeschaut,
verfolge aber den (noch recht übersichtlichen) Thread hier auf der
Mailingliste.


Ich hatte ebenfalls schonmal angefangen, einen kleinen Autoresponder für
mein Setup zu basteln.
Umsetzung in Perl, Einbindung per transport-map und Postfix pipe-daemon.
Im Moment (bzw. seit Wochen) noch recht simpel:
Für jede Mail an eine Adresse mit aktiviertem Vacation wird das Script
ausgeführt, eine Datenbankabfrage nach dem Inhalt der Antwort wird
durchgeführt und die Antwort versendet.

Bei mir steht noch auf dem Plan:
-Umsetzung als Preforking- oder Prethreading-Daemon
-SMTP-Listener der die Mails annimmt
-Auswertung der Envelope-Daten
-Auswertung der Header-Informationen
-ggf. Template-Variablen für die Response-Message (Absender-E-Mail etc.)
-Zeitverwaltung des Antwortsystems (Antwort auf jede E-Mail, nur 1
Antwort pro Absender je Zeiteinheit (Stunde, 3 Stunden, 6 Stunden, Tag,
x Stunden, ...))
-Bedingungswerk (Absender-, Empfänger-, Client-, Zeit-basiert)
-Entlastung der Back-End-Datenbank durch Verwendung von
Konfigurationsdateien pro Empfänger-Mailbox
-Modularität (Plugins zum Beispiel für Ticket-System)


Wie im letzten Punkt angedeutet würde ich eine Einbindung eines
Ticket-Systems maximal über ein untergeordnetes Plugin durchführen.
Prinzipiell ist die Verwendung eines eigenen Dienstes schon recht hoch
gegriffen, da dieser "permanent" (kann man ja einschränken durch
Unterstützung von (x)inetd) Ressourcen belegt.
Ein eigenes Script kann man mit nice herabstufen und so die Last
beschränken.
Eine entsprechende Umsetzung mit Perl oder C kann aber durchaus auch
recht schlank und schnell sein.
Eien Abwesenheitsnotiz hat (aus Sicht des Admins) eine ziemlich niedrige
Priorität. Die automatischen Antworten eines Ticketing-Systems liegen
meist nicht viel höher (ist halt Ansichtssache) benötigen aber einen
viel höheren Aufwand:

-Analyse der kompletten Mail auf evtl. bereits zugeordnete Ticketnummer
-Einspeisung der Mail in das Ticketing-System
-ggf. automatische Zuordnung zum Sachbearbeiter

Da werden viel mehr Datenbank-Abfragen fällig und mehr Ressourcen benötigt.
Daher würde ich das eher linear per Script abarbeiten lassen, anstelle
parallel um die Anfälligkeit für (D)DOS-Attacken niedrig zu halten.
(Gegen eine Überlastung aufgrund zu vieler Anfragen kann man natürlich
nur einige wenige Maßnahmen ergreifen, aber wie wichtig ist es denn ob
eine automatische "Vielen Dank für Ihre Mitteilung"-Mail nun 3 Minuten
oder 12 Stunden später kommt?)


Just my thoughts

Thomas



Mehr Informationen über die Mailingliste Postfixbuch-users