postfix schickt Mails an sich selbst

s24!

Registered User
Guten Abend mal wieder,

im Prinzip hab ich nur eine kleine Frage, zum Verständnis erläutere ich das aber noch.
Mithilfe von Froxlor verwalten wir Web- und Mailaccounts. Beim Anlegen einer Domain kann man dieser auch die Mail-"Freigabe" mitgeben, sodass der User wenn er denn möchte einfach unseren MX eintragen kann und wir nichts weiter tun müssen, sofern E-Mails auch für seinen Account aktiviert sind.

Dieses Faulheitsfeature bringt aber ein Problem mit sich, nämlich genau dann, wenn es nicht genutzt wird. Im Klartext: Wenn der User seine Mails gar nicht über uns empfangen will, aber eine "E-Mail-Domain" bei uns hat (die grundsätzlich erstmal nur den Webspace erreichbar macht), sendet postfix an sich selber, er fühlt sich für die Domain zuständig.
Das Problem existiert demnach schon länger (immer), ist aber nie aufgefallen. Entweder war die Kontaktadresse des Users nicht @seine-domain.tld oder die Person hat Mails bei uns genutzt, teilweise waren auch einfach die MX-Records nicht auf den "gewollten" Mailserver geändert worden und die Mails gingen an den A-Record (was wir sind, wegen Webspace).
Heute konnte ich dann nichts davon feststellen und suchte. Lange suchen musste ich nicht; ich wusste nach welchem Kriterium postfix da handelte.
Die Lösung scheint in der mysql-virtual_mailbox_domains.cf zu liegen:

Code:
user = syscp
password = ******
dbname = syscp
table = panel_domains
select_field = domain
where_field = domain
[B]additional_conditions = and isemaildomain = '1'[/B]
hosts = 127.0.0.1

Meinem Verständnis nach erspart diese Datei nur einen nslookup bei Mails, die tatsächlich wieder an postfix gehen. Demnach könnte ich sie löschen oder die "hosts"-Zeile auskommentieren.
Das vermute ich - daher frage ich euch: Ist es so einfach wie ich denke, oder wird's jetzt schwierig? ;)


Vielen Dank schonmal!
PS: Mir kommt gerade eine Frage. Gehört der MX-Record nur zur domain.tld oder auch zur www.domain.tld?


Grüße
 
Postfix muß wissen, für welche Domains er selbst zuständig ist. Das wird durch eine SQL-Abfrage auf die Domain-Tabelle vermutlich von Froxlor gemacht. Diese enthält ein zusätzliches Flag, ob die Domain auch für Mails genutzt wird (das isemaildomain = '1').
Entfernst du diese Zeile, wird sich Postfix vermutlich für ALLE Domains zuständig fühlen.
Ist Postfix nicht für eine Domain zuständig, fragt es den MX bzw. den A-Record für die Domain ab und schickt die Mail dann dort hin. Der MX darf aber die Mail nicht wieder zurück verweisen, denn dein Postfix kann das mit diesen Mails ja nichts anfangen.
Ein MX-Record gilt übrigens immer für die Domain, für die er stellt wurde, nicht für die Subdomains (letzteres könnte man möglicherweise über einen Wildcard erschlagen)
 
Postfix muß wissen, für welche Domains er selbst zuständig ist. Das wird durch eine SQL-Abfrage auf die Domain-Tabelle vermutlich von Froxlor gemacht. Diese enthält ein zusätzliches Flag, ob die Domain auch für Mails genutzt wird (das isemaildomain = '1').
Entfernst du diese Zeile, wird sich Postfix vermutlich für ALLE Domains zuständig fühlen.

Wie er das macht, war mir schon klar - die Situation bin ich ja nur Nachvollziehung einmal "durchgegangen".
Ich möchte nicht die Zeile mit "isemaildomain = 1" entfernen, sondern die mit dem "host". Eventuell könnte man auch ein "isemaildomain = 2" setzen? Das wäre ja nie der Fall, somit:

fragt es [dann] den MX bzw. den A-Record für die Domain ab und schickt die Mail dann dort hin.

Das wäre doch super - oder nicht? Falls er doch zuständig ist, kriegt er das durch den nslookup auch raus.
Und abweisen sollte er die ja nicht - oder?

Ein MX-Record gilt übrigens immer für die Domain, für die er stellt wurde, nicht für die Subdomains (letzteres könnte man möglicherweise über einen Wildcard erschlagen)

Okay - sende ich also eine Mail an mail@www.domain.de, sieht der Mailserver nach dem MX zu www.domain.de, nicht nach dem MX zu domain.de - danke!
Wildcard ist gesetzt. Ich dachte nur, dass das vielleicht "falsch" wäre, wer sendet schon an mail@www.domain.de? :D


Liebe Grüße
 
Ich möchte nicht die Zeile mit "isemaildomain = 1" entfernen, sondern die mit dem "host". Eventuell könnte man auch ein "isemaildomain = 2" setzen?

Nein, Postfix macht eine SQL-Abfrage auf die Tabelle panel_domains in der Datenbank syscp für die Spalte domains, aber nur die Zeilen, wo in der Spalte isemaildomain eine 1 steht. Diese 1 wird denke ich Froxlor dort eintragen, wenn ein Haken gesetzt ist, daß diese Domain auch Mails empfangen kann. Die Zeile host bezieht sich IIRC auf den Server, auf dem die MySQL-Datenbank läuft, in deinem Fall 127.0.0.1, als auf der gleichen Maschine.

Das wäre doch super - oder nicht? Falls er doch zuständig ist, kriegt er das durch den nslookup auch raus.

Nein. Postfix ermittelt rein anhand seiner Konfig, für welche Domains er zuständig ist (also in deinem Fall über die SQL-Abfrage) und das ist auch gut so.
Postfix macht einen Lookup auf dem Nameserver, sobald es nicht selber für die Domain zuständig ist (und wird dadurch auch nicht doch noch für die Mail zuständig).

Okay - sende ich also eine Mail an mail@www.domain.de, sieht der Mailserver nach dem MX zu www.domain.de, nicht nach dem MX zu domain.de - danke!

Wenn es keinen MX für eine Domain gibt, wird als nächstes versucht, den A-Eintrag für die Domain aufzulösen und die Mail bei dieser IP zuzustellen. Das bedeutet, daß mail@www.domain.de auch ohne MX zustellbar sein kann, wenn auf dem Server ein SMTP-Dienst läuft, der sich für www.domain.de zuständig fühlt und für die Domain ein Postfach mail konfiguriert hat.
 
Hm - postfix nimmt also nur Mails an für Domains, die auch als E-Mail-Domain deklariert sind und daran ist nichts zu rütteln - richtig?

Dann frage ich mich, wie man das überhaupt einfach lösen kann... Ideen?
 
Ich nutze kein Froxlor, daher kann ich nur vermuten: Die Domains in Froxlor so anlegen, daß sie nur für Webspace verwendet werden? Und wenn der User euch mitteilt, daß er auch Mails über euren Server nutzen will, schaltet ihr auch die Mail-Features frei? Für irgendwas muß ja das Flag "isemaildomain" in der SQL-Datenbank sein, welches das in der Postfix-Konfig als zusätzliche Bedingung abgefragt wird.
 
Diese Form der Lösung ist mir klar - aber aus Faulheit will ich das nicht. :D
Aber gut, werden wir dann erstmal so machen. In nächster Zeit patchen wir dann einfach Froxlor so, dass das Flag erst gesetzt wird, wenn auch eine Mailadresse mit der Domain verknüpft worden ist. ^^

Besten Dank!
 
Back
Top