diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-11-30 11:27:38 +0300 |
---|---|---|
committer | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-11-30 11:31:48 +0300 |
commit | 198183c4adec524097f4a4a142979ecd42d60d8d (patch) | |
tree | 744e198d02a2187561f4410fd2d043006769f5ec /lib/Listener | |
parent | 169b36790d6c4eb8f5f4c1e5a77ea2add1c0a71d (diff) |
Handle special mailbox sync when they don't exist
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'lib/Listener')
-rw-r--r-- | lib/Listener/MailboxesSynchronizedSpecialMailboxesUpdater.php | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/lib/Listener/MailboxesSynchronizedSpecialMailboxesUpdater.php b/lib/Listener/MailboxesSynchronizedSpecialMailboxesUpdater.php index 32c009061..ee6cf783b 100644 --- a/lib/Listener/MailboxesSynchronizedSpecialMailboxesUpdater.php +++ b/lib/Listener/MailboxesSynchronizedSpecialMailboxesUpdater.php @@ -71,16 +71,34 @@ class MailboxesSynchronizedSpecialMailboxesUpdater implements IEventListener { ); if ($mailAccount->getDraftsMailboxId() === null || !array_key_exists($mailAccount->getDraftsMailboxId(), $mailboxes)) { - $draftsMailbox = $this->findSpecial($mailboxes, 'drafts'); - $mailAccount->setDraftsMailboxId($draftsMailbox->getId()); + try { + $draftsMailbox = $this->findSpecial($mailboxes, 'drafts'); + $mailAccount->setDraftsMailboxId($draftsMailbox->getId()); + } catch (DoesNotExistException $e) { + $this->logger->info("Account " . $account->getId() . " does not have a drafts mailbox"); + + $mailAccount->setDraftsMailboxId(null); + } } if ($mailAccount->getSentMailboxId() === null || !array_key_exists($mailAccount->getSentMailboxId(), $mailboxes)) { - $sentMailbox = $this->findSpecial($mailboxes, 'sent'); - $mailAccount->setSentMailboxId($sentMailbox->getId()); + try { + $sentMailbox = $this->findSpecial($mailboxes, 'sent'); + $mailAccount->setSentMailboxId($sentMailbox->getId()); + } catch (DoesNotExistException $e) { + $this->logger->info("Account " . $account->getId() . " does not have a sent mailbox"); + + $mailAccount->setSentMailboxId(null); + } } if ($mailAccount->getTrashMailboxId() === null || !array_key_exists($mailAccount->getTrashMailboxId(), $mailboxes)) { - $trashMailbox = $this->findSpecial($mailboxes, 'trash'); - $mailAccount->setTrashMailboxId($trashMailbox->getId()); + try { + $trashMailbox = $this->findSpecial($mailboxes, 'trash'); + $mailAccount->setTrashMailboxId($trashMailbox->getId()); + } catch (DoesNotExistException $e) { + $this->logger->info("Account " . $account->getId() . " does not have a trash mailbox"); + + $mailAccount->setTrashMailboxId(null); + } } $this->mailAccountMapper->update($mailAccount); |