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]
