-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
Bug report
Title
Docker image is unable to accept sendgrid inbound parse as the stacktrace shows the mailparse_msg_create() function is undefined in the 2.1.5 (current) docker image.
Preconditions
The docker image webkul/krayin:2.1.5 running locally, with its API/web endpoint exposed for Sendgrid calls.
Steps to reproduce
- Run docker service exposing port 80 to internet.
- Setup sendgrid to send to the /admin/mail/inbound-parse endpoint as documented.
- Monitor output (in my case I used a proxy to literally see the network traffic, as no php error is emitted, so no logging otherwise occurs).
- Trigger email in.
Expected result
Emails should show in the inbox, or at least not return 500 to Sendgrid.
Actual result
There is no Dockerfile present in the git repo, so I do not see exactly how it is being built, but when run and exposed to the internet (say at https://example.com/) and SendGrid is configured to send the inbound_parse calls to https://example.com/admin/mail/inbound-parse, and an email is triggered, this stacktrace will be returned (HTML for surrounding page removed):
<!--
Error: Call to undefined function mailparse_msg_create() in file /var/www/html/laravel-crm/packages/Webkul/Email/src/Helpers/Parser.php on line 156
#0 /var/www/html/laravel-crm/packages/Webkul/Email/src/InboundEmailProcessor/SendgridEmailProcessor.php(43): Webkul\Email\Helpers\Parser->setText()
#1 /var/www/html/laravel-crm/packages/Webkul/Admin/src/Http/Controllers/Mail/EmailController.php(207): Webkul\Email\InboundEmailProcessor\SendgridEmailProcessor->processMessage()
#2 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Webkul\Admin\Http\Controllers\Mail\EmailController->inboundParse()
#3 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\Routing\Controller->callAction()
#4 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Illuminate\Routing\ControllerDispatcher->dispatch()
#5 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\Routing\Route->runController()
#6 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Routing/Router.php(806): Illuminate\Routing\Route->run()
#7 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#8 /var/www/html/laravel-crm/packages/Webkul/Admin/src/Http/Middleware/Locale.php(38): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#9 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Webkul\Admin\Http\Middleware\Locale->handle()
#10 /var/www/html/laravel-crm/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(66): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#11 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Barryvdh\Debugbar\Middleware\InjectDebugbar->handle()
#12 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#13 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#14 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#15 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle()
#16 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#17 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\View\Middleware\ShareErrorsFromSession->handle()
#18 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#19 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#20 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Session\Middleware\StartSession->handle()
#21 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#22 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#23 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#24 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#25 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#26 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Routing/Router.php(805): Illuminate\Pipeline\Pipeline->then()
#27 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Routing/Router.php(784): Illuminate\Routing\Router->runRouteWithinStack()
#28 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Routing/Router.php(748): Illuminate\Routing\Router->runRoute()
#29 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Routing/Router.php(737): Illuminate\Routing\Router->dispatchToRoute()
#30 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\Routing\Router->dispatch()
#31 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#32 /var/www/html/laravel-crm/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(66): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#33 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Barryvdh\Debugbar\Middleware\InjectDebugbar->handle()
#34 /var/www/html/laravel-crm/packages/Webkul/Installer/src/Http/Middleware/CanInstall.php(28): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#35 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Webkul\Installer\Http\Middleware\CanInstall->handle()
#36 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#37 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#38 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#39 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#40 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#41 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(99): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#42 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#43 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#44 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Http\Middleware\HandleCors->handle()
#45 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#46 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Http\Middleware\TrustProxies->handle()
#47 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#48 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\Pipeline\Pipeline->then()
#49 /var/www/html/laravel-crm/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#50 /var/www/html/laravel-crm/public/index.php(51): Illuminate\Foundation\Http\Kernel->handle()
#51 {main}
Reviewing Ondrej's repo, I think the docker image would have to be upgraded to at least Jammy. Currently it uses Focal as a base, and Ondrej doesn't publish packages for the older Ubuntu versions. Then adding an apt-get install -y php-mailparse may resolve the issue. If someone can point me to the Dockerfile used for building, I'm happy to make a PR once I get it working.