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