From a94358062daaad3aba8289fedf17e6277e47fb3d Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Fri, 23 Nov 2018 16:53:32 +0100 Subject: 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(-) (limited to 'lib') diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index e76269f9d86..ef926ce9883 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; } /** -- cgit v1.2.3 From ab01402599002bf1cd70e64d53669c53d7b18bc6 Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Wed, 28 Nov 2018 19:49:33 +0100 Subject: log full exception Signed-off-by: Bjoern Schiessle --- lib/private/Share20/Manager.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index ef926ce9883..beafc888c49 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -780,7 +780,7 @@ class Manager implements IManager { return false; } } catch (\Exception $e) { - $this->logger->error('Share notification mail could not be send: ' . $e->getMessage()); + $this->logger->logException($e, ['message' => 'Share notification mail could not be send']); return false; } -- cgit v1.2.3 From 8ed004d6ae7429c03431361c8b1bf386ed18c712 Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Tue, 4 Dec 2018 19:33:30 +0100 Subject: fix typo Signed-off-by: Bjoern Schiessle --- lib/private/Share20/Manager.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index beafc888c49..64fdff5277f 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -776,11 +776,11 @@ class Manager implements IManager { try { $failedRecipients = $this->mailer->send($message); if(!empty($failedRecipients)) { - $this->logger->error('Share notification mail could not be send to: ' . implode(', ', $failedRecipients)); + $this->logger->error('Share notification mail could not be sent to: ' . implode(', ', $failedRecipients)); return false; } } catch (\Exception $e) { - $this->logger->logException($e, ['message' => 'Share notification mail could not be send']); + $this->logger->logException($e, ['message' => 'Share notification mail could not be sent']); return false; } -- cgit v1.2.3 From 7e3e3bed5048940033494d6179527b8b3112e15f Mon Sep 17 00:00:00 2001 From: Christoph Wurst Date: Wed, 30 Jan 2019 15:32:19 +0100 Subject: Fix typos and unused return values Signed-off-by: Christoph Wurst --- lib/private/Share20/Manager.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'lib') diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index 64fdff5277f..b04f1acbd87 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -692,15 +692,15 @@ class Manager implements IManager { $emailAddress, $share->getExpirationDate() ); - $this->logger->debug('Send share notification to ' . $emailAddress . ' for share with ID ' . $share->getId(), ['app' => 'share']); + $this->logger->debug('Sent share notification to ' . $emailAddress . ' for share with ID ' . $share->getId(), ['app' => 'share']); } else { - $this->logger->debug('Share notification not send to ' . $share->getSharedWith() . ' because email address is not set.', ['app' => 'share']); + $this->logger->debug('Share notification not sent to ' . $share->getSharedWith() . ' because email address is not set.', ['app' => 'share']); } } else { - $this->logger->debug('Share notification not send to ' . $share->getSharedWith() . ' because user could not be found.', ['app' => 'share']); + $this->logger->debug('Share notification not sent to ' . $share->getSharedWith() . ' because user could not be found.', ['app' => 'share']); } } else { - $this->logger->debug('Share notification not send because mailsend is false.', ['app' => 'share']); + $this->logger->debug('Share notification not sent because mailsend is false.', ['app' => 'share']); } } @@ -708,13 +708,16 @@ class Manager implements IManager { } /** + * Send mail notifications + * + * This method will catch and log mail transmission errors + * * @param IL10N $l Language of the recipient * @param string $filename file/folder name * @param string $link link to the file/folder * @param string $initiator user ID of share sender * @param string $shareWith email address of share receiver * @param \DateTime|null $expiration - * @return bool */ protected function sendMailNotification(IL10N $l, $filename, @@ -777,14 +780,11 @@ class Manager implements IManager { $failedRecipients = $this->mailer->send($message); if(!empty($failedRecipients)) { $this->logger->error('Share notification mail could not be sent to: ' . implode(', ', $failedRecipients)); - return false; + return; } } catch (\Exception $e) { $this->logger->logException($e, ['message' => 'Share notification mail could not be sent']); - return false; } - - return true; } /** -- cgit v1.2.3