[Support] php cgi mail - errormessage an mich - nicht an httpd at h02.hostsharing.net

Paul Hink email at p-hink.de
Tue Dec 11 13:20:28 CET 2007


irene kühne <irene.kuehne at mued.de> wrote:

> > > Aber genau die autom. mails vom Server über eine nicht
> > > erreichbare email Adresse kommen nicht bei mir an. Einiges andere
> > > habe ich schon durchprobiert und es funktioniert (mit der
> > > php5.2.5 Version). Zum testen der Mailfunktion habe ich
> > > absichtlich einige falsche email Adressen angeschrieben und keine
> > > autom. mails vom Server bekommen.
> >
> > Wenn das versendende Script das Envelope-From nicht explizit setzt,
> > landen die beim Domainadmin.
> 
> Falls ich das richtig verstehe - diese Angaben (Envelope-From, ...)
> sind im php-script vorhanden und werden auch richtig als "Absender"
> und "Antwort an" angezeigt, wenn die mail richtig ankommt.
>
> From:user3 at example.com
> Reply-To:user3 at example.com

Es geht um das Envelope-From, nicht um den From-Header, das sind zwei
verschiedene Dinge!

> Aber das, was bei mir in Pegasus "Return-Path" heisst,

...heißt nicht nur in deinem Pegasus so, sondern überall, und enthält
genau das, um das es hier geht: das Envelope-From.

> wird trotzdem so (in den php-
> mails)
> Return-Path: <xyz00 at h02.hostsharing.net>
> und nicht so
> Return-Path: <xyz00-user3 at h02.hostsharing.net>
> angezeigt.

Dann wird das Envelope-From von dem PHP-Script offenbar nicht richtig
gesetzt.

> D.h. die Angabe des Wertes von Reply-To: aus dem script wird bei
> autom. Antworten auf unzustellbare mails ignoriert.

Das ist auch vollkommen korrekt so:

| 6.1 Reliable Delivery and Replies by Email
| 
|    When the receiver-SMTP accepts a piece of mail [...], it is
|    accepting responsibility for delivering or relaying the message.
|    [...] If there is a delivery failure after acceptance of a
|    message, the receiver-SMTP MUST formulate and mail a notification
|    message. [...] The recipient of this notification MUST be the
|    address from the envelope return path (or the Return-Path: line).

Quelle: RfC 2821

("envelope return path" und "Envelope-From" bezeichnen die gleichen
Dinge.)

> > Meine Hostmaster-Glaskugel ;-) sagt mir, dass du deine E-Mails
> > normalerweise nicht über den Domainadmin-Account abrufst und im
> > ~/Maildir/ des Domainadmins ein paar Bounces liegen.
> 
> Richtig, dort liegen sie - und sie mussten ja eigentlich auch dort
> liegen, da bei den php- Testmails an mich selber als
> Return-Path: <xyz00 at h02.hostsharing.net>
> angegeben war.

Okay, auch das bestätigt den Verdacht, dass das Envelope-From falsch
gesetzt wird.

> Aber ich bekam diese mails nicht an die angegebene interne Adresse
> zugestellt.
> In der aliases steht:
> xyz00:	user3 at domain.de
> Ich kann diese mails natürlich direkt unter xyz00 abrufen, aber
> eigentlich sollte der Eintrag bei aliases doch funktionieren.

Richtig, das heißt also, wir haben es mit zwei getrennten Problemen zu
tun:

- Das PHP-Script setzt das Envelope-From nicht so wie es sollte.
- Die ~/etc/aliases-Einträge bewirken nicht das, was sie sollen.

> Das Problem mit aliases besteht übrigens schon länger und ich hatte
> die Benutzung eingestellt und in virtusertable
> postmaster at example.com   externe.emailadresse at woanders.de
> eingetragen - und keinen Eintrag mehr in der aliases drin, weil es
> nur Fehlermeldungen gab.

Was für Fehlermeldungen? Unseren Logfiles ist zu entnehmen, dass die
~/etc/aliases-Datei in letzter Zeit mehrfach geändert wurde, so dass
wir zum Prüfen genaue Informationen bräuchten, welche Aliases-Einträge
welche Probleme verursacht haben.

> Vermutlich muss das Problem mit ~/etc/aliases geregelt werden und
> dann funktioniert auch der Versand der Fehlermails an meine
> angegebene Adresse.

An die in der ~/etc/aliases angegebene Adresse, ja.

> [...]

> > Üblicher dürfte der Weg über das additional_parameters-Argument der
> > PHP-mail-Funktion sein:
> > http://www.php.net/manual/en/function.mail.php
> 
> S.o. - soweit ich geforscht habe, funktioniert dieser Weg nicht.

Wie sieht denn der mail()-Aufruf im fraglichen Script genau aus?

Paul


More information about the Support mailing list