Der Befehl replace_sender() verändert den Absender einer E-Mail.
Dieser Befehl ersetzt den ursprünglichen Absender einer E-Mail - je nach verwendeten Parametern - im Envelope beziehungsweise Header.
Aufbau des Befehls
replace_sender(['old_sender',]'new_sender', ['only_envelope']);
Rückgabewert
positiv |
immer |
Parameter
new_sender
Neue E-Mail Adresse (als String), wenn dies der einzige gesetzte Parameter ist. Es wird nur der Envelope der E-Mail behandelt.
Andernfalls können auch Teile ersetzt werden. Dies impliziert jedoch das Verwenden von Regulären Ausdrücken und des Parameters old_sender.
Variablen verfügbar!
old_sender (optional)
Regulärer Ausdruck der die ursprüngliche E-Mail Adresse oder Teile davon beschreibt.
only_envelope (nur bei Verwenden des Parameters old_sender möglich)
Im Standard wird bei Verwenden des Parameters old_sender zusätzlich zum Envelope auch der FROM-, REPLY-TO- sowie SENDER-Header der E-Mail geändert. Mit dem Setzen (1) dieses Parameters wird das Ändern des FROM-Headers unterdrückt
Mögliche Werte
•true, yes oder 1
•false, no oder 0
Standardeinstellung ist 0
Beispiel 1
Zeile |
Code |
|---|---|
01 |
replace_sender('support@customer.tld'); |
Erklärung
In diesem Beispiel wird der ursprüngliche Sender der E-Mail im Envelope durch den Sender «support@customer.tld» ersetzt.
Wäre beispielsweise der ursprünglich Sender der E-Mail «admin@customer.com ", so würde dieser entfernt und durch den neuen Empfänger (new_sender) «support@customer.com» ersetzt.
Beispiel 2
Zeile |
Code |
|---|---|
01 |
replace_sender('@mydomain\.com','@customer.tld'); |
Erklärung
In diesem Beispiel wird im Parameter old_sender der Domain-Anteil der ursprünglichen E-Mail Adresse des Senders von '@mydomain.com' in den Wert des Parameters new_sender '@customer.tld', sowohl im Envelope, als auch in den Headern geändert. Der Bestandteil der E-Mail Adresse vor dem '@' bleibt dabei unverändert.
Beispiel 3
Zeile |
Code |
|---|---|
01 |
replace_sender('(@.*)(\.waste\.tld$)','$1',1); |
Erklärung
In diesem komplexeren Beispiel wird der Sender einer E-Mail nur dann geändert, wenn dessen E-Mail Adresse mit .waste.tld endet. Das $ Zeichen am Ende des Ausdrucks bedeutet, dass in der untersuchten E-Mail Adresse nach .waste.tld keine weiteren Zeichen folgen dürfen. Der komplette Teil der E-Mail Adresse, welcher sich vor der Endung .waste.tld befindet wird durch den Ausdruck @.* definiert und durch den Einschluss in Klammern () abgegrenzt, um ihn als Variable $1 im Parameter new_recipient zu verwenden.
Das heisst, mit dem genannten Beispiel wird von E-Mail Adressen, welche auf .waste.tld enden, eben dieses abgeschnitten.
Somit würde beispielsweise die ursprüngliche Absender Adresse «test@customer.tld.waste.tld» durch «test@customer.tld» ersetzt. Da zusätzlich der Parameter only_envelope auf 1 gesetzt wurde, würde diese Änderung ausschliesslich den Envelope der E-Mail, nicht jedoch den FROM-Header betreffen.