From f904b36a531d01c1ce59813f32486bb2d535f758 Mon Sep 17 00:00:00 2001 From: Sebastian Krupinski Date: Thu, 25 Jun 2026 23:40:26 -0400 Subject: [PATCH] fix: use seen insstead of read flag Signed-off-by: Sebastian Krupinski --- lib/Providers/Mail/MessageProperties.php | 4 ++-- lib/Providers/Mail/Service.php | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/Providers/Mail/MessageProperties.php b/lib/Providers/Mail/MessageProperties.php index 7076513..b21b368 100644 --- a/lib/Providers/Mail/MessageProperties.php +++ b/lib/Providers/Mail/MessageProperties.php @@ -271,7 +271,7 @@ class MessageProperties extends MessagePropertiesMutableAbstract { $this->data[static::PROPERTY_FLAGS] = []; foreach ($parameters['keywords'] as $keyword => $value) { $flag = match($keyword) { - '$seen' => 'read', + '$seen' => 'seen', '$flagged' => 'flagged', '$answered' => 'answered', '$draft' => 'draft', @@ -365,7 +365,7 @@ class MessageProperties extends MessagePropertiesMutableAbstract { $parameters['keywords'] = []; foreach ($this->data['flags'] as $flag => $value) { $keyword = match($flag) { - 'read' => '$seen', + 'seen' => '$seen', 'flagged' => '$flagged', 'answered' => '$answered', 'draft' => '$draft', diff --git a/lib/Providers/Mail/Service.php b/lib/Providers/Mail/Service.php index a43ad3c..30051c6 100644 --- a/lib/Providers/Mail/Service.php +++ b/lib/Providers/Mail/Service.php @@ -641,7 +641,16 @@ class Service implements ServiceBaseInterface, ServiceMutableInterface, ServiceC $patch = $this->mailService->entityFresh(); $flags = $properties->getFlags(); foreach ($flags as $flag => $value) { - $patch->keyword($flag, $value); + // translate canonical flag names to JMAP keywords + $keyword = match($flag) { + 'seen' => '$seen', + 'flagged' => '$flagged', + 'answered' => '$answered', + 'draft' => '$draft', + 'deleted' => '$deleted', + default => $flag + }; + $patch->keyword($keyword, $value); } $dispositions = $this->mailService->entityPatch($patch, ...array_keys($targets));