mirror of
https://github.com/nextcloud/server.git
synced 2026-06-09 08:44:07 -04:00
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>
This commit is contained in:
parent
5c4b4bde1b
commit
b3d9b57815
3 changed files with 109 additions and 0 deletions
|
|
@ -31,6 +31,7 @@ declare(strict_types=1);
|
|||
*/
|
||||
namespace OC\Mail;
|
||||
|
||||
use OCP\Mail\AutoSubmittedValue;
|
||||
use OCP\Mail\IAttachment;
|
||||
use OCP\Mail\IEMailTemplate;
|
||||
use OCP\Mail\IMessage;
|
||||
|
|
@ -301,4 +302,36 @@ class Message implements IMessage {
|
|||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 $this
|
||||
*/
|
||||
public function setAutoSubmitted(string $value): IMessage {
|
||||
$headers = $this->swiftMessage->getHeaders();
|
||||
if($headers->has('Auto-Submitted')) {
|
||||
$auto_submitted = $headers->get('Auto-Submitted');
|
||||
$auto_submitted->setValue($value);
|
||||
} else {
|
||||
$headers->addTextHeader('Auto-Submitted', $value);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current value of the Auto-Submitted header. Defaults to "no"
|
||||
* which is equivalent to the header not existing at all
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getAutoSubmitted(): AutoSubmittedValue {
|
||||
$headers = $this->swiftMessage->getHeaders();
|
||||
|
||||
return $headers->has('Auto-Submitted') ?
|
||||
$headers->get('Auto-Submitted')->toString() : "no";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
66
lib/public/Mail/AutoSubmittedValue.php
Normal file
66
lib/public/Mail/AutoSubmittedValue.php
Normal file
|
|
@ -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';
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue