From 0d83ba28d598d1f5ed5851235d38f41a4cfcc4d0 Mon Sep 17 00:00:00 2001 From: Paras Suthar Darji Date: Tue, 15 Jul 2025 11:36:34 +0530 Subject: [PATCH] Update MailConfigBootstrapper.php while running in queue:work previosly it was not working made this changes now it is working fine --- src/Bootstrappers/MailConfigBootstrapper.php | 24 ++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/Bootstrappers/MailConfigBootstrapper.php b/src/Bootstrappers/MailConfigBootstrapper.php index 60028cc1..0d75f51b 100644 --- a/src/Bootstrappers/MailConfigBootstrapper.php +++ b/src/Bootstrappers/MailConfigBootstrapper.php @@ -43,9 +43,19 @@ class MailConfigBootstrapper implements TenancyBootstrapper static::$credentialsMap = array_merge(static::$credentialsMap, static::$mapPresets[static::$mailer] ?? []); } - public function bootstrap(Tenant $tenant): void + public function bootstrap(Tenant $tenant): void { - // Forget the mail manager instance to clear the cached mailers + // Clear the mail manager and its cached mailers + if ($this->app->bound('mail.manager')) { + $mailManager = $this->app->make('mail.manager'); + + // Clear all cached mailer instances + $reflection = new \ReflectionClass($mailManager); + $mailersProperty = $reflection->getProperty('mailers'); + $mailersProperty->setAccessible(true); + $mailersProperty->setValue($mailManager, []); + } + $this->app->forgetInstance('mail.manager'); $this->setConfig($tenant); @@ -55,6 +65,16 @@ class MailConfigBootstrapper implements TenancyBootstrapper { $this->unsetConfig(); + // Clear cached mailers again + if ($this->app->bound('mail.manager')) { + $mailManager = $this->app->make('mail.manager'); + + $reflection = new \ReflectionClass($mailManager); + $mailersProperty = $reflection->getProperty('mailers'); + $mailersProperty->setAccessible(true); + $mailersProperty->setValue($mailManager, []); + } + $this->app->forgetInstance('mail.manager'); }