diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2019-10-17 18:32:36 +0300 |
---|---|---|
committer | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-07-03 17:38:17 +0300 |
commit | dc2cd0cea5339973fdc8cd2c34fa90c1858d0ac1 (patch) | |
tree | 2a7d84f34386f9e1bd24f721879a535c7a2bc949 /lib/Model | |
parent | 217b5e63432b47c81da3d53967da7fb59ae365a8 (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.php | 18 |
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()); |