From a94358062daaad3aba8289fedf17e6277e47fb3d Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Fri, 23 Nov 2018 16:53:32 +0100 Subject: [PATCH] handle mail send error gracefully log the error in case a notification mail of a new share couldn't be send to the recipient and finish the share operation successfully Signed-off-by: Bjoern Schiessle --- lib/private/Share20/Manager.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index e76269f9d8..ef926ce988 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -714,7 +714,7 @@ class Manager implements IManager { * @param string $initiator user ID of share sender * @param string $shareWith email address of share receiver * @param \DateTime|null $expiration - * @throws \Exception If mail couldn't be sent + * @return bool */ protected function sendMailNotification(IL10N $l, $filename, @@ -773,7 +773,18 @@ class Manager implements IManager { } $message->useTemplate($emailTemplate); - $this->mailer->send($message); + try { + $failedRecipients = $this->mailer->send($message); + if(!empty($failedRecipients)) { + $this->logger->error('Share notification mail could not be send to: ' . implode(', ', $failedRecipients)); + return false; + } + } catch (\Exception $e) { + $this->logger->error('Share notification mail could not be send: ' . $e->getMessage()); + return false; + } + + return true; } /**