Skip to content

E-Mail-System

Das Doggy-E-Mail-System basiert auf Symfony Mailer und unterstützt die Konfiguration mehrerer Mailboxen, Vorlagenverwaltung und asynchrones Versenden.

Übersicht

Zugehörige Dateien des E-Mail-Systems:

DateiBeschreibung
src/Service/MailService.phpE-Mail-Versanddienst
src/Service/Security/EmailHtmlSanitizer.phpHTML-Sicherheitsfilter
src/Entity/System/EmailConfig.phpMailbox-Konfiguration
src/Entity/System/EmailTemplate.phpE-Mail-Vorlagen
src/Entity/System/EmailLog.phpVersandprotokolle
src/Entity/System/EmailFunctionBinding.phpFunktionsbindung

Verwaltungsoberfläche: App\Controller\Admin\EmailConfigController

E-Mail-Vorlagen

E-Mail-Vorlagen werden in der Datenbank gespeichert (EmailTemplate-Entität) und unterstützen visuelle Bearbeitung:

Vorlagenverzeichnis: templates/admin/email/

  • editor.html.twig: Vorlagen-Editor
  • index.html.twig: Vorlagenliste
  • preview.html.twig: Vorlagenvorschau

E-Mail senden

Versand über MailService:

php
use App\Service\MailService;

class NotificationService
{
    public function __construct(private MailService $mailService) {}

    public function sendWelcome(Employee $employee): void
    {
        $this->mailService->send(
            to: $employee->getEmail(),
            subject: '欢迎加入 Doggy',
            template: 'welcome',
            params: [
                'name' => $employee->getName(),
            ]
        );
    }
}

HTML-Sicherheit

EmailHtmlSanitizer filtert HTML-Inhalte vor dem Versand:

  • Entfernt gefährliche Elemente wie script, iframe, object
  • Schutz vor XSS-Injektionen
  • Sicherheit der Empfänger

Funktionsbindung

EmailFunctionBinding verknüpft E-Mail-Funktionen mit Systemereignissen für automatisierten Versand:

  • Passwort-Reset-E-Mails
  • Benachrichtigungen zur Kontofreischaltung
  • Systemalarm-Benachrichtigungen

Konfiguration

yaml
# config/packages/mailer.yaml
framework:
  mailer:
    dsn: '%env(MAILER_DSN)%'

Open Source unter MIT | Copyright © 2026 Doggy