TYPO3 v10 – Mail API Fehlersammlung

Beim Upgrade von TYPO3 v9 auf TYPO3 v10 sind mir einige Dinge über den Weg gelaufen die Probleme und/oder Fehler verursachen.

Für den Versand von E-Mails wird eine nachricht der Klasse TYPO3\CMS\Core\Mail\MailMessage vorbereitet:

$mailMessage = GeneralUtility::makeInstance(MailMessage::class);

Diese Klasse wurde mit TYPO3 v10 verändert, somit gibt es beim Update sehr wahrscheinlich Probleme.
Hier eine Liste der Fehlermeldungen und Lösungen die ich beim Upgrade vom E-Mail-Versand aus Controllern hatte:

Argument 1 passed to Symfony\Component\Mime\Message::setBody() must be an instance of Symfony\Component\Mime\Part\AbstractPart or null, string given, called in /.../Classes/Controller/...Controller.php on line 123

Dieser Fehler erscheint, weil ->setBody() nicht mehr so verwendet wird, wie bisher. Es ist jetzt notwendig einen Content-Typ mit anzugeben.

Soll eine Text-Mail versendet werden, ist der Aufruf: ->setBody()->text('Hier ist eine Text-Mail')

Soll eine HTML-Mail versendet werden, ist der Aufruf ähnlich: ->setBody()->html('<p>Hier ist eine HTML-Mail</p>')


Call to undefined method TYPO3\CMS\Core\Mail\MailMessage::setContentType()

Diese Meldung resultiert aus der vorigen. Zuvor musste man den Mail-Typ für eine E-Mail bspw. wie folgt festlegen: $mail->setContentType('text/html')

Dies ist jetzt nicht mehr nötig, da wir mit $mail->setBody()->html() bereits festlegen das die Mail aus HTML Inhalten besteht.
Sollte ->setContentType() noch Verwendung finden, muss dies entfernt werden.


Hast du einen Fehler den du nicht gelöst bekommst?
Schreibe mir in die Kommentare, oder schicke mir eine Mail. Ich schaue mir das dann gern an und nehme die Lösung, sofern es passt, mit in diesen Beitrag auf.

4 Kommentare

  1. Renate Schneider

    29. Oktober 2021 um 23:12

    Typo3 v. 11.5.1
    Wie kann ich die Mail und die Form konfigurieren?
    (ich hatte in den vorangehenden Versionen keine Probleme damit)

    Fehlermeldung:
    Could not deliver mail
    Please verify $GLOBALS[‚TYPO3_CONF_VARS‘][‚MAIL‘][*] settings are valid. Error message: Call to undefined function Symfony\Component\Mailer\Transport\Smtp\Stream\proc_open()

  2. Danke für den Post, das hat mich in die richtige Richtung gelenkt.
    Soweit ich in der doku (nicht) finden konnte, gibt es in TYPO3 10.x kein setBody mehr!
    Also dann:

    $mail->html()

    https://docs.typo3.org/m/typo3/reference-coreapi/10.4/en-us/ApiOverview/Mail/Index.html

  3. Danke dafür, das war mir bisher gar nicht aufgefallen!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.