[Postfixbuch-users] Autoresponder - Mailloops verhindern
Christian Boltz
postfixbuch at cboltz.de
Mi Nov 24 01:29:29 CET 2010
Hallo Sebastian, hallo Leute,
Am Dienstag, 23. November 2010 schrieb Sebastian Feltel:
> Am 22.11.2010 22:05, schrieb Christian Boltz:
> > Wenn Du die nötigen Tabellen in der Datenbank anlegst, funktioniert
> > vacation.pl auch unabhängig von Postfixadmin. Andererseits: Was
> > spricht gegen Postfixadmin? ;-)
>
> Das vacation.pl-Script hatte ich mir schon mal angesehen und auch
> noch eine Art Light-Variante davon im Netz gefunden, die ich soweit
> durchschaut hab und nutzen würde. Gegen Postfixadmin spricht
> eigentlich nix, lediglich das der Mailserver schon steht und ich ihn
> nicht gerne nochmal komplett umkrempeln wollen würde.
Wenn Dein Tabellen-Layout nicht zu kreativ ist, dürfte die Migration zu
Postfixadmin nicht zu schwierig sein. Im Idealfall ist es sowas:
INSERT INTO postfixadmin.tabelle SELECT * FROM deine.tabelle
Falls irgendwas zum Tabellenformat unklar sein sollte, frag nach.
Ich habe schon Aliase und Mailboxen aus einer Plesk-Datenbank
rausoperiert [1] und kann mir gerade kein Datenbanklayout vorstellen,
das mehr Schmerzen bei der Migration verursachen könnte...
> > Dann noch bei einem SMTP (vor _oder_ nach Amavis) das
> > Adress-Mapping deaktivieren. Das geht in der master.cf mit
> > smtp inet n - n - 50 smtpd
> >
> > -o receive_override_options=no_address_mappings
> >
> > (oder eben "10025 inet .... smtpd -o ...")
> >
> > Ob man das vor oder nach Amavis macht, ist Geschmackssache. Vor
> > Amavis hat den Vorteil, dass weniger Mails durch Amavis müssen
> > (weil der Alias noch nicht expandiert ist), nach Amavis hat den
> > Vorteil, dass Du auch bei mehreren Zielen in einem Alias
> > benutzerabhängige Regeln verwenden kannst.
>
> Das verstehe ich jetzt nicht ganz. Wie kann ich die aus dem
> vacation-Dienst abgehenden Mails denn direkt an den speziellen
> smtp-Dienst ohne Adress-Mapping leiten?
Die Frage ist, ob Du das willst - oder wir reden aneinander vorbei ;-)
Das no_address_mappings (vor _oder_ nach Amavis) ist etwas, das man
sowieso will, weil sonst Mailbox-Aliase zu doppelten Mails an die
andere(n) Adressen führen.
Beispiel:
user at example.com -> user at example.com (Mailbox), foo at example.com
Jetzt mal der Ablauf _ohne_ no_address_mappings:
1. Mail kommt von außen rein, der Alias wird expandiert, Postfix leitet
zwei Mails an Amavis weiter - je eine an user at example.com und
foo at example.com
2. Amavis gibt die beiden Mails an die zweite Postfix-Instanz zurück.
Die an foo at example.com geht unverändert raus.
Bei user at exampe.com wird der Alias wieder expandiert und es geht je
eine Mail an user at example.com und foo at example.com
Ergebnis: Die Mail landet einmal im Postfach user at example.com - und
doppelt(!) bei foo at example.com.
Oder eben zweimal beim Autoresponder (womit wir wieder beim Thema "nur
eine automatische Antwort alle X Tage wären - dann tut das nicht weh).
Genau deswegen will man an einer der beiden Stellen no_address_mappings.
Nicht an beiden, sonst bekäme foo at example.com überhaupt keine Mail.
Du solltest jetzt verstanden haben, warum ohne no_address_mappings in
Kombination mit einem content_filter doppelte Mails entstehen können.
Wenn nicht, frag an den unklaren Punkten nochmal nach.
So weit, so gut.
Die Mails, die das Vacation-Script generiert, sind "ganz normale" Mails.
Du kannst sie wie jede andere Mail an Postfix einliefern. Falls die
Absenderadresse auf Deinem Server ist und gleichzeitig ein Alias (oder
Mailbox+Alias), ist das Umschreiben des Empfängers sogar sinnvoll/nötig.
(Bei externen Empfängern passiert das ggf. auch, nur bekommst Du es
nicht mit.)
Das einzige, was für Dich interessant sein könnte, wäre die Performance
(Amavis umgehen, indem Du gleich auf der zweiten Postfix-Instanz auf
Port 10025 (bzw. in Deinem Setup auch auf localhost:25) einlieferst).
Bei einem Autoresponder ist sowas bei der Serverlast vermutlich nichtmal
messbar - bei Mailman mit 1000 Listenmitgliedern sieht es deutlich
anders aus und es reicht auch, wenn man die eine eingehende Mail
gescannt hat - das geht leichter als 1000 ausgehende zu scannen ;-)
Wenn Du das so machen willst, gehört no_address_mappings definitiv in
die erste Postfix-Instanz.
> Ich hab die aktuelle master.cf mal unter
> http://feltel.de/tmp/postfix-master.cf abgelegt.
Da Du bei localhost und 10025 content_filter=<leer> setzt, gehe ich mal
davon aus, dass in Deiner main.cf content_filter auf Amavis zeigt.
EXT_IP_ADRESSE:smtp inet n - - - - smtpd
EXT_IP_ADRESSE:submission inet n - n - - smtpd
Den beiden auf der externen IP solltest Du
-o receive_override_options=no_address_mappings
spendieren. Das Expandieren der Aliase erfolgt dann, sobald die Mails
von Amavis zurückkommen (sprich: bei localhost:10025).
127.0.0.1:smtp inet n - - - - smtpd
[...] -o content_filter=
Kein content_filter auf 127.0.0.1:25 hätte ich zwar nicht gemacht, aber
wirklich falsch ist es auch nicht. Hoffen wir mal, dass keiner einen
Virus explizit über Deinen Webmailer hochlädt und verschickt ;-)
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter= [...]
Die beiden auf 127.0.0.1 sind "Endstation" für die Mails (kein
content_filter) und müssen daher die Aliase expandieren. Also in diesem
Teil nichts ändern.
Gruß
Christian Boltz
[1]
--
Sagt mal ehrlich: Ist mein Rechner geisteskrank????
[Harald Katzer in suse-linux]
Mehr Informationen über die Mailingliste Postfixbuch-users