PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : fetchmail/postfix: empfangene Mails werden wieder versendet



tschloss
12.04.07, 06:27
Hi,
ich habe zwei sehr ähnliche fetchmail-Server in Betrieb, bei einem ist jetzt ein Problem hochgekommen. Ich möchte das Problem allerdings erst vom Prinzip her verstanden haben, bevor ich dann evtl. noch bei der Umsetzung um Hilfe bitten muss.

Situation:

Maildomain beim Provider mit einigen Mailboxen und ein paar Verteilern
lokaler fetchmail/postfix/cyrus-Server, der zwei dieser Mailboxen leert
eine der abgeholten Mailboxen ist eine persönliche MB, die andere eine Sammelbox
die Zustellung nach fetchmail erfolgt über postfix - cyrus


Problem:

jmd Fremdes sendet Mail an einen der "fetchmail-User"
diese Mail hat einen zweiten Empfänger (nicht einer der fetchmail-User)
der lokale MTA stellt auch die Mail an den zweiten Empfänger zu
d.h. er SMTP´t diese an den Provider-MTA
der zweite Empfänger erhält die Mail damit zweimal


Frage 1:
Normalerweise -zB auf meinem zweiten Mailserver- passiert das ja nicht. Warum eigentlich nicht? Der Mailheader enthält ja korrekterweise alle TO/CC.
Ist es der "RCPT" Adressat, der das den MTA tatsächlich steuert? Das hiesse, das fetchmail den Fehler macht, indem er vielleicht auch den zweiten Empfänger in den Envelope aufnimmt.

Frage 2:
Woher nimmt fetchmail eigentlich den Domainnamen, um mit dem lokalen Usernamen die vollständige Mailadresse zusammenzubauen?

Frage 3:
Mein lokaler Mailserver (der Postfix) hört (leider) auf dieselbe Maildomain, wie der Provider-Dienst. Anfangs hielt ich das für eine gute Idee, inwzischen glaube ich, eine Unterscheidung (z.B. "internal.meinedomain.de") wäre geschickter. Gibt es denn eine allgemeine Empfehlung?

TIA!

RichieX
12.04.07, 11:14
Frage 3 kann ich dir schonmal beantworten, über den Rest muss ich erstmal nachdenken ;)

Also es ist prinzipiell immer sinnvoll, Mailserver, die in einem geNATeten Netzwerk, also lokalen Netzwerk stehen nicht zuständig für öffentliche Domains (.de,.com,.org ...) zu machen. man gibt ihnen dann auch Namen wie mail.meinedomain.local o.ä.
Evtl. benötigte öffentliche Adressen werden dann einfach maskiert.

RichieX

RichieX
12.04.07, 11:19
zu Frage 2:
vielleicht aus der /etc/hosts oder $HOSTNAME allgemein. Hab ich ehrlich gesagt noch nicht drüber nachgedacht.

Aber das könnte ja zutreffen:
man fetchmail


(Keyword: no rewrite) Normally, fetchmail edits RFC-822 address
headers (To, From, Cc, Bcc, and Reply-To) in fetched mail so
that any mail IDs local to the server are expanded to full
addresses (@ and the mailserver hostname are appended). This
enables replies on the client to get addressed correctly (other-
wise your mailer might think they should be addressed to local
users on the client machine!).
...


RichieX

RichieX
12.04.07, 11:22
zu Frage 2:
Ist für CC/BCC nicht der sendende MTA zuständig? D.h. du müsstest dich darüber eigentlich nicht den Kopf zerbrechen. Oder ich hab da was falsch verstanden.

RichieX

tschloss
12.04.07, 13:42
zu Frage 2:
Ist für CC/BCC nicht der sendende MTA zuständig? D.h. du müsstest dich darüber eigentlich nicht den Kopf zerbrechen. Oder ich hab da was falsch verstanden.

RichieX

Jein. Ich habe jetzt nochmals die Postfix- und die Fetchmaildoku herangezogen.
Daraus ergib sich folgendes schlüssiges Bild:

Der MTA stellt dahin zu, was er im envelope (also "RCPT TO:") gesagt bekommt, das TO im Header interessiert ihn nicht.
Der Envelope geht ja verloren, wenn die Mail beim Provider in die Box sortiert wird. Fetchmail holt die Mail ab und bastelt sich einen neuen Envelope zurecht, um die Mail an den MTA zu übergeben.
Ich habe eine "Multidrop-Box" beim Provider. Die Fetchmail-Doku sagt auch, dass besonders bei Multidrop die Rekonstruktion des Envelopes sehr fehleranfällig ist.
Und dann habe ich das zusätzliche Problem, dass ein Teil der Maildomain lokal seinen Endpunkt hat, ein anderer Teil sind Boxen oder Verteiler bem Provider. Das heisst für den externen Teil habe ich via Transport-Map auch eine Übermittlung an den Provider-MTA eingestellt. Das ist eine unübersichtliche Gemengelage....


Und die Beispiele für die doppelte Mailauslieferung beziehen sich in der Tat auf eine Kombination 1 Adressat aus der Multidrop-Box, 1 Adressat aus einem Verteiler auf dem Provider-Server (alle mit derselben Maildomain).
Ich sehe jetzt folgende Möglichkeiten:
Prophylaktisch Multidropbox auflösen (kostet
mich Geld)
Prohylaktisch Interne Maildomain einrichten zur sauberen Abgrenzung (kostet mich Zeit und Nerven)
Weizter debuggen: Sniffer zwischen Fetchmail und Postfix hängen, um zu verstehen, was der Kollege so macht... (evtl. sehe ich das auch mit einem verboseren Postfix? oder verboseren Fetchmail?)


Thx!

tschloss
12.04.07, 13:56
zu Frage 2:
vielleicht aus der /etc/hosts oder $HOSTNAME allgemein. Hab ich ehrlich gesagt noch nicht drüber nachgedacht.

Aber das könnte ja zutreffen:
man fetchmail


(Keyword: no rewrite) Normally, fetchmail edits RFC-822 address
headers (To, From, Cc, Bcc, and Reply-To) in fetched mail so
that any mail IDs local to the server are expanded to full
addresses (@ and the mailserver hostname are appended). This
enables replies on the client to get addressed correctly (other-
wise your mailer might think they should be addressed to local
users on the client machine!).
...


RichieX

In der Fetchmail Doku fand ich das hier:

-D <domain> | --smtpaddress <domain>
(Keyword: smtpaddress) Specify the domain to be appended to addresses in RCPT TO lines shipped to SMTP. When this is not specified, the name of the SMTP server (as specified by --smtphost) is used for SMTP/LMTP and ’localhost’ is used for UNIX socket/BSMTP.