Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/mail.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib/Model
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2019-10-17 18:32:36 +0300
committerChristoph Wurst <christoph@winzerhof-wurst.at>2020-07-03 17:38:17 +0300
commitdc2cd0cea5339973fdc8cd2c34fa90c1858d0ac1 (patch)
tree2a7d84f34386f9e1bd24f721879a535c7a2bc949 /lib/Model
parent217b5e63432b47c81da3d53967da7fb59ae365a8 (diff)
Store the `references`, `in-reply-to` and the thread root id
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'lib/Model')
-rw-r--r--lib/Model/IMAPMessage.php18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/Model/IMAPMessage.php b/lib/Model/IMAPMessage.php
index df9f4f69f..6d73bcbae 100644
--- a/lib/Model/IMAPMessage.php
+++ b/lib/Model/IMAPMessage.php
@@ -38,6 +38,7 @@ use Horde_Imap_Client_Fetch_Query;
use Horde_Imap_Client_Ids;
use Horde_Imap_Client_Mailbox;
use Horde_Imap_Client_Socket;
+use Horde_Mime_Headers;
use Horde_Mime_Part;
use JsonSerializable;
use OC;
@@ -163,6 +164,20 @@ class IMAPMessage implements IMessage, JsonSerializable {
return $this->fetch->getEnvelope();
}
+ private function getRawReferences(): string {
+ /** @var Horde_Mime_Headers $headers */
+ $headers = $this->fetch->getHeaders('references', Horde_Imap_Client_Data_Fetch::HEADER_PARSE);
+ $header = $headers->getHeader('references');
+ if ($header === null) {
+ return '';
+ }
+ return $header->value_single;
+ }
+
+ private function getRawInReplyTo(): string {
+ return $this->fetch->getEnvelope()->in_reply_to;
+ }
+
/**
* @return AddressList
*/
@@ -630,6 +645,9 @@ class IMAPMessage implements IMessage, JsonSerializable {
$msg->setUid($this->getUid());
$msg->setMessageId($this->getMessageId());
+ $msg->setReferences($this->getRawReferences());
+ $msg->setThreadRootId($this->getMessageId());
+ $msg->setInReplyTo($this->getRawInReplyTo());
$msg->setMailboxId($mailboxId);
$msg->setFrom($this->getFrom());
$msg->setTo($this->getTo());