I could be wrong here, but (certainly the case on my forum) this extension appears to strip the sender ID ? To reproduce, enable this extension, and leave the SMTP setup unmodified. As a user, go into your settings, then try to send a reset email. The below is recorded in the log (with a visual failed message)
[2019-09-19 14:36:26] production.ERROR: Swift_TransportException: Cannot send message without a sender address in /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:195
Stack trace:
#0 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php(71): Swift_Transport_AbstractSmtpTransport->send(Object(Swift_Message), Array)
#1 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/illuminate/mail/Mailer.php(483): Swift_Mailer->send(Object(Swift_Message), Array)
#2 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/illuminate/mail/Mailer.php(259): Illuminate\Mail\Mailer->sendSwiftMessage(Object(Swift_Message))
#3 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/fof/pretty-mail/src/Mailer.php(56): Illuminate\Mail\Mailer->send('pretty-mail::em...', Array, Object(Closure))
#4 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flarum/core/src/User/Command/RequestPasswordResetHandler.php(119): FoF\PrettyMail\Mailer->raw('Hey mcutting!\n\n...', Object(Closure))
#5 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/illuminate/bus/Dispatcher.php(90): Flarum\User\Command\RequestPasswordResetHandler->handle(Object(Flarum\User\Command\RequestPasswordReset))
#6 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/illuminate/pipeline/Pipeline.php(128): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}(Object(Flarum\User\Command\RequestPasswordReset))
#7 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/illuminate/pipeline/Pipeline.php(104): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Flarum\User\Command\RequestPasswordReset))
#8 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/illuminate/bus/Dispatcher.php(98): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#9 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/illuminate/bus/Dispatcher.php(76): Illuminate\Bus\Dispatcher->dispatchNow(Object(Flarum\User\Command\RequestPasswordReset))
#10 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flarum/core/src/Api/Controller/ForgotPasswordController.php(53): Illuminate\Bus\Dispatcher->dispatch(Object(Flarum\User\Command\RequestPasswordReset))
#11 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flarum/core/src/Http/RouteHandlerFactory.php(40): Flarum\Api\Controller\ForgotPasswordController->handle(Object(Zend\Diactoros\ServerRequest))
#12 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flarum/core/src/Http/Middleware/DispatchRoute.php(67): Flarum\Http\RouteHandlerFactory->Flarum\Http\{closure}(Object(Zend\Diactoros\ServerRequest), Array)
#13 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\DispatchRoute->process(Object(Zend\Diactoros\ServerRequest), Object(Closure))
#14 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/fof/stopforumspam/src/Middleware/RegisterMiddleware.php(94): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#15 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): FoF\StopForumSpam\Middleware\RegisterMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#16 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/reflar/recache/src/Middlewares/OptimizeImages.php(44): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#17 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Reflar\ReCache\Middlewares\OptimizeImages->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#18 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/reflar/recache/src/Middlewares/CacheResponse.php(87): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#19 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Reflar\ReCache\Middlewares\CacheResponse->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#20 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flagrow/terms/src/Middlewares/RegisterMiddleware.php(59): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#21 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Flagrow\Terms\Middlewares\RegisterMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#22 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/reflar/pwned-passwords/src/Middleware/CheckPassword.php(66): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#23 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Reflar\PwnedPasswords\Middleware\CheckPassword->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#24 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flarum/core/src/Http/Middleware/SetLocale.php(52): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#25 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\SetLocale->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#26 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flarum/core/src/Http/Middleware/CheckCsrfToken.php(33): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#27 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\CheckCsrfToken->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#28 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flarum/core/src/Http/Middleware/AuthenticateWithHeader.php(57): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#29 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\AuthenticateWithHeader->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#30 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flarum/core/src/Http/Middleware/AuthenticateWithSession.php(34): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#31 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\AuthenticateWithSession->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#32 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flarum/core/src/Http/Middleware/RememberFromCookie.php(53): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#33 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\RememberFromCookie->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#34 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flarum/core/src/Http/Middleware/StartSession.php(63): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#35 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\StartSession->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#36 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flarum/core/src/Api/Middleware/FakeHttpMethods.php(31): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#37 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Api\Middleware\FakeHttpMethods->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#38 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flarum/core/src/Http/Middleware/ParseJsonBody.php(30): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#39 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\ParseJsonBody->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#40 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flarum/core/src/Http/Middleware/HandleErrors.php(59): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#41 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\HandleErrors->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#42 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#43 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/middlewares/request-handler/src/RequestHandler.php(84): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#44 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Middlewares\RequestHandler->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#45 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/middlewares/base-path-router/src/BasePathRouter.php(97): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#46 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Middlewares\BasePathRouter->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#47 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Middleware/OriginalMessages.php(41): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#48 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Stratigility\Middleware\OriginalMessages->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#49 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/middlewares/base-path/src/BasePath.php(53): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#50 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/Next.php(60): Middlewares\BasePath->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
#51 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
#52 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(72): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\EmptyPipelineHandler))
#53 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/zendframework/zend-httphandlerrunner/src/RequestHandlerRunner.php(95): Zend\Stratigility\MiddlewarePipe->handle(Object(Zend\Diactoros\ServerRequest))
#54 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/vendor/flarum/core/src/Http/Server.php(46): Zend\HttpHandlerRunner\RequestHandlerRunner->run()
#55 /var/www/vhosts/infosecforge.io/discuss.infosecforge.io/index.php(22): Flarum\Http\Server->listen()
#56 {main}
Disable this extension, and the issue resolves itself 🙂