FriendsOfFlarum/pretty-mail

TypeError: Argument 1 passed to Illuminate\Mail\Mailer::__construct() must be of the type string, object given

Closed this issue · 4 comments

Bug Report

Current Behavior
All emails are failing with a 500. Logs report the error below.

Steps to Reproduce

  1. enable mail
  2. enable pretty-mail
  3. register a user, send test email, reply to post, etc -- anything that triggers an email
  4. 500 error, no email sent.

Expected Behavior
Email is sent.

Screenshots
Screen Shot 2021-04-14 at 1 40 33 PM

Environment

  • Flarum version: beta-16
  • Extension version: 0.3.0
  • Website URL: https://adkadv.com
  • Webserver: nginx
  • Hosting environment: vps
  • PHP version: 7.3.24
  • Browser: doesnt matter
[ps625951]$ php flarum info
Flarum core 0.1.0-beta.16
PHP version: 7.3.24
Loaded extensions: Core, date, libxml, pcre, sqlite3, filter, hash, intl, json, mbstring, SPL, PDO, pdo_sqlite, Reflection, sodium, session, standard, bcmath, bz2, calendar, ctype, curl, dom, exif, fileinfo, ftp, gd, gettext, iconv, imap, mysqlnd, openssl, pcntl, pdo_mysql, zlib, posix, pspell, mysqli, SimpleXML, soap, sockets, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, Phar, imagick
+---------------------------+------------------+------------------------------------------+
| Flarum Extensions         |                  |                                          |
+---------------------------+------------------+------------------------------------------+
| ID                        | Version          | Commit                                   |
+---------------------------+------------------+------------------------------------------+
| flarum-tags               | v0.1.0-beta.16   |                                          |
| v17development-blog       | v0.2.3           |                                          |
| fof-upload                | 0.14.0-beta      |                                          |
| flarum-sticky             | v0.1.0-beta.16   |                                          |
| fof-sitemap               | 0.7.0            |                                          |
| flarum-flags              | v0.1.0-beta.16   |                                          |
| squeevee-fancybox         | 0.2.0-beta.15    |                                          |
| webbinaro-adkhomepage     | 0.0.6            |                                          |
| zerosonesfun-direct-links | 2.0.4            |                                          |
| fof-best-answer           | 0.4.0            |                                          |
| fof-byobu                 | 0.6.1            |                                          |
| fof-subscribed            | 0.5.0            |                                          |
| fof-reactions             | 0.6.0            |                                          |
| fof-pretty-mail           | 0.3.0            |                                          |
| fof-oauth                 | 0.3.0            |                                          |
| fof-analytics             | 0.12.0           |                                          |
| migratetoflarum-canonical | 0.2.4            |                                          |
| fof-profile-image-crop    | 0.2.1            |                                          |
| fof-impersonate           | 0.8.0            |                                          |
| webbinaro-gpx-preview     | v0.2.3           |                                          |
| fof-frontpage             | 0.3.0            |                                          |
| bokt-cache-assets         | 0.4              |                                          |
| webbinaro-calendar        | 0.3.0            | ab461d56da154e5067d86d0eb655b26c2ed7c4bc |
| fof-terms                 | 0.6.2            |                                          |
| fof-user-directory        | 0.5.3            |                                          |
| sycho-profile-cover       | v1.2.4           |                                          |
| fof-polls                 | 0.3.2            |                                          |
| fof-masquerade            | 0.3.7            |                                          |
| fof-formatting            | 0.4.0            |                                          |
| askvortsov-categories     | v2.0.0           |                                          |
| fof-links                 | 0.6.0            |                                          |
| fof-recaptcha             | 0.3.1            |                                          |
| v17development-seo        | v1.7.2           |                                          |
| fof-user-bio              | 0.5.0            |                                          |
| flarum-suspend            | v0.1.0-beta.16   |                                          |
| flarum-subscriptions      | v0.1.0-beta.16   |                                          |
| flarum-statistics         | v0.1.0-beta.16   |                                          |
| flarum-mentions           | v0.1.0-beta.16   |                                          |
| flarum-markdown           | v0.1.0-beta.16.1 |                                          |
| flarum-lock               | v0.1.0-beta.16   |                                          |
| flarum-likes              | v0.1.0-beta.16   |                                          |
| flarum-lang-english       | v0.1.0-beta.16   |                                          |
| flarum-emoji              | v0.1.0-beta.16   |                                          |
| flarum-bbcode             | v0.1.0-beta.16   |                                          |
| flarum-approval           | v0.1.0-beta.16   |                                          |
+---------------------------+------------------+------------------------------------------+
Base URL: https://adkadv.com
Installation path: /home/adkadv/adkadv-flarum
Debug mode: off

Possible solution(s)
line 29 here throws the error, but not sure why
https://github.com/FriendsOfFlarum/pretty-mail/blob/master/src/Providers/MailerProvider.php#L29

Additional Context
LOgs

[2021-04-14 17:40:13] flarum.ERROR: TypeError: Argument 1 passed to Illuminate\Mail\Mailer::__construct() must be of the type string, object given, called in /home/adkadv/adkadv-flarum/vendor/fof/pretty-mail/src/Providers/MailerProvider.php on line 29 and defined in /home/adkadv/adkadv-flarum/vendor/illuminate/mail/Mailer.php:103
Stack trace:
#0 /home/adkadv/adkadv-flarum/vendor/fof/pretty-mail/src/Providers/MailerProvider.php(29): Illuminate\Mail\Mailer->__construct(Object(Illuminate\View\Factory), Object(Swift_Mailer), Object(Illuminate\Events\Dispatcher))
#1 /home/adkadv/adkadv-flarum/vendor/illuminate/container/Container.php(829): FoF\PrettyMail\Providers\MailerProvider->FoF\PrettyMail\Providers\{closure}(Object(Illuminate\Container\Container), Array)
#2 /home/adkadv/adkadv-flarum/vendor/illuminate/container/Container.php(714): Illuminate\Container\Container->build(Object(Closure))
#3 /home/adkadv/adkadv-flarum/vendor/illuminate/container/Container.php(652): Illuminate\Container\Container->resolve('mailer', Array)
#4 /home/adkadv/adkadv-flarum/vendor/illuminate/container/Container.php(987): Illuminate\Container\Container->make('Illuminate\\Cont...')
#5 /home/adkadv/adkadv-flarum/vendor/illuminate/container/Container.php(907): Illuminate\Container\Container->resolveClass(Object(ReflectionParameter))
#6 /home/adkadv/adkadv-flarum/vendor/illuminate/container/Container.php(868): Illuminate\Container\Container->resolveDependencies(Array)
#7 /home/adkadv/adkadv-flarum/vendor/illuminate/container/Container.php(714): Illuminate\Container\Container->build('Flarum\\Api\\Cont...')
#8 /home/adkadv/adkadv-flarum/vendor/illuminate/container/Container.php(652): Illuminate\Container\Container->resolve('Flarum\\Api\\Cont...', Array)
#9 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Http/RouteHandlerFactory.php(74): Illuminate\Container\Container->make('Flarum\\Api\\Cont...')
#10 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Http/RouteHandlerFactory.php(34): Flarum\Http\RouteHandlerFactory->resolveController('Flarum\\Api\\Cont...')
#11 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Http/Middleware/ExecuteRoute.php(27): Flarum\Http\RouteHandlerFactory->Flarum\Http\{closure}(Object(Laminas\Diactoros\ServerRequest), Array)
#12 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ExecuteRoute->process(Object(Laminas\Diactoros\ServerRequest), Object(Closure))
#13 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Api/Middleware/ThrottleApi.php(33): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#14 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Api\Middleware\ThrottleApi->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#15 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Http/Middleware/CheckCsrfToken.php(44): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#16 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\CheckCsrfToken->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#17 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Http/Middleware/ResolveRoute.php(67): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#18 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ResolveRoute->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#19 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Http/Middleware/SetLocale.php(50): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#20 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\SetLocale->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#21 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Http/Middleware/AuthenticateWithHeader.php(55): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#22 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\AuthenticateWithHeader->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#23 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Http/Middleware/AuthenticateWithSession.php(32): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#24 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\AuthenticateWithSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#25 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Http/Middleware/RememberFromCookie.php(52): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#26 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\RememberFromCookie->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#27 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Http/Middleware/StartSession.php(61): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#28 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\StartSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#29 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Api/Middleware/FakeHttpMethods.php(29): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#30 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Api\Middleware\FakeHttpMethods->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#31 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Http/Middleware/ParseJsonBody.php(28): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#32 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ParseJsonBody->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#33 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Http/Middleware/HandleErrors.php(57): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#34 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\HandleErrors->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#35 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(84): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#36 /home/adkadv/adkadv-flarum/vendor/middlewares/request-handler/src/RequestHandler.php(84): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#37 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\RequestHandler->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#38 /home/adkadv/adkadv-flarum/vendor/middlewares/base-path-router/src/BasePathRouter.php(101): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#39 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\BasePathRouter->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#40 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Middleware/OriginalMessages.php(42): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#41 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Laminas\Stratigility\Middleware\OriginalMessages->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#42 /home/adkadv/adkadv-flarum/vendor/middlewares/base-path/src/BasePath.php(53): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#43 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\BasePath->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#44 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Http/Middleware/ProcessIp.php(24): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#45 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ProcessIp->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#46 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(84): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#47 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(73): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\EmptyPipelineHandler))
#48 /home/adkadv/adkadv-flarum/vendor/laminas/laminas-httphandlerrunner/src/RequestHandlerRunner.php(96): Laminas\Stratigility\MiddlewarePipe->handle(Object(Laminas\Diactoros\ServerRequest))
#49 /home/adkadv/adkadv-flarum/vendor/flarum/core/src/Http/Server.php(44): Laminas\HttpHandlerRunner\RequestHandlerRunner->run()
#50 /home/adkadv/adkadv-flarum/public/index.php(26): Flarum\Http\Server->listen()
#51 {main}  


Quite sure this is change in Laravel 6.x to Laravel 8.x which changed mail handler. I'll see if I can play with a PR but I don't know much about laravel internals.

https://github.com/illuminate/mail/blob/8.x/MailServiceProvider.php#L26

I don't think this extension has been updated for beta 16 yet. But I am following because I'm also waiting for it before I can upgrade :)

Indeed, nobody from FoF has tested the extension on beta 16 yet, it's likely it will require an update.

We are (slowly) getting to the end of the list of extensions to update.

@clarkwinkelmann - yep, understanding it was likely a beta16 compatability, I wanted to contribute if I could.

#14 fixes the error by simply adding a name to the Mailer we provider as Laravel 7.x added support for multiple mailers.