diff --git a/typo3/sysext/core/Classes/Mail/TransportFactory.php b/typo3/sysext/core/Classes/Mail/TransportFactory.php
index dda23206ec3026a939fcbdeddc339cab78455643..00c42bd41fff58886d15b1972c8f8bfaebd50e3f 100644
--- a/typo3/sysext/core/Classes/Mail/TransportFactory.php
+++ b/typo3/sysext/core/Classes/Mail/TransportFactory.php
@@ -75,7 +75,7 @@ class TransportFactory implements SingletonInterface, LoggerAwareInterface
 
         $transportType = isset($mailSettings['transport_spool_type'])
             && !empty($mailSettings['transport_spool_type'])
-            ? 'spool' : $mailSettings['transport'];
+            ? 'spool' : (string)$mailSettings['transport'];
 
         switch ($transportType) {
             case 'spool':
@@ -140,8 +140,8 @@ class TransportFactory implements SingletonInterface, LoggerAwareInterface
                 );
                 break;
             case 'mbox':
-                $mboxFile = $mailSettings['transport_mbox_file'];
-                if ($mboxFile == '') {
+                $mboxFile = (string)($mailSettings['transport_mbox_file'] ?? '');
+                if ($mboxFile === '') {
                     throw new Exception('$GLOBALS[\'TYPO3_CONF_VARS\'][\'MAIL\'][\'transport_mbox_file\'] needs to be set when transport is set to "mbox".', 1294586645);
                 }
                 // Create our transport
@@ -193,9 +193,10 @@ class TransportFactory implements SingletonInterface, LoggerAwareInterface
      */
     protected function createSpool(array $mailSettings): DelayedTransportInterface
     {
-        switch ($mailSettings['transport_spool_type']) {
+        $transportSpoolType = (string)($mailSettings['transport_spool_type'] ?? '');
+        switch ($transportSpoolType) {
             case self::SPOOL_FILE:
-                $path = GeneralUtility::getFileAbsFileName($mailSettings['transport_spool_filepath']);
+                $path = GeneralUtility::getFileAbsFileName($mailSettings['transport_spool_filepath'] ?? '');
                 if (empty($path)) {
                     throw new \RuntimeException('The Spool Type filepath must be configured for TYPO3 in order to be used. Be sure that it\'s not accessible via the web.', 1518558797);
                 }
@@ -214,7 +215,7 @@ class TransportFactory implements SingletonInterface, LoggerAwareInterface
                 );
                 break;
             default:
-                $spool = GeneralUtility::makeInstance($mailSettings['transport_spool_type'], $mailSettings);
+                $spool = GeneralUtility::makeInstance($transportSpoolType, $mailSettings);
                 if (!($spool instanceof DelayedTransportInterface)) {
                     throw new \RuntimeException(
                         $mailSettings['transport_spool_type'] . ' is not an implementation of DelayedTransportInterface, but must implement that interface to be used as a mail spool.',