aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public
diff options
context:
space:
mode:
authorBennet Becker <bbecker@pks.mpg.de>2022-12-22 13:30:55 +0100
committerBennet Becker <dev@bennet.cc>2022-12-23 19:26:20 +0100
commitb3d9b57815bc74a157f33388af3dfc9f79cf1df1 (patch)
tree2d4836cd555873036d8c922155ada12d454be965 /lib/public
parent5c4b4bde1b2da872c3e03846954214a8aa8c598e (diff)
downloadnextcloud-server-b3d9b57815bc74a157f33388af3dfc9f79cf1df1.tar.gz
nextcloud-server-b3d9b57815bc74a157f33388af3dfc9f79cf1df1.zip
Adding API method to set the Auto-Submitted header to OCP\Mail\IMessage
and implementation in OC\Mail\Message Signed-off-by: Bennet Becker <bbecker@pks.mpg.de>
Diffstat (limited to 'lib/public')
-rw-r--r--lib/public/Mail/AutoSubmittedValue.php66
-rw-r--r--lib/public/Mail/IMessage.php10
2 files changed, 76 insertions, 0 deletions
diff --git a/lib/public/Mail/AutoSubmittedValue.php b/lib/public/Mail/AutoSubmittedValue.php
new file mode 100644
index 00000000000..3c3d9f13078
--- /dev/null
+++ b/lib/public/Mail/AutoSubmittedValue.php
@@ -0,0 +1,66 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * @copyright Copyright (c) 2022 Bennet Becker <dev@bennet.cc>
+ *
+ * @author Bennet Becker <dev@bennet.cc>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+namespace OCP\Mail;
+
+/**
+ * Keyword values for the Auto-Submitted email header, as per RFC 3834.
+ *
+ * The value "auto-notified" as per RFC 5436 is deliberately omitted as it is
+ * meant of notification of the sieve system.
+ *
+ * @see https://www.iana.org/assignments/auto-submitted-keywords/auto-submitted-keywords.xhtml
+ *
+ * @since 26.0.0
+ */
+final class AutoSubmittedValue {
+ /**
+ * Indicates that a message was NOT automatically generated, but was
+ * created by a human (or following human interaction). It is the equivalent
+ * to the absence of an Auto-Submitted header altogether.
+ *
+ * @var string
+ * @since 26.0.0
+ */
+ public const NO = 'no';
+
+ /**
+ * Indicates that a message was generated by an automatic process, and is
+ * not a direct response to another message
+ *
+ * @var string
+ * @since 26.0.0
+ */
+ public const AUTO_GENERATED = 'auto-generated';
+
+ /**
+ * Indicates that a message was automatically generated as a direct response
+ * to another message.
+ *
+ * @var string
+ * @since 26.0.0
+ */
+ public const AUTO_REPLIED = 'auto-replied';
+}
diff --git a/lib/public/Mail/IMessage.php b/lib/public/Mail/IMessage.php
index 1549f61c1fe..93afad3727e 100644
--- a/lib/public/Mail/IMessage.php
+++ b/lib/public/Mail/IMessage.php
@@ -93,4 +93,14 @@ interface IMessage {
* @since 13.0.0
*/
public function useTemplate(IEMailTemplate $emailTemplate): IMessage;
+
+ /**
+ * Add the Auto-Submitted header to the email, preventing most automated
+ * responses to automated messages.
+ *
+ * @param string $value (one of AutoSubmittedValue::NO, AutoSubmittedValue::AUTO_GENERATED, AutoSubmittedValue::AUTO_REPLIED)
+ * @return IMessage
+ * @since 26.0.0
+ */
+ public function setAutoSubmitted(string $value): IMessage;
}