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
- Es existiert ein E-Mail Objekt, dass mit einem Prozessschritt verknüpft ist
- Ein Businesslogik Objekt vom Typ "Ausführen bevor eine E-Mail versendet wird" wurde angelegt
- 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.
class StopEMail { public function validateAndStopEMail($processId, $cur_stepid, $sessiondata, $mailparams) { $processId = 3; $stepId = 14; $emailTextfieldId = 34; // check if the user has entered a valid email address $emailAddress = $sessiondata[$processId][$stepId][$emailTextfieldId]; // use the filter_var function to check the email address (since PHP 5.2.0) if (!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) { $command['mail']['stop'] = 1; } // finally, return the command } }

