Skip to main content

Versenden einer Email nach der Validierung

Es ist möglich nach der Validierung eine Email zu versenden. 
Hier ein Beispiel wie dieser Versand realisiert werden kann:

<?php

// ========================================================
// UserExit after Validation
// ========================================================

use Squeeze\SqueezeConfig;
use Squeeze\xTools;

function AfterValidation(\Squeeze\xDoc $xDoc, $nextStep, $newStatus){

    // Optional ein Logger Objekt erzeugen
    $logger = Logger::getLogger("main");

    // Initialisierung der Emailparameter
    $subject = 'Test after Validation'; // Betreff
    $to = array('test(at)test.de');     // 1 - n Empfänger

    // Definition des Emailinhalts
    // HTML formatierte Emails sind ebenfalls möglich aber komplexer.
    $body = 'Hier der Nachrichtentext.';

    // Absoluten Pfad zum Dokument ermitteln
    // ggf. eine Exception erzeugen, wenn der Pfad nicht existiert
    $config = new SqueezeConfig();
    $repo = $config->get('repository.root');
    $absolutePath = xTools::buildAbsolutePath($repo, $xDoc->repoPath, false);
    if ($absolutePath == false){
        $msg = "AfterValidation Input Folder (".$repo . $xDoc->repoPath.") does not exist.";
        $logger->error($msg);
        throw new Exception($msg);
    }

    // Initalisierung eines Arrays zur Speicherung der Anlagen
    $attachments = array();
    
    // Laden der PDFs und dem Array der Anlagen hinzufügen 
    $files = $xDoc->getBase64Files($absolutePath, 'Input', array('pdf'));
    foreach ($files->getResult() as $file) {
        if ($file->filename != '_result.pdf') {
            $attachments[] = $absolutePath . 'Input' . DIRECTORY_SEPARATOR . $file->filename;
        }
    }

    // Email senden und auf Fehler prüfen
    $result = xTools::sendEmail($subject, $to, $body, 'text', $attachments);
    if($result->isSuccess() === false) {
        throw new Exception($result->getMessage());
    }

    // Rückgabe an das aufrufende Skript
    return array('xDoc' => $xDoc, 'nextStep' => $nextStep, 'newStatus' => $newStatus);

}