From aea4b3166baab48fbc36ce40dfc5481fc6ba45ab Mon Sep 17 00:00:00 2001 From: Lukas Reschke <lukas@owncloud.com> Date: Tue, 17 Mar 2015 19:41:13 +0100 Subject: [PATCH] Add debug mode back to mailer This re-adds the debug mode for the mailer which will log the whole SMTP traffic within the log file if enabled. --- lib/private/mail/mailer.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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; } -- GitLab