From 8c5dbb41979b7a30a838a7d93357558c12945a25 Mon Sep 17 00:00:00 2001 From: FreeScout Date: Mon, 22 Apr 2024 01:36:46 -0700 Subject: [PATCH] Fetch emails sent to multiple mailboxes on a per mailbox basis - closes #3941 --- app/Console/Commands/FetchEmails.php | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/app/Console/Commands/FetchEmails.php b/app/Console/Commands/FetchEmails.php index 293576726..8b0b6f451 100644 --- a/app/Console/Commands/FetchEmails.php +++ b/app/Console/Commands/FetchEmails.php @@ -82,8 +82,6 @@ public function handle() $this->line('['.date('Y-m-d H:i:s').'] Fetching '.($this->option('unseen') ? 'UNREAD' : 'ALL').' emails for the last '.$this->option('days').' days.'); - $this->extra_import = []; - if (Mailbox::getInProtocols() === Mailbox::$in_protocols) { $this->mailboxes = Mailbox::get(); } else { @@ -124,7 +122,8 @@ function ($mailboxId) { $this->info('['.date('Y-m-d H:i:s').'] Mailbox: '.$mailbox->name); $this->mailbox = $mailbox; - + $this->extra_import = []; + try { $this->fetch($mailbox); } catch (\Exception $e) { @@ -132,16 +131,16 @@ function ($mailboxId) { $this->logError('Error: '.$e->getMessage().'; File: '.$e->getFile().' ('.$e->getLine().')').')'; } - usleep($sleep); - } - - // Import emails sent to several mailboxes at once. - if (count($this->extra_import)) { - $this->line('['.date('Y-m-d H:i:s').'] Importing emails sent to several mailboxes at once: '.count($this->extra_import)); - foreach ($this->extra_import as $i => $extra_import) { - $this->line('['.date('Y-m-d H:i:s').'] '.($i+1).') '.$extra_import['message']->getSubject()); - $this->processMessage($extra_import['message'], $extra_import['message_id'], $extra_import['mailbox'], [], true); + // Import emails sent to several mailboxes at once. + if (count($this->extra_import)) { + $this->line('['.date('Y-m-d H:i:s').'] Importing emails sent to several mailboxes at once: '.count($this->extra_import)); + foreach ($this->extra_import as $i => $extra_import) { + $this->line('['.date('Y-m-d H:i:s').'] '.($i+1).') '.$extra_import['message']->getSubject()); + $this->processMessage($extra_import['message'], $extra_import['message_id'], $extra_import['mailbox'], [], true); + } } + + usleep($sleep); } if ($successfully && count($this->mailboxes)) {