• Dev
  • Blomstra Email Conversations: post via email to your Flarum forum

djemyjenab integrating with telegram, whatsapp and perhaps other communication channels is what made us decide to generalize the implementation and.. that's very much possible! We can even build it (on your behalf), just check https://blomstra.net/development for more information.

majkimajki I made a PR to fix this just a few minutes ago 😉

    5 days later

    luceos

    When using; composer require blomstra/email-conversations:"*"

    I cannot update to the newest commit on github to test if this works.

    Any ideas?

      majkimajki you need to run composer update blomstra/email-conversations as there's no stable release.

        luceos This has no effect on the files you updated on github.

        PS. Have you tested creating new disscussions with this commit, everything works?

        a month later

        If you're using this extension, can you share your experiences? That would be very welcome in our progression in this extension, thanks 👍

        4 months later

        I'm looking at giving this a go, but I haven't got mailgun. Can I install it as an extension or is it something I need running on my host? Stupid question maybe but the mailgun website didn't say much more than what it costs.

          adam42 mailgun provides email services, they also allow incoming email and parses it for us. You don't need to run anything on your server, although running a queue would be smart for growing communities.

          Oh, I see. I searched for it on extiverse but didn't find it. I'll look further. The host server has been set up by the provider with an SMTP server with the appropriate anti-spam stuff like DKIM and is what I'm expected to use. Not sure about queues.

          Nope, can't do it. Sorry, this is obviously all a level higher than my paygrade.

          composer require mailgun:*
          doesn't work.

          In case its relevant to my situation, I see messages in composer like this:

          Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead

          I haven't managed to work out how to get rid of it without breaking anything.

            adam42 Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead

            That message can be ignored. Everyone using Flarum sees it because it's a dependency of a dependency of Flarum. It will go away once we update the middle dependency to its new major version.

            If the composer require command fails, there must be more in the output. mailgun doesn't look like a valid Composer package name though, I'm not sure where you copied that command from.

            To learn how to configure Flarum to send emails using Mailgun (which I believe is a pre-requirement for this extension?) you can read the Flarum documentation https://docs.flarum.org/mail#mailgun

            6 months later
            17 days later

            gackes see Composer command in the first post. I think the @beta requirement is mandatory to make this work.

            3 months later

            luceos

            Just curious was slack integration ever moved forward?

              5 months later

              Can't find an extiverse entry for this. Is it still dependent on mailgun?

                adam42 it was never released to the public. But it works. And yes it needs mailgun.

                Oh well. Maybe one day. I have a particular user who always replies to notifications from our forum with emails that end up in my inbox instead of on the thread. I guess I should just make her emails bounce back to her.

                2 months later

                Tried setting this up tonight from https://flarum.org/extension/blomstra/email-conversations

                Getting the below error when going to my FORUMURL/admin#/mail and clicking the Create Mailgun incoming route button.

                I followed the instructions for setup, and cleared cache as well.

                [2024-06-07 01:49:02] flarum.ERROR: Mailgun\Exception\HttpClientException: Your credentials are incorrect. in /home/treyb/atlticket.com/vendor/mailgun/mailgun-php/src/Exception/HttpClientException.php:68
                Stack trace:
                #0 /home/treyb/atlticket.com/vendor/mailgun/mailgun-php/src/Api/HttpApi.php(94): Mailgun\Exception\HttpClientException::unauthorized(Object(Nyholm\Psr7\Response))
                #1 /home/treyb/atlticket.com/vendor/mailgun/mailgun-php/src/Api/HttpApi.php(76): Mailgun\Api\HttpApi->handleErrors(Object(Nyholm\Psr7\Response))
                #2 /home/treyb/atlticket.com/vendor/mailgun/mailgun-php/src/Api/Route.php(92): Mailgun\Api\HttpApi->hydrateResponse(Object(Nyholm\Psr7\Response), 'Mailgun\\Model\\R...')
                #3 /home/treyb/atlticket.com/vendor/blomstra/email-conversations/src/Api/Controller/CreateMailgunActionController.php(43): Mailgun\Api\Route->create('match_recipient...', Array, 'Blomstra Email ...')
                #4 /home/treyb/atlticket.com/vendor/flarum/core/src/Api/Controller/AbstractSerializeController.php(116): Blomstra\EmailConversations\Api\Controller\CreateMailgunActionController->data(Object(Laminas\Diactoros\ServerRequest), Object(Tobscure\JsonApi\Document))
                #5 /home/treyb/atlticket.com/vendor/flarum/core/src/Api/Controller/AbstractCreateController.php(22): Flarum\Api\Controller\AbstractSerializeController->handle(Object(Laminas\Diactoros\ServerRequest))
                #6 /home/treyb/atlticket.com/vendor/flarum/core/src/Http/RouteHandlerFactory.php(41): Flarum\Api\Controller\AbstractCreateController->handle(Object(Laminas\Diactoros\ServerRequest))
                #7 /home/treyb/atlticket.com/vendor/flarum/core/src/Http/Middleware/ExecuteRoute.php(27): Flarum\Http\RouteHandlerFactory->Flarum\Http\{closure}(Object(Laminas\Diactoros\ServerRequest), Array)
                #8 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ExecuteRoute->process(Object(Laminas\Diactoros\ServerRequest), Object(Closure))
                #9 /home/treyb/atlticket.com/vendor/fof/oauth/src/Middleware/BindRequest.php(33): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #10 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): FoF\OAuth\Middleware\BindRequest->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #11 /home/treyb/atlticket.com/vendor/fof/reactions/src/Middleware/BindRequestToContainer.php(35): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #12 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): FoF\Reactions\Middleware\BindRequestToContainer->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #13 /home/treyb/atlticket.com/vendor/flarum/core/src/Api/Middleware/ThrottleApi.php(33): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #14 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Api\Middleware\ThrottleApi->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #15 /home/treyb/atlticket.com/vendor/flarum/core/src/Http/Middleware/CheckCsrfToken.php(44): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #16 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\CheckCsrfToken->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #17 /home/treyb/atlticket.com/vendor/flarum/core/src/Http/Middleware/ResolveRoute.php(69): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #18 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ResolveRoute->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #19 /home/treyb/atlticket.com/vendor/flarum/core/src/Http/Middleware/SetLocale.php(51): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #20 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\SetLocale->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #21 /home/treyb/atlticket.com/vendor/flarum/core/src/Http/Middleware/AuthenticateWithHeader.php(58): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #22 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\AuthenticateWithHeader->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #23 /home/treyb/atlticket.com/vendor/flarum/core/src/Http/Middleware/AuthenticateWithSession.php(31): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #24 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\AuthenticateWithSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #25 /home/treyb/atlticket.com/vendor/flarum/core/src/Http/Middleware/RememberFromCookie.php(52): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #26 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\RememberFromCookie->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #27 /home/treyb/atlticket.com/vendor/flarum/core/src/Http/Middleware/StartSession.php(61): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #28 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\StartSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #29 /home/treyb/atlticket.com/vendor/flarum/core/src/Api/Middleware/FakeHttpMethods.php(29): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #30 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Api\Middleware\FakeHttpMethods->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #31 /home/treyb/atlticket.com/vendor/flarum/core/src/Http/Middleware/ParseJsonBody.php(28): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #32 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ParseJsonBody->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #33 /home/treyb/atlticket.com/vendor/flarum/core/src/Http/Middleware/HandleErrors.php(57): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #34 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\HandleErrors->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #35 /home/treyb/atlticket.com/vendor/flarum/core/src/Http/Middleware/InjectActorReference.php(25): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #36 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\InjectActorReference->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #37 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(75): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #38 /home/treyb/atlticket.com/vendor/middlewares/request-handler/src/RequestHandler.php(84): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #39 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Middlewares\RequestHandler->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #40 /home/treyb/atlticket.com/vendor/middlewares/base-path-router/src/BasePathRouter.php(99): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #41 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Middlewares\BasePathRouter->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #42 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Middleware/OriginalMessages.php(36): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #43 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Laminas\Stratigility\Middleware\OriginalMessages->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #44 /home/treyb/atlticket.com/vendor/middlewares/base-path/src/BasePath.php(73): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #45 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Middlewares\BasePath->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #46 /home/treyb/atlticket.com/vendor/flarum/core/src/Http/Middleware/ProcessIp.php(24): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #47 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ProcessIp->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
                #48 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(75): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
                #49 /home/treyb/atlticket.com/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(64): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\EmptyPipelineHandler))
                #50 /home/treyb/atlticket.com/vendor/laminas/laminas-httphandlerrunner/src/RequestHandlerRunner.php(73): Laminas\Stratigility\MiddlewarePipe->handle(Object(Laminas\Diactoros\ServerRequest))
                #51 /home/treyb/atlticket.com/vendor/flarum/core/src/Http/Server.php(45): Laminas\HttpHandlerRunner\RequestHandlerRunner->run()
                #52 /home/treyb/atlticket.com/index.php(26): Flarum\Http\Server->listen()
                #53 {main}