diff --git a/lib/private/Notification/Notification.php b/lib/private/Notification/Notification.php
index 7346f35f966a11b8aa4d0442ea63089d3017819a..ffcb36af6e5b817c6442fa13cc1e81794f2fa589 100644
--- a/lib/private/Notification/Notification.php
+++ b/lib/private/Notification/Notification.php
@@ -73,6 +73,12 @@ class Notification implements INotification {
 	/** @var string */
 	protected $messageParsed;
 
+	/** @var string */
+	protected $messageRich;
+
+	/** @var array */
+	protected $messageRichParameters;
+
 	/** @var string */
 	protected $link;
 
@@ -112,6 +118,8 @@ class Notification implements INotification {
 		$this->message = '';
 		$this->messageParameters = [];
 		$this->messageParsed = '';
+		$this->messageRich = '';
+		$this->messageRichParameters = [];
 		$this->link = '';
 		$this->icon = '';
 		$this->actions = [];
@@ -231,12 +239,10 @@ class Notification implements INotification {
 		if (!is_string($subject) || $subject === '' || isset($subject[64])) {
 			throw new \InvalidArgumentException('The given subject is invalid');
 		}
-		$this->subject = $subject;
 
-		if (!is_array($parameters)) {
-			throw new \InvalidArgumentException('The given subject parameters are invalid');
-		}
+		$this->subject = $subject;
 		$this->subjectParameters = $parameters;
+
 		return $this;
 	}
 
@@ -289,11 +295,8 @@ class Notification implements INotification {
 		if (!is_string($subject) || $subject === '') {
 			throw new \InvalidArgumentException('The given parsed subject is invalid');
 		}
-		$this->subjectRich = $subject;
 
-		if (!is_array($parameters)) {
-			throw new \InvalidArgumentException('The given subject parameters are invalid');
-		}
+		$this->subjectRich = $subject;
 		$this->subjectRichParameters = $parameters;
 
 		return $this;
@@ -326,12 +329,10 @@ class Notification implements INotification {
 		if (!is_string($message) || $message === '' || isset($message[64])) {
 			throw new \InvalidArgumentException('The given message is invalid');
 		}
-		$this->message = $message;
 
-		if (!is_array($parameters)) {
-			throw new \InvalidArgumentException('The given message parameters are invalid');
-		}
+		$this->message = $message;
 		$this->messageParameters = $parameters;
+
 		return $this;
 	}
 
@@ -373,6 +374,40 @@ class Notification implements INotification {
 		return $this->messageParsed;
 	}
 
+	/**
+	 * @param string $message
+	 * @param array $parameters
+	 * @return $this
+	 * @throws \InvalidArgumentException if the message or parameters are invalid
+	 * @since 9.2.0
+	 */
+	public function setRichMessage($message, array $parameters = []) {
+		if (!is_string($message) || $message === '') {
+			throw new \InvalidArgumentException('The given parsed message is invalid');
+		}
+
+		$this->messageRich = $message;
+		$this->messageRichParameters = $parameters;
+
+		return $this;
+	}
+
+	/**
+	 * @return string
+	 * @since 9.2.0
+	 */
+	public function getRichMessage() {
+		return $this->messageRich;
+	}
+
+	/**
+	 * @return array[]
+	 * @since 9.2.0
+	 */
+	public function getRichMessageParameters() {
+		return $this->messageRichParameters;
+	}
+
 	/**
 	 * @param string $link
 	 * @return $this
@@ -516,6 +551,14 @@ class Notification implements INotification {
 			}
 		}
 
+		if ($this->getRichMessage() !== '' || !empty($this->getRichMessageParameters())) {
+			try {
+				$this->richValidator->validate($this->getRichMessage(), $this->getRichMessageParameters());
+			} catch (InvalidObjectExeption $e) {
+				return false;
+			}
+		}
+
 		return
 			$this->isValidCommon()
 			&&
diff --git a/lib/public/Notification/INotification.php b/lib/public/Notification/INotification.php
index 3a8bde0a375122f433de35b6138921781e4a58e6..55109a5ee2e4d58281769428f744cd28e2077d09 100644
--- a/lib/public/Notification/INotification.php
+++ b/lib/public/Notification/INotification.php
@@ -183,6 +183,27 @@ interface INotification {
 	 */
 	public function getParsedMessage();
 
+	/**
+	 * @param string $message
+	 * @param array $parameters
+	 * @return $this
+	 * @throws \InvalidArgumentException if the message or parameters are invalid
+	 * @since 9.2.0
+	 */
+	public function setRichMessage($message, array $parameters = []);
+
+	/**
+	 * @return string
+	 * @since 9.2.0
+	 */
+	public function getRichMessage();
+
+	/**
+	 * @return array[]
+	 * @since 9.2.0
+	 */
+	public function getRichMessageParameters();
+
 	/**
 	 * @param string $link
 	 * @return $this