Dynamic attachments to E-Mails

Beispielszenario

An eine E-Mail soll per Businesslogik ein benutzerspezifischer Anhang gehängt werden.

Voraussetzungen

  1. Ein Businesslogik Objekt vom Typ "Ausführen bevor eine E-Mail versendet wird" wurde angelegt
  2. 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.

  1. class DynamicAttachment {
  2.  
  3. public function createDynamicAttachment($processId, $cur_stepid,
  4. $sessiondata, $mailparams) {
  5.  
  6. $processId = 3;
  7. $stepId = 14;
  8. $forenameFieldId = 56;
  9. $lastnameFieldId = 57;
  10.  
  11. // get the user informations
  12. $forename = $sessiondata[$processId][$stepId][$forenameFieldId];
  13. $lastname = $sessiondata[$processId][$stepId][$lastnameFieldId];
  14.  
  15. // create a special personalized PDF
  16. $pdfPath = $this->magicMethodThatCreatesThePDF($forename, $lastname);
  17.  
  18. // alter the mail params and add our attachment
  19. $mailparams['attachments'][] = $pdfPath;
  20.  
  21. // create the command that changes the mail params
  22. $command = array();
  23. $command['mail']['replaceMailParams'] = $mailparams;
  24.  
  25. return array($command);
  26. }
  27. }
© 2017 Ososoft GmbH