PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Webserver-UserID in Mails per Formmailer führt zu Fehlern



Supernature
21.04.05, 20:22
Ich habe auf einem Linux-Server Postfix im Einsatz, dass soweit auch problemlos funktioniert.
Probleme macht mir allerdings ein Formular-Mailer, wo man Namen, Absenderadresse und einen Text eingibt, der dann als Mail an eine im Script hinterlegte Adresse gesendet wird.
Die Empfängeradresse ist webmaster@supernature-forum.de
Wird über das Formular ein Mail verschickt, dann kommt es mit folgender Fehlermeldung zurück:

<webmaster@supernature-forum.de>: host mail.supernature-forum.de[85.88.1.63] said: 553 5.5.4 <wwwrun>...
Domain name required for sender address wwwrun (in reply to MAIL FROM command)

"wwwrun" ist der Benutzername, unter dem der Webserver läuft. Das sieht also erstmal so aus, als würde nicht die im Formular verwendete Adresse als Absender verwendet werden, sondern der Benutzername.
Im Header finde ich folgende Zeile:

Received: by wohlfuehlhost.de (Postfix, from userid 30)id 7AAD8808CC3; Thu, 21 Apr 2005 20:14:49 +0200 (CEST)

Userid 30 ist wwwrun, das passt also zusammen.

Ich vermute mal, genau das ist das Problem. Bei meinem anderen Server, den ich "ready to run" übernommen habe, steht da stattdessen "nobody@localhost" drin - ich hab nur leider keine Ahnung, woher das übernommen wird, ausserdem läuft dort sendmail.

Ich habe dann mal testweise die Empfängeradresse im Script auf meinen Gmail-Account geändert - und da funktionierte es, die Mail kam an und als Absender war die Adresse eingetragen, die ich im Formular verwendet hatte.

Am Script selbst liegt es nicht, denn ich habe aus einer anderen Web-Anwendung heraus ein Mail verschickt, mit dem selben Ergebnis.
Es muss also entweder am Apache oder an Postfix bzw. deren Konfig liegen.

Welche Stellschraube muss ich drehen, damit anstelle von "wwwrun" eine syntaktisch gültige Mailadresse steht?

Supernature
22.04.05, 07:48
Ich habs rausgefunden :)
In der main.cf von postfix gab es eine Option

append_at_myorigin = no

Wenn man diese auf "yes" ändert oder die Zeile einfach löscht, dann wird der Domainname aus "myorigin" an den Benutzernamen angehängt, und die Mail wird erfolgreich zugestellt.

War zwar jetzt ein Selbstgespräch, aber vielleicht hilft es ja mal jemand anderem hier.

Supernature
09.05.05, 16:25
Dieses Thema hat mich leider wieder eingeholt.
Auf dem Server laufen mehrere Domains, und somit gibt es eine mehr oder minder umfangreiche "virtual"-Datei - allerdings griffen die Regeln dort nur für die "Hauptdomain" (myorigin), der Rest ging immer ins Leere.
Über das Logfile habe ich herausgefunden, dass bei jeder eingehenden Mail die Empfängeradresse umgeschrieben wird, und zwar in die, die unter $myorigin hinterlegt ist.
Erst nachdem ich die oben erwähnte Option append_at_myorigin = no wieder eingefügt habe, hat es funktioniert. Nun habe ich aber wieder das andere Problem, dass ich keine Mails per Script verschicken kann, denn es fehlt ja nun wieder der Domainname.
Ist mir überhaupt ein Rätsel, warum die Option ein Überschreiben der Adresse bei eingehenden Mails bewirkt.
Wer kann mir denn weiterhelfen, damit beides so funktioniert, wie ich es gerne möchte?

Supernature
10.05.05, 10:40
Ich hoffe, meine Selbstgespräche langweilen nicht zu sehr :D
Ich habe das Problem nun mittels einer kanonischen Absenderverknüpfung wwwrun -> webmaster@meinedomain.de gelöst.
Somit kann ich die Maskierung abgeschaltet lassen.
Es funktioniert jetzt, ob es die eleganteste Lösung ist, weiss ich natürlich nicht. Sofern doch noch jemand einen besseren Tipp hat, nehme ich ihn gerne entgegen ;).