From b3d9b57815bc74a157f33388af3dfc9f79cf1df1 Mon Sep 17 00:00:00 2001 From: Bennet Becker Date: Thu, 22 Dec 2022 13:30:55 +0100 Subject: Adding API method to set the Auto-Submitted header to OCP\Mail\IMessage and implementation in OC\Mail\Message Signed-off-by: Bennet Becker --- lib/public/Mail/AutoSubmittedValue.php | 66 ++++++++++++++++++++++++++++++++++ lib/public/Mail/IMessage.php | 10 ++++++ 2 files changed, 76 insertions(+) create mode 100644 lib/public/Mail/AutoSubmittedValue.php (limited to 'lib/public') 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 @@ + + * + * @author Bennet Becker + * + * @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 . + * + */ +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; } -- cgit v1.2.3