TYPO3 Plugin:
mail_logger
+Pluswerk TYPO3 Extension: Mail-Logger
Dies ist eine TYPO3-Erweiterung mit drei Mail-Funktionen:
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
[DependciesAndConflicts]