Skip to content

Commit b7c4f0c

Browse files
committed
fix: Mailer::send will always thrown an exception in case of errors during delivery
1 parent 4d7271e commit b7c4f0c

File tree

3 files changed

+9
-22
lines changed

3 files changed

+9
-22
lines changed

apps/dav/lib/CalDAV/Schedule/IMipPlugin.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,12 +116,7 @@ public function schedule(ITip\Message $iTipMessage) {
116116
->setSubject($subject)
117117
->attach($iTipMessage->message->serialize(), "event.ics", $contentType);
118118
try {
119-
$failed = $this->mailer->send($message);
120119
$iTipMessage->scheduleStatus = '1.1; Scheduling message is sent via iMip';
121-
if ($failed) {
122-
$this->logger->error('Unable to deliver message to {failed}', ['app' => 'dav', 'failed' => \implode(', ', $failed)]);
123-
$iTipMessage->scheduleStatus = '5.0; EMail delivery failed';
124-
}
125120
} catch (\Exception $ex) {
126121
$this->logger->logException($ex, ['app' => 'dav']);
127122
$iTipMessage->scheduleStatus = '5.0; EMail delivery failed';

lib/private/Mail/Mailer.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,6 @@ public function send(Message $message): array {
9797
try {
9898
$this->getInstance($logger ?? null)->send($message->getMessage());
9999
} catch (TransportExceptionInterface $e) {
100-
$this->logger->logException($e);
101-
102100
# in case of exception it is expected that none of the mails has been sent
103101
$failedRecipients = [];
104102

@@ -111,7 +109,10 @@ public function send(Message $message): array {
111109
}
112110
});
113111

114-
return $failedRecipients;
112+
$this->logger->logException($e, ['failed-recipients' => $recipients]);
113+
114+
# list of failed recipients is not added by intention to not accidentally disclose private data
115+
throw new \RuntimeException("Failed to deliver email", 0, $e);
115116
}
116117

117118
$allRecipients = [];

settings/Controller/MailSettingsController.php

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -175,21 +175,12 @@ public function sendTestMail() {
175175
$message->setFrom([$this->defaultMailAddress]);
176176
$message->setSubject($this->l10n->t('test email settings'));
177177
$message->setPlainBody('If you received this email, the settings seem to be correct.');
178-
$failed = $this->mailer->send($message);
179-
if (empty($failed)) {
180-
return ['data' =>
181-
['message' =>
182-
(string) $this->l10n->t('Email sent')
183-
],
184-
'status' => 'success'
185-
];
186-
}
187-
188-
return [
189-
'data' => [
190-
'message' => (string) $this->l10n->t('A problem occurred while sending the email. Please revise your settings. (Error: %s)', ['not delivered']),
178+
$this->mailer->send($message);
179+
return ['data' =>
180+
['message' =>
181+
(string) $this->l10n->t('Email sent')
191182
],
192-
'status' => 'error',
183+
'status' => 'success'
193184
];
194185
} catch (\Exception $e) {
195186
return [

0 commit comments

Comments
 (0)