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\xDoc;
use Squeeze\xTools;
function AfterValidation(xDoc $xDoc, string $nextStep, string $newStatus): ?array
{
// Optional ein Logger Objekt erzeugen
$logger = Logger::getLogger("main");
// Initialisierung der Emailparameter
$subject = 'Test after Validation'; // Betreff
$to = ['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 = [];
// Laden der PDFs und dem Array der Anlagen hinzufügen
$files = $xDoc->getBase64Files($absolutePath, 'Input', ['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()) {
throw new Exception($result->getMessage());
}
return ['xDoc' => $xDoc, 'nextStep' => $nextStep, 'newStatus' => $newStatus];
}
No Comments