Dynamic attachments to E-Mails
Beispielszenario
An eine E-Mail soll per Businesslogik ein benutzerspezifischer Anhang gehängt werden.
Voraussetzungen
- 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/DynamicAttachment.php
- Klasse: DynamicAttachment
- Methode: createDynamicAttachment
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.
class DynamicAttachment { public function createDynamicAttachment($processId, $cur_stepid, $sessiondata, $mailparams) { $processId = 3; $stepId = 14; $forenameFieldId = 56; $lastnameFieldId = 57; // get the user informations $forename = $sessiondata[$processId][$stepId][$forenameFieldId]; $lastname = $sessiondata[$processId][$stepId][$lastnameFieldId]; // create a special personalized PDF $pdfPath = $this->magicMethodThatCreatesThePDF($forename, $lastname); // alter the mail params and add our attachment $mailparams['attachments'][] = $pdfPath; // create the command that changes the mail params $command['mail']['replaceMailParams'] = $mailparams; } }

