Deine MailHelper-Klasse verwendet den PHPMailer. Den kann man auch direkt nutzen und der könnte dann auch das, was Du brauchst.
Ok, gut zu wissen :-)
Warum die MailHelper-Klasse?
Ganz einfach: Weil der Programmierer das so gemacht hat 😉 Ich hatte mir mal vorgenommen, vieles zu vereinfachen, bin aber nicht dazu gekommen.
Woher kommen die im Code gezeigten Konstanten wie
MAIL_FROM_ADDRESSoderMAIL_FROM_NAME?
Sind globale Variablen, die in einer Configdatei deklariert sind. Es ist mein Name und die Adresse für das Senden der Nachricht.
Ich habe das jetzt aufgrund Hinweisen so gelöst: die Mailhelper habe ich so geändert:
public function handleMail(string $subject,
string $body,
string $to_address,
string $to_name,
string $from_address,
string $from_name,
?string $reply_to = null): PHPMailer
...
if ($reply_to) {
$this->mail->addReplyTo($reply_to, $from_name);
$from_name = MAIL_FROM_NAME;
...
public function toAdmin(string $subject,
string $body,
?string $from_address = null,
?string $from_name = null,
?string $reply_to = null): PHPMailer
...
return $this->handleMail(
subject: $subject,
body: $body,
to_address: MAIL_TO_ADDRESS,
to_name: MAIL_TO_ADDRESS_NAME,
from_address: $from_address,
from_name: $from_name,
reply_to: $reply_to
);
Und den Sendevorgang so:
$mail->toAdmin(
subject: 'xxx',
body: 'yyy',
'Nachricht: ' . $message,
from_name: $name,
reply_to: $email
)->send();
Das klappt jetzt auch so wie gewünscht mit dem Senden. Frage: Ist das konform zu envelope-from?