Stopping the sending of an E-Mail

Beispielszenario

Eine E-Mail wurde mit einem Prozessschritt verknüpft und soll nach dem Absenden des Prozessschrittes versendet werden.
Bevor dies geschieht sollen jedoch einige Daten validiert werden, und unter Umständen der E-Mail Versand gestoppt werden.

Voraussetzungen

  1. Es existiert ein E-Mail Objekt, dass mit einem Prozessschritt verknüpft ist
  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/StopEMail.php
    • Klasse: StopEMail
    • Methode: validateAndStopEMail

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

Aus den übergebenen Sessiondaten wird die eingegebene E-Mailadresse des Users gelesen. Diese wird mittels der PHP eigenen Funktion filter_var validiert um im Fehlerfall den E-Mail Versand zu stoppen.
Dies wird durch das Kommand mail/stop erreicht.

  1. class StopEMail {
  2.  
  3. public function validateAndStopEMail($processId, $cur_stepid,
  4. $sessiondata, $mailparams) {
  5.  
  6. $processId = 3;
  7. $stepId = 14;
  8. $emailTextfieldId = 34;
  9.  
  10. // check if the user has entered a valid email address
  11. $emailAddress = $sessiondata[$processId][$stepId][$emailTextfieldId];
  12.  
  13. $command = array();
  14. // use the filter_var function to check the email address (since PHP 5.2.0)
  15. if (!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) {
  16. $command['mail']['stop'] = 1;
  17. }
  18.  
  19. // finally, return the command
  20. return array($command);
  21. }
  22. }
© 2017 Ososoft GmbH