Mailversand mit Vorlagen

In dem Trait \Alvine\Application\Platform\Bridge\Mail werden die Funktionen für das versenden von Mails mit Vorlagen definieren.

Beispiel zum versenden einer Mail

Als erstes muss ein Kontext erstellt werden. Die Lokale und der Mandant kann direkt aus der aktuellen Anwendung geholt werden.

$locale=\Alvine\Application\Assembly::getInstance()->getLocale();
$company=\Alvine\Application\Assembly::getInstance()
       ->getCompanyManager()->getCurrentCompany();

$context=(new \Alvine\Application\Platform\Types\Context\Builder())
  ->setLocale($locale)
  ->setCompany($company)
  ->getContext();

Im Anschluß wird die Klasse des Dokumenten Kontext definiert.
Zum Beispiel die Klasse \Alvine\Application\Platform\Commerce\Document\Context\Account\LoginTokenPerMail. Über die Methode getContextClass, vom DocumentManager, kann diese nochmal überschrieben werden. siehe auch Dokumentenmanagement

 $documentContextClass=\Alvine\Application\Assembly::getInstance()
                      ->getDocumentManager()->getContextClass(
    \Alvine\Application\Platform\Commerce\Document\Context\Account\LoginTokenPerMail::class
            );
Die Platzhalter sind eine einfache Map.
Die Eigenschaften des Dokumentes werden in den Platzhaltern erweitert.
siehe auch Dokumentenmanagement Eigenschaften

$placeholder=new \Alvine\Types\Map\SimpleMap();

Der Empänger wird der sendMail Methode übergeben

$toAddress=\Alvine\Net\Mail\MailAddress::getAddress('[email protected]');

Die Mail kann zum Beispiel über den Zentralen Mandaten gesendet werden

$usedSmtpClient=\Alvine\Application\Assembly::getInstance()
    ->getCompanyManager()
    ->sendMail($documentContextClass, $toAddress,
                $context,
                $placeholder);

/**
 * log
 */
\Alvine\Util\Logging\Logger::getLogger
    (\Alvine\Util\Logging\LoggerDefaultName::PRESENTER)
 ->logError($usedSmtpClient->getLog());

Welche MID wird geladen

Der Trait \Alvine\Application\Platform\Bridge\Commerce\Document\Template stellt die Methode getDocumentTemplates zu verfügung.

Hier wird entschieden welche MID geladen wird.

  • der template_type (kontext) muss dem angeforderten kontext übereinstimmen
  • darf nicht archiviert sein
  • muss in der angeforderten Sprache angelegt sein.
  • kann dem aktuellen Land oder keinem Land zugewiesen sein
  • kann dem aktuellen Mandanten oder keinem Mandanten zugewiesen sein