From 9ee1febf629fa4180c483fb4a2c82559f5c50392 Mon Sep 17 00:00:00 2001
From: Morris Jobke <hey@morrisjobke.de>
Date: Mon, 16 Apr 2018 15:55:39 +0200
Subject: Provide an option to disable HTML emails

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
---
 lib/private/Mail/Message.php | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

(limited to 'lib/private/Mail/Message.php')

diff --git a/lib/private/Mail/Message.php b/lib/private/Mail/Message.php
index 7c7ecae8578..8a13e2c108c 100644
--- a/lib/private/Mail/Message.php
+++ b/lib/private/Mail/Message.php
@@ -39,12 +39,12 @@ use Swift_Message;
 class Message implements IMessage {
 	/** @var Swift_Message */
 	private $swiftMessage;
+	/** @var bool */
+	private $plainTextOnly;
 
-	/**
-	 * @param Swift_Message $swiftMessage
-	 */
-	public function __construct(Swift_Message $swiftMessage) {
+	public function __construct(Swift_Message $swiftMessage, bool $plainTextOnly) {
 		$this->swiftMessage = $swiftMessage;
+		$this->plainTextOnly = $plainTextOnly;
 	}
 
 	/**
@@ -246,7 +246,9 @@ class Message implements IMessage {
 	 * @return $this
 	 */
 	public function setHtmlBody($body) {
-		$this->swiftMessage->addPart($body, 'text/html');
+		if (!$this->plainTextOnly) {
+			$this->swiftMessage->addPart($body, 'text/html');
+		}
 		return $this;
 	}
 
@@ -264,7 +266,9 @@ class Message implements IMessage {
 	 * @return $this
 	 */
 	public function setBody($body, $contentType) {
-		$this->swiftMessage->setBody($body, $contentType);
+		if (!$this->plainTextOnly || $contentType !== 'text/html') {
+			$this->swiftMessage->setBody($body, $contentType);
+		}
 		return $this;
 	}
 
@@ -275,7 +279,9 @@ class Message implements IMessage {
 	public function useTemplate(IEMailTemplate $emailTemplate): IMessage {
 		$this->setSubject($emailTemplate->renderSubject());
 		$this->setPlainBody($emailTemplate->renderText());
-		$this->setHtmlBody($emailTemplate->renderHtml());
+		if (!$this->plainTextOnly) {
+			$this->setHtmlBody($emailTemplate->renderHtml());
+		}
 		return $this;
 	}
 }
-- 
cgit v1.2.3