PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Postfix für Connection mit Exchange 2003



Stiftmaster
10.07.05, 21:05
Hallo Leute,

in der Firma haben wir einen MS Exchange 2003 Server. Da wir momentan noch keine Standleitung haben, sollen die E-Mails von einem Linux-Server (SuSe 9.3) abgeholt und dann an den Exchange weitergeleitet werden.
Das habe ich bisher gemacht:

procmail, fetchmail, postfix installiert (von SuSE-CDs)

Die Datei /root/.fetchmailrc wie folgt erstellt:

poll "pop.XXX.de" protocol pop3 user "XXX" pass "XXX"

mda /usr/bin/procmail

Im DNS-Server habe ich den MX-Eintrag auf den Exchange-Server gesetzt.

Dann habe ich die Datei /etc/procmailrc angelegt und wie folgt bearbeitet:

LOGFILE=/var/log/procmail
VERBOSE=off

:0
*^To:. XXX@online.de
!MeinKontoName@Meine-Domain

wenn ich jetzt den Befehl "fetchmail -a" eingebe, werden die E-Mails auch abgeholt:

sd-s-gateway:/var/spool/mail # fetchmail -a
1 message for XXX at pop.XXX.de (1450 octets).
reading message XXX@pop.XXX.de:1 of 1 (1450 octets) . flushed

dann schaue ich mir die Datei /var/log/procmail an und da steht folgendes drin:

Subject: Test1100
Folder: /var/spool/mail/root 1571

Ich bin mal nach folgendem Telnet-Script vorgegangen und da hat das Empfangen wunderbar geklappt. Daher bin ich davon überzeugt, dass es an der Linux-Kiste liegen muss (Script: http://www.sbspraxis.de/exchange/ex03003/ex03003.html)

Hat jemand einen Rat - ich weiß nicht woran es liegt. Bin für jeden Tipp dankbar.

Stefan

tschloss
11.07.05, 07:12
Mir ist das Prinzip deines Vorgehens nicht ganz klar.
Ich vermute mal, dass die Mails per SMTP an den Exchange weitergeleitet werden sollen.
Dabei ist mir die Aufgabe des procmail-Rezeptes unklar. Procmail ist ja eigentlich ein lokaler Auslieferer (deswegen wohl auch der log-Eintrag)
Ich hätte das eher auf Postfix-Ebene zu lösen, also im primitivsten Fall durch entsprechende forward-Direktiven.
Wenn man den fetchmail dazu bringen könnte, auch für Mailadressen abzurufen, die nicht lokal bekannt sind, könnte man z.B. auch mit einer Transport-Map oder mit einem ganz normalen SMTP-Relay arbeiten.

Aber vielleicht geht es auch so, wie du das denkst - ich bin hier sicher nicht der Guru.

Greetz
Thomas

Stiftmaster
11.07.05, 09:08
Hi,

deine Vermutung, dass die E-Mails über SMTP an den Exchange weitergeleitet werden sollen ist richtig. Selbstverständlich wird für das Versenden postfix verwendet. So hatte ich mir das überlegt (bzw. gelesen und gemeint es so vestanden zu haben):

- Fetchmail holt die Mails von einem Pop3-Konto ab
- Procmail wertet die E-Mails aus; meint: er bestimmt, welche E-Mail in welches Postfach (auf dem Exchange) kommt
- Postfix versendet die E-Mails an den Exchange
- Exchange fügt die E-Mails den einzelnen Benutzern zu
- fertig

Wenn du natürlich sagst, dass procmail ein localer Verteiler ist, dann ist das Konzept für'n Ar***. Dann muss wohl ein anderes Konzept her.

Wofür ist eigentlich der DNS-Eintrag MX gut. Dort habe ich den Exchange eingetragen...

Stefan

tschloss
11.07.05, 09:42
Soweit ich fetchmail kenne, beziehen sich die Zielnamen auf das lokale System.
Aber was genau fetchmail dann verwendet, um aus dem lokalen Usernamen einen validen SMTP-Adressaten zu machen, weiss ich nicht. Hier wäre evtl. ein Ansatz, die lokale Zustellung zu verhindenr und eine SMTP-Relay auszulösen.

Procmail wird weithin als MDA verwendet, aber vermutlich kann man damit noch mehr machen. Aber "mda" in der fetchmailrc ist ja schon mal ein Hinweis.

Letztlich müßte man doch fetchmail dazu bringen, nicht an user@localhost bzw. user@localhost.mydomain.de sondern an user@exchange-domain.de zu adressieren. Ich vermute, dass das dein Plan mit dem Procmail-Rezept ist. Aber dazu kann ich nicht viel beitragen, weil ich weder procmail nutze noch das "mda" Kommando in fetchmailrc kenne.

Habe jetzt mail in meine Logs geschaut: Die fetchmail Mails landen wohl in der Form "to=user@localhost.meinedomain.de, orig-to=user@localhost" im MTA.
Ich vermute, dass der rewrite den Domainnamen vervollständigt. Vielleicht kann man da was drehen?
Oder aber man versucht mal, per Transport-Map "localhost.meinedomain.de" an den Exchangeserver zu relayen.

Aber nochmals, meine Aussagen sind nicht unbedingt so kompetent, vieleicht kommen ja noch andere Kommentare.

Greetz
Thomas

emwe
11.07.05, 10:09
Hallo,

wenn ich das richtig verstanden habe, sollte ein fetchmail (ohne postfix) genügen.
Du kannst fetchmail per option
--smtphost exchange.deinedomain.de anweisen, Mail an einen externen Host weiterzuleiten. Dann müßtest Du noch den user mit deiner internen Domain erweitern:
--smtpaddress deinedomain.de
Entsprechend muss dann in der fetchmailrc der user-part des Empfängers (ohne Domain) hinter am Ende der Zeile bei "is YYY here stehen".

Damit ergibt sich zusammengefasst in der fetchmailrc:

# XXX wird XXX@deinedomain.de
poll "pop.XXX.de" protocol pop3 user "XXX" pass "XXX" is "YYY" here;
# procmail wird nicht benutzt
# mda /usr/bin/procmail

Der Aufruf von fetchmail sollte zusätzlich die o. g. Parameter beinhalten:

fetchmail <options> --smtphost exchange.deinedomain.de --smtpaddress deinedomain.de

Somit kannst Du Dir sämtliche Konfiguration von procmail und postfix sparen.
Alternativ (z. B. wenn Du noch SpamAssassin oder amavisd-new einsetzen willst) kannst Du auch postfix installiert lassen und fetchmail auf den lokalen Rechner liefern lassen
(Option "--smtphost ..." auf "--smtphost postfix-server.deinedomain.de" anpassen) und das Relaying per Postfix betreiben.

Die reine fetchmail-Lösung sollte aber schneller und einfacher funktionieren.

Gruß,

emwe

Stiftmaster
12.07.05, 07:46
SUPER Anleitung. GAAAANZ herzlichen Dank. Lief auf Anhieb!!!

Die Mails kommen im Exchange an - endlich ist es vollbracht. In den nächsten Monaten werde ich mich mit der Spam und Viren-Problematik nochmal genauer befassen müssen. Dann wird das Konzept sehr wahrscheinlich noch ein bisschen modifiziert - aber vorerst bin ich mehr als zufrieden.

Vielen, vielen Dank

Stefan

tschloss
12.07.05, 08:45
Klasse - die Optionen von fetchmail kannte ich auch noch nicht!
(Schade, dass ich das Problem selbst nicht habe ;) )

Greetz
Thomas