TYPO3 Plugin:

mail_logger

+Pluswerk TYPO3 Extension: Mail-Logger

Dies ist eine TYPO3-Erweiterung mit drei Mail-Funktionen:

  1. E-Mail-Protokollierung
  2. E-Mail-Vorlagen
  3. E-Mail-Debugging

1. E-Mail-Protokollierung

Die Extension protokolliert automatisch alle ausgehenden Mails des TYPO3-Systems, die über die TYPO3-Mail-API versendet werden. Installieren Sie einfach die Erweiterung und es funktioniert. Alle ausgehenden Mails finden Sie im Backend-Modul dieses TYPO3-Mail-Loggers.

2. E-Mail-Vorlagen

Sie können TYPO3-E-Mail-Vorlagen, die in Fluid geschrieben wurden, konfigurieren, die von Editoren (in der Datenbank) editierbar sind und über TypoScript (in VCS) konfiguriert werden.

Wie funktioniert das? E-Mails werden grundsätzlich in einer TypoScript-Konfiguration (z.B. Konfiguration der Absenderadresse) konfiguriert. Anschließend wird aus dem Editor ein Datenbankeintrag generiert, der diese Vorlage um zusätzliche Informationen (z.B. fluid-Template oder Empfänger) erweitert. Die Instanz einer solchen E-Mail kann anschließend über php in einer eigenen Erweiterung (z.B. dynamischer Empfänger) erweitert oder überschrieben werden.

TypoScript-Beispiel

Sie müssen immer eine TypoScript-Vorlage für eine Mail erstellen. Das "Label" ist das einzige Pflichtfeld, die anderen Felder sind optional.

# E-Mail-Vorlage
module.tx_maillogger.settings.mailTemplates {
    beispielMailTemplateKey { {
        label = Dieses Label wird im Backend für BE-Anwender angezeigt, ersetzen Sie es durch einen guten Titel! :-)
        mailFromName = Standard Mail-From-Name
        mailFromAddress = info@domain.com
        mailToNames = Markus Hoelzle, John Doe
        mailToAddresses = markus-hoelzle@example.com, john.doe@example.com
        mailBlindCopyAdressen = we-read-all-your-mails@example.com
    }
}

E-Mail-Vorlagen in der Datenbank

E-Mail-Vorlagen werden in der Datenbank gespeichert. Erstellen Sie einfach einen Datensatz "E-Mail-Vorlage". Dort wird die TypoScript-Vorlage ausgewählt. Die Nachricht wird von Fluid ausgegeben, so dass es möglich ist, Variablen zu drucken oder ViewHelpers zu verwenden.

Beispielmeldung:
<f:format.nl2br>
  Hallo,

  wir haben {Anzahl} neue Kaufschlüssel (siehe Anhang).

  Diese Mail wurde automatisch von domain.com gesendet
</f:format.nl2br>>

senden von E-Mails über PHP

E-Mail-Instanzen "\Pluswerk\MailLogger\Domain\Model\Mail\TemplateBasedMailMessage" erben von SwiftMailer-Klasse "\Swift_Message". Eine E-Mail-Instanz verfügt daher über folgende Funktionen: http://swiftmailer.org/docs/messages.html Am einfachsten ist es, die Funktionen der Klasse "\Pluswerk\MailLogger\Utility\MailUtility" zu verwenden.

grundmuster:
<?php
benutze \Pluswerk\MailLogger\Utility\MailUtility;
MailUtility::getMailByKey('exampleMailTemplateKey', null, ['myVariable' =>'Diese Mail wurde zur ' Zeit() gesendet, 'myUser' => $myExtbaseUser])->send();

E-Mail-Vorlage in einer bestimmten Sprache

<?php
benutze \Pluswerk\MailLogger\Utility\MailUtility;
MailUtility::getMailByKey('exampleMailTemplateKey', 42, ['myVariable' =>'Diese Mail wurde zu ' Zeit() gesendet, 'myUser' => $myExtbaseUser])->send();

beispiel - Übergabe von E-Mail-Parametern und Senden von Anlagen (z.B. FPDF)

<?php
benutze \Pluswerk\MailLogger\Utility\MailUtility;
versuchen {
    // mail senden
    $mail = MailUtility::getMailByKey('exampleMailTemplateKey', null, [
        Betrag' => $Betrag
    ]);
    $pdfFileName ='myFile.pdf';
    $pdfFileByteStream = $fpdf->Output($pdfFileName, 'S');
    $pdfFileAttachment = \Swift_Attachment::newInstance($pdfFileByteStream, $pdfFileName, 'application/pdf');
    $mail->attach($pdfFileAttachment);
    $mail->send();
fangen (Ausnahme $e) {
    // handle error
    $this->addFlashMessage('E-Mail konnte wegen eines Fehlers nicht gesendet werden: ' . $e->getMessage(), '', AbstractMessage::ERROR);
}

Du solltest immer Ausnahmen in deinem PHP-Code abfangen. Die Erfahrung hat gezeigt, dass Redakteure oft keine Vorlage (oder Übersetzung) etc. hinzufügen. Entsprechende Fehler sollten irgendwie behandelt werden!

beispiel - Verwenden Sie eine E-Mail-Vorlage in Ihrem eigenen Plugin

Wenn eine Mail-Vorlage vom Editor dynamisch ausgewählt werden kann, können Sie eine Flexform in das Plugin integrieren, hinzufügen der folgenden Konfiguration:

<settings.userMailTemplate>>
    <TCEformulare>
        <Label>E-Mail-Vorlage</label>>E-Mail-Vorlage
        <config>
            <type>auswählen</type>type>
            <renderType>selectSingle</renderType> auswählen
            <ausländische_Tabelle>tx_maillogger_domain_model_mailtemplate</ausländische_Tabelle>mehr
            <foreign_table_where> ORDER BY tx_maillogger_domain_model_mailtemplate.title</foreign_table_where>>
            <Größe>1</Größe>1</Größe>
            <minitems>1</minitems>>Minitems
            <maxitems>1</maxitems>1</maxitems>.
        </config>
    </TCEforms>
</settings.userMailTemplate>>

3. E-Mail-Debugging

Alle E-Mails können im Backend-Modul eingesehen werden. Alternativ können alle E-Mails über diese TypoScript-Einstellung an eine bestimmte E-Mail-Adresse weitergeleitet werden. Damit kann man ausgehende Mails in TYPO3 debuggen:

module.tx_maillogger.settings.debug {
    # Alle Mails von mail_logger an bestimmte Mailadressen umleiten
    mail {
        # Setzen Sie enable auf '1', um diese Mail-Debug-Funktion zu aktivieren
        freigabe = 0

        # Geben Sie Ihre IP-Adresse an (Komma getrennt) oder setzen Sie sie auf alle'*'
        ip = 127.0.0.0.1, 123.123.123.123.123.123
        #ip = *

        # Stellen Sie die Mailadressen (Komma getrennt) ein, an die die Mails weitergeleitet werden sollen
        mailRedirect = test@domain.com, a@b.de
    }
}

Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.

Verteilung:MAIL_LOGGER ist auf

0.01 % aller TYPO3 installiert.

  • 0.02 % aller TYPO3 8.7.x Installationen installiert
  • 0.03 % aller TYPO3 7.6.x Installationen installiert

Gosign-Responsive Index: TYPO3 Installationen nutzen MAIL_LOGGER zu

  • 67 % wenn der Gosign-Responsive-Index zwischen 80 % und 100 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 60 % und 80 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 40 % und 60 % ist
  • 33 % wenn der Gosign-Responsive-Index zwischen 20 % und 40 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 0 % und 20 % ist

Pagespeed: TYPO3 Installationen nutzen MAIL_LOGGER zu

  • 0 % wenn der Pagespeed zwischen 80 % und 100 % ist
  • 67 % wenn der Pagespeed zwischen 60 % und 80 % ist
  • 0 % wenn der Pagespeed zwischen 40 % und 60 % ist
  • 33 % wenn der Pagespeed zwischen 20 % und 40 % ist
  • 0 % wenn der Pagespeed zwischen 0 % und 20 % ist


Stichprobe n=36801 von Gosign gecrawlte TYPO3-Seiten mit den Top-Level-Domains <.de/.ch/.at>