TYPO3: Individuelles Backend Login Logo verhindert den Mailversand

Ein Bug im TYPO3 Core sorgt dafür, dass der Mailversand nicht mehr funktioniert wenn man ein individuelles Logo für den Backend Login festlegt.
Diese Fehlermeldung erscheint dabei:

Could not deliver mail Please verify $GLOBALS['TYPO3_CONF_VARS']['MAIL'][*] settings are valid.

Folgende Lösungen können dabei helfen diesen Bug zu umgehen:

Logo außerhalb des /fileadmin/ zur Verfügung stellen

Sollte das Logo für den Backend-Login innerhalb des /fileadmin/-Ordners gespeichert sein, hilft es das Logo unter einem anderen Pfad zu speichern. z.B. in der eigenen Template Extension.

Logo im Public Ordner speichern

Sollte das Logo in einer Extension zur Verfügung gestellt werden, dann sollte es innerhalb des Ordners /Resources/Public/ verwendet werden. Beim /Private/-Ordner kann es zu einer Fehlermeldung kommen.

Anpassung des loginLogo-Pfades

Wenn man den Pfad mit dem Extensions Verzeichnis wie z.B. EXT:meine_Extension/... verwendet, dann funktioniert es für den E-Mail Versand, allerdings nicht für das Login Formular.

Möchte man das Login Formular und gleichzeitig den Mailversand zum Laufen bringen, dann muss man die Domain mit ins Spiel bringen und den Pfad wie folgt angeben:
//www.domain.de/pfad/zum/logo.png (ohne http: oder https:)

Allerdings gibt es Situationen bei denen man die Domain nicht fest in der LocalConfiguration.php stehen haben möchte. Für eine etwas dynamischere Variante müssen wir die Datei /typo3conf/LocalConfiguration.php bearbeiten und die PHP Variable $_SERVER['HTTP_HOST'] anstatt der Domain einfügen.

return [
    'EXTENSIONS' => [
        'backend' => [
            'loginLogo' => '//'.$_SERVER['HTTP_HOST'].'/typo3conf/ext/extensionName/Resources/Public/Images/logo.svg',
		],
	],
]

Bei diesem Code erhalten wir mit dem Composer allerdings eine PHP Notice:

PHP Notice: Undefined index: HTTP_HOST in ../typo3conf/LocalConfiguration.php 

Diese Notice können wir umgehen in dem wir den Code wie folgt anpassen:

if(isset($_SERVER['HTTP_HOST']) && !empty($_SERVER['HTTP_HOST'])){
    $currentHost = $_SERVER['HTTP_HOST'];
}else{
    $currentHost = "www.domain.de"; // Hier geben wir eine Domain an, falls z.B. der Composer auf die Datei zugreift.
}

return [
    'EXTENSIONS' => [
        'backend' => [
            'loginLogo' => '//'.$currentHost.'/typo3conf/ext/extensionName/Resources/Public/Images/logo.svg',
		],
	],
]

Konnten wir Ihnen helfen?

Hat der Beitrag Ihnen weitergeholfen?
Wir würden uns auf Ihr Feedback freuen!

Feedback senden