Change E-Mail data or text

Beispielszenario

Vor dem Abschicken einer E-Mail soll der Mailtext bearbeitet werden. Hier sollen Marker für die IP Adresse des Users sowie die aktuelle Uhrzeit eingesetzt werden.

Voraussetzungen

  1. Es existiert ein E-Mail Objekt, in dessen Mailtext Marker vorhanden sind
  2. Ein Businesslogik Objekt vom Typ "Ausführen bevor eine E-Mail versendet wird" wurde angelegt
  3. Folgende Daten sind dort hinterlegt:
    • Pfad: z.b. fileadmin/example/ChangeMailParams.php
    • Klasse: ChangeMailParams
    • Methode: changeMailParams

Die Quellcodedatei kann hier heruntergeladen werden: Download (Wichtig: die Datei muss in den im Businesslogik Objekt angegebenen Pfad kopiert werden)

Aus den übergebenen Mailparametern wird der Mailtext ausgelesen. In dem Mailtext werden daraufhin die Marker ###IP### und ###DATE### ersetzt. Mit dem Kommando mail/replaceMailParams werden die geänderten Mailparamer zurück an positionIt übergeben.

Neben dem Mailtext können natürlich auch sämtliche anderen Mailparameter vor dem Versenden bearbeitet werden.

  1. class ChangeMailParams {
  2.  
  3. public function changeMailParams($processId, $cur_stepid,
  4. $sessiondata, $mailparams) {
  5.  
  6. // use the $mailparams to retrieve the mail body text
  7. $bodyText = $mailparams['body'];
  8.  
  9. // replace the IP marker
  10. $bodyText = preg_replace('/###IP###/', $_SERVER['REMOTE_ADDR'], $bodyText);
  11.  
  12. // replace the Date marker
  13. $currentDate = date('j.F Y');
  14. $bodyText = preg_replace('/###DATE###/', $currentDate, $bodyText);
  15.  
  16. // set the new body text
  17. $mailparams['body'] = $bodyText;
  18.  
  19. // use the replaceMailParams command
  20. $command = array();
  21. $command['mail']['replaceMailParams'] = $mailparams;
  22.  
  23. // finally, return the command
  24. return array($command);
  25. }
  26. }
© 2017 Ososoft GmbH