diff options
Diffstat (limited to 'lib/private/mail/mailer.php')
-rw-r--r-- | lib/private/mail/mailer.php | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/private/mail/mailer.php b/lib/private/mail/mailer.php index a995322d89e..13c9167cabc 100644 --- a/lib/private/mail/mailer.php +++ b/lib/private/mail/mailer.php @@ -73,15 +73,30 @@ class Mailer implements IMailer { * has been supplied.) */ public function send(Message $message) { + $debugMode = $this->config->getSystemValue('mail_smtpdebug', false); + if (sizeof($message->getFrom()) === 0) { $message->setFrom([\OCP\Util::getDefaultEmailAddress($this->defaults->getName())]); } $failedRecipients = []; - $this->getInstance()->send($message->getSwiftMessage(), $failedRecipients); + $mailer = $this->getInstance(); + + // Enable logger if debug mode is enabled + if($debugMode) { + $mailLogger = new \Swift_Plugins_Loggers_ArrayLogger(); + $mailer->registerPlugin(new \Swift_Plugins_LoggerPlugin($mailLogger)); + } + + $mailer->send($message->getSwiftMessage(), $failedRecipients); + + // Debugging logging $logMessage = sprintf('Sent mail to "%s" with subject "%s"', print_r($message->getTo(), true), $message->getSubject()); $this->logger->debug($logMessage, ['app' => 'core']); + if($debugMode && isset($mailLogger)) { + $this->logger->debug($mailLogger->dump(), ['app' => 'core']); + } return $failedRecipients; } |