Felix Riesterer: brauche PHP-Hilfe :-)

Beitrag lesen

Liebe(r) Passwort,

            if ($reply_to) {
                $this->mail->addReplyTo($reply_to, $from_name);
                $from_name = MAIL_FROM_NAME;

mit $this->mail greifst Du auf eine Instanz des PHPMailers zu, die in Deiner MailHelper-Klasse in der Eigenschaft mail hinterlegt ist. Folgerichtig verwendest Du dann deren addReplyTo()-Methode, um den passenden Header zu setzen.

Warum Du aber dann in der nächsten Zeile eine lokale Variable $from_name mit dem Inhalt der Konstanten MAIL_FROM_NAME befüllen must, verstehe ich nicht. Wozu genau brauchst Du eine lokale Variable mit fast gleichem Namen und identischem Wert, wenn Du stattdessen auch die Konstante verwenden könntest? Liegt das daran, dass Du vorübergehend einen vielleicht anderen Wert in $from_name abgelegt hast? Ich hätte nämlich folgende Zeile erwartet:

$this->mail->addReplyTo($reply_to, MAIL_FROM_NAME);

Oder verstehe ich Deine Konstanten noch falsch?

Und den Sendevorgang so:


                $mail->toAdmin(
                    subject: 'xxx',
                    body: 'yyy',
                    'Nachricht: ' . $message,   
                     from_name: $name, 
                     reply_to: $email  
                )->send();

Warum braucht es im toAdmin()-Aufruf den Parameter $from_name, wenn es eine Konstante MAIL_FROM_NAME gibt?

Das klappt jetzt auch so wie gewünscht mit dem Senden. Frage: Ist das konform zu envelope-from?

Wenn Du den entsprechenden Header im Quelltext der erhaltenen Mail findest, und wenn dessen Inhalt formal korrekt ist, dann ja. Diese Seite beschreibt (auf englisch) den Unterschied zwischen dem From-Header und dem X-Env-From-Header. Auch in der (deutschen) Wikipedia gibt es etwas zu Envelope Sender.

Liebe Grüße

Felix Riesterer