This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit d48f01ce8980317808979d98391de37d6330ba67
Author: Benoit Tellier <[email protected]>
AuthorDate: Mon Oct 5 11:57:16 2020 +0700

    JAMES-3402 JMAP MDN messages should have a Date header
    
    Missing date headers is misleading, and leads to wrong message ordering, eg 
in thunderbird.
---
 .../java/org/apache/james/jmap/draft/model/JmapMDN.java |  2 ++
 .../org/apache/james/jmap/draft/model/JmapMDNTest.java  | 17 +++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git 
a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/JmapMDN.java
 
b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/JmapMDN.java
index 57194b4..6532a55 100644
--- 
a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/JmapMDN.java
+++ 
b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/JmapMDN.java
@@ -20,6 +20,7 @@
 package org.apache.james.jmap.draft.model;
 
 import java.io.IOException;
+import java.util.Date;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.stream.Stream;
@@ -152,6 +153,7 @@ public class JmapMDN {
             .setTo(getSenderAddress(originalMessage))
             .setFrom(username.asString())
             .setSubject(subject)
+            .setDate(new Date())
             
.setMessageId(MimeUtil.createUniqueMessageId(username.getDomainPart().map(Domain::name).orElse(null)))
             .build();
     }
diff --git 
a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/JmapMDNTest.java
 
b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/JmapMDNTest.java
index f1c1c2b..5e2912e 100644
--- 
a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/JmapMDNTest.java
+++ 
b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/JmapMDNTest.java
@@ -151,6 +151,23 @@ public class JmapMDNTest {
     }
 
     @Test
+    public void generateMDNMessageShouldPositionDateHeader() throws Exception {
+        String senderAddress = "sender@local";
+        Message originMessage = Message.Builder.of()
+            .setMessageId("[email protected]")
+            .setFrom(senderAddress)
+            .setBody("body", StandardCharsets.UTF_8)
+            .addField(new RawField(JmapMDN.RETURN_PATH, "<" + senderAddress + 
">"))
+            .addField(new RawField(JmapMDN.DISPOSITION_NOTIFICATION_TO, "<" + 
senderAddress + ">"))
+            .build();
+
+        assertThat(
+            MDN.generateMDNMessage(originMessage, MAILBOX_SESSION)
+                .getDate())
+            .isNotNull();
+    }
+
+    @Test
     public void generateMDNMessageShouldFailOnMissingDisposition() throws 
Exception {
         String senderAddress = "sender@local";
         Message originMessage = Message.Builder.of()


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to