Mails versenden von anderem Server als "MX" im DNS

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Mails versenden von anderem Server als "MX" im DNS

Post by andreask2 » 2004-11-04 13:19

Hallo!

Ich habe mal eine Frage an die Leute unter Euch, die etwas praktische Erfahrung im Betrieb von Mailservern haben.

Ich habe eine Web-Anwendung, die "System-Mails" verschickt, vergleichbar mit diesem Forum "eine Antwort auf Ihren Beitrag ist eingegangen".

Hierzu habe ich einen Postfix-Mailserver installiert, der allerdings nur über localhost erreichbar ist, und entsprechende Mails vom Apachen (PHP) versendet.

Die Webanwendung hat z.B. die URL: server2.example.com

Die Domain wird allerdings bei einem anderen Provider gehostet, der z.B. www.example.com bearbeitet, und auch die Emails an @example.com, damit spare ich mir, selber den "richtigen" Mailserver betreiben zu müssen.

Wenn also server2.example.com (also der Apache-User: "apache") Systemmails verschickt, dann schreibt Postfix folgendes als Absender:

apache@server2.example.com.

Für server2.example.com gibt es allerdings weder einen MX-Eintrag, noch läuft dort ein Mails-Server, der Mails von außen entgegennehmen kann.

Daher bediene ich mich der folgenden Header:

Code: Select all

Reply-To: server@example.com
Errors-To: server@example.com
Allerdings ist es mir bereits passiert, dass bei nicht erfolgreich zugestellter mail leider niemand benachrichtigt wurde. Eigentlich sollte server@example.com ja dann eine mail erhalten. Jetzt frage ich mich, ob es tatsächlich ein Problem sein kann, wenn man in den Headern einen anderen Server angibt (example.com an Stelle von server2.example.com, wo die mail ja eigentlich herkam)?

Andersherum hatte ich mit dem Gedanken gespielt, in Postfix einfach den Domainnamen für Absender-Adressen zu verwenden, das hieße, die mails kämen dann nicht mehr von apache@server2.example.com, sondern von apache@example.com. Wobei die IP von der diese Mail gesendt wird nicht mehr mit der IP von example.com (gemäß DNS) überinstimmt, wo ich dann wiederum Angst habe, dass mir Spam-Filter dazwischenfunken.
Auch wird es für mich schwieriger nachzuvollziehen, woher die Mail denn letztendlich kam. Oder ich definiere einen Alias apache -> server@example.com für Postfix?

Wie macht Ihr sowas, was würdet Ihr empfehlen?


Viele Grüße
Andreas

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Mails versenden von anderem Server als "MX" im DNS

Post by dodolin » 2004-11-04 14:52

Allerdings ist es mir bereits passiert, dass bei nicht erfolgreich zugestellter mail leider niemand benachrichtigt wurde.
Völlig korrekt.

http://www.google.de/search?q=errors%2D ... r+mail+rfc

http://php3.de/manual/de/function.mail.php
Another followup to the 5th parameter and Return-Path. In an earlier note it was quoted from the man pages of sendmail, that if the Errors-To header is sent, then it will be used as Return-Path instead of the -f parameters value.

That did not work for me...

The Errors-To header seems obsolete... The Return-Path will only work (for me) when set by the 5th parameter as "-f$EMAIL_FROM". Otherwise it'll try to return errors to nobody@$server.
http://rfc.net/rfc2076.html

Dort steht zu Errors-To: Non-standard, discouraged. Usw.
Wie macht Ihr sowas, was würdet Ihr empfehlen?
Einen gültigen Return-Path benutzen, bei dem Fehlermails auch ankommen können und zusätzlich noch gelesen werden.

In PHP mail() kann man diesen mit -f setzen, siehe auch http://www.php-faq.de/q/q-mail-absender.html
Andersherum hatte ich mit dem Gedanken gespielt, in Postfix einfach den Domainnamen für Absender-Adressen zu verwenden, das hieße, die mails kämen dann nicht mehr von apache@server2.example.com, sondern von apache@example.com. Wobei die IP von der diese Mail gesendt wird nicht mehr mit der IP von example.com (gemäß DNS) überinstimmt, wo ich dann wiederum Angst habe, dass mir Spam-Filter dazwischenfunken.
Solche Spamfilter sind idiotisch, darauf sollte man keine Rücksicht nehmen. Wenn du willst, könntest du ja einen entsprechenden SPF-Record für example.com setzen. Dieses Vorgehen (apache@example.com) halte ich auch für das beste in deinem Fall.

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: Mails versenden von anderem Server als "MX" im DNS

Post by andreask2 » 2004-11-04 15:22

Vielen Dank für die Infos, dass Errors-To nicht benutzt werden soll wusste ich gar nicht. Aber es hat glaube ich nichts damit zu tun, dass die Fehler-Mails nicht angekommen sind. Hab grad mal ein bisschen rumprobiert, und es sieht so aus, dass wenn ein Local-Part einer Email-Adresse nicht existiert, dass die meisten Server das direkt bei der SMTP-Kommunikation mit meinem Postfix bekannt geben, so dass dieser seine Fehlermeldung an den Benutzer sendet, der die Email verschicken wollte, in meinem Fall apache@server2.example.com, nur das der natürlich kein Email-Konto hat. Allerdings hat Postfix gar nicht versucht eine Email dahin zu schicken, zumindest sehe ich nichts in den Logs. Aber bei meinen Versuchen gerade habe ich unter einem Benutzeraccount mit Mailkonto gearbeitet, und der hat entsprechende Fehler-Mails erhalten.

Wenn ich jetzt einen Alias für Apache einsetze, dann müssten die Fehlermails doch eigentlich so oder so auf diesem Alias-Konto ankommen, oder? Funktioniert zumindest bei meinem aktuellen Systembenutzer.

Ein anders Problem ist, wenn ein Fehler evtl. später passiert, das heißt, wenn der Mail-Server der Gegenseite die Mail erstmal entgegengenommen hat, dann würde es wohl an die falsche/nicht vorhandene Adresse gehen, wenn ein fremder Mail-Server versucht dem Apachen eine Mail zu senden.

Den 5. Parameter in mail() kann ich leider nicht verwenden, weil ich mit der PEAR::Mime_Mail Klasse arbeite, und ich diesbezüglich AFAIK keine Möglichkeit habe. Auf der anderen Seite hätte ich damit aber die Mögichkeit, den externen Mail-Server des Providers zu nutzen, via SMTP-Auth. Allerdings mache ich mich damit abhängig von einem 2. Rechner/Netzwerk. Hm.

Ignorieren bzgl. des Spam-Problems ist nicht so einfach, denn dafür hat kein "normaler Mensch" Verständnis, denke ich.

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Mails versenden von anderem Server als "MX" im DNS

Post by dodolin » 2004-11-04 15:48

Wenn ich jetzt einen Alias für Apache einsetze, dann müssten die Fehlermails doch eigentlich so oder so auf diesem Alias-Konto ankommen, oder?
Solange für server2.example.com kein MX Eintrag existiert und auf dem A Eintrag kein extern erreichbarer MTA läuft, bringt das alles nix.

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: Mails versenden von anderem Server als "MX" im DNS

Post by andreask2 » 2004-11-09 14:04

Ich hatte mich vertan, man kann doch per PEAR::Mail den 5. Parameter an mail übergeben. Somit kann ich jetzt frei eine andere Adresse angeben. Wunderbar! Hat im Prinzip denselben Effekt als wenn ich "myorigin" auf "$mydomain" setzen würde, mit dem netten Nebeneffekt, dass ich sogar noch den local-part selber bestimmen kann.

Es wurde noch bemerkt, dass evtl. ein 'X-Warning'-Header angehängt würde, ich hab jetzt keinen gesehen, muss aber noch mal eine mail vom webserver aus schicken. Ist das auch ein Problem bei Postfix?

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Mails versenden von anderem Server als "MX" im DNS

Post by dodolin » 2004-11-09 15:14

X-Authentication-Warning: Header kann man meist umgehen, indem man den entsprechenden User als "trusted" deklariert. Aber nicht alle MTA schreiben überhaupt so eine Warnung per Default in die Header, AFAIK.