Ich habe es getestet und eine funktionierende Lösung gefunden.
Kurzfassung:
Neben replyToEmail
muss auch replyToName
zwingend definiert werden, damit die Überschreibung funktioniert.
Lange Fassung:
Die Folgende Konfiguration habe ich verwendet:
TSconfig (wie in der Dokumentation):
tx_powermail.flexForm.predefinedReceivers.addFieldOptions.receivers1 = receivers #1
Diesen Abschnitt hattest du in deinem TSconfig bereits hinterlegt. Ich selbst musste jedoch erst noch heraus finden, dass die Angabe eines solchen "Predefined Receivers"-Eintrages in TSconfig (hier unter dem frei definierbaren Schlüssel receivers1
) sowie die anschließende Auswahl in den Plugin Einstellungen Voraussetzung für die dynamische Konfiguration der Empfänger E-Mail Adresse ist.
Plugin-Einstellungen:
Hier habe ich, entsprechend der Dokumentation, über das Hilfsobjekt lib.receiverName
(per cObject-ViewHelper eingebunden) ergänzend die Möglichkeit geschaffen, den Namen des Empfängers dynamisch setzen zu lassen.
Dies ist im Rahmen der Konfiguration des dynamischen Empfängers zwar nicht unbedingt erforderlich aber, wie ich finde, sinnvoll. Andernfalls würde immer der gleiche Empfänger-Name bei variierenden Empfänger E-Mail Adressen verwendet werden.
Außerdem können wir dieses Hilfsobjekt später auch im Rahmen der Reply-To Konfiguration wiederverwenden.
Spoiler: Dort ist die Angabe eines Namens sogar Voraussetzung!
TypoScript Setup des lib
-Hilfsobjektes für die dynamische E-Mail-Adresse des Empfängers:
lib.receiverEmail = CASE
lib.receiverEmail {
key.data = GP:tx_powermail_pi1|field|abteilung
2 = TEXT
2.value = adresse2@domain.de
3 = TEXT
3.value = adresse3@domain.de
default = TEXT
default.value = info@domain.de
}
Anmerkung:
Wert 1
kann man weg lassen, da er identisch zu default
ist.
So spart man sich die doppelte Konfiguration.
TypoScript Setup des lib
-Hilfsobjektes für den dynamischen Namen des Empfängers (auf Basis lib.receiverEmail
):
lib.receiverName =< lib.receiverEmail
lib.receiverName {
2.value = Adresse 2
3.value = Adresse 3
default.value = Info Domain
}
TypoScript Setup der finalen Powermail-Einstellungen unter Nutzung der o.g. Hilfsobjekte:
plugin.tx_powermail.settings.setup.receiver {
predefinedReceiver {
receivers1.email =< lib.receiverEmail
}
overwrite {
replyToEmail =< lib.receiverEmail
replyToName =< lib.receiverName
}
}
In den Hilfsobjekten kannst du nun zentral deine Empfänger/Reply-To Kandidaten ohne Dopplungen konfigurieren.
Wie konnte ich das nun lösen?
Die Lösung hast du nun aber wie bin ich überhaupt selbst darauf gekommen, dass die Angabe von replyToName
in Powermail zwingende Voraussetzung ist? Ich habe den Powermail-Code Datei-übergreifend durchsucht nach replyToEmail
und bin auf zwei Stellen gestoßen, die mir diese Information gegeben haben.
1) In der Definition der Konstanten in Datei vendor/in2code/powermail/Configuration/TypoScript/Main/Configuration/04_MailSender.typoscript
steht ein entsprechender Hinweis "both required" im Kommentar:
# Reply address (both required)
replyToEmail = TEXT
replyToEmail.value = {$plugin.tx_powermail.settings.sender.overwrite.replyToEmail}
replyToName = TEXT
replyToName.value = {$plugin.tx_powermail.settings.sender.overwrite.replyToName}
2) In der zuständigen Service-Klasse in PHP vendor/in2code/powermail/Classes/Domain/Service/Mail/SendMailService.php
kann man die Bedingung auch sehen (sowohl im Kommentar als auch im if
-Block):
/**
* Add reply addresses if replyToEmail and replyToName isset
*
* @param MailMessage $message
* @return MailMessage
*/
protected function addReplyAddresses(MailMessage $message): MailMessage
{
$replyToEmail = ObjectUtility::getContentObject()->cObjGetSingle(
$this->overwriteConfig['replyToEmail']??'',
$this->overwriteConfig['replyToEmail.']??[]
);
$replyToName = ObjectUtility::getContentObject()->cObjGetSingle(
$this->overwriteConfig['replyToName']??'',
$this->overwriteConfig['replyToName.']??[]
);
if (!empty($replyToEmail) && !empty($replyToName)) {
$message->setReplyTo([$replyToEmail => $replyToName]);
}
return $message;
}
Rückfrage zu deiner Anforderung
Noch eine Frage hätte ich bezüglich deiner Anforderung. Warum möchtest du überhaupt, dass Empfänger und Reply-To identisch sind?
Wenn der Empfänger nun auf "Antworten" in seinem Mailprogramm klick sendet er doch eine Mail an sich selbst. War das wirklich so beabsichtigt?