Skip to content

Commit 4db70ee

Browse files
authored
[FIX] DSNBounce should add Auto-Submitted: auto-replied header (#2717)
1 parent 61f40b5 commit 4db70ee

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
package org.apache.james.transport.mailets;
2121

2222
import static org.apache.james.transport.mailets.remote.delivery.Bouncer.DELIVERY_ERROR;
23+
import static org.apache.mailet.base.AutomaticallySentMailDetector.AUTO_REPLIED_VALUE;
24+
import static org.apache.mailet.base.AutomaticallySentMailDetector.AUTO_SUBMITTED_HEADER;
2325

2426
import java.net.InetAddress;
2527
import java.net.UnknownHostException;
@@ -395,6 +397,7 @@ private MimeMessage createBounceMessage(Mail originalMail) throws MessagingExcep
395397
MimeMessage newMessage = new MimeMessage(Session.getDefaultInstance(System.getProperties(), null));
396398
newMessage.setContent(multipart);
397399
newMessage.setHeader(RFC2822Headers.CONTENT_TYPE, multipart.getContentType());
400+
newMessage.setHeader(AUTO_SUBMITTED_HEADER, AUTO_REPLIED_VALUE);
398401
return newMessage;
399402
}
400403

server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1463,4 +1463,37 @@ void deliveryErrorShouldBeAdded() throws Exception {
14631463
assertThat(MimeMessageUtil.asString(sentMessage))
14641464
.contains("Error message:\nThis is what happen...");
14651465
}
1466+
1467+
@Test
1468+
void shouldAddAutoSubmittedHeader() throws Exception {
1469+
FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
1470+
.mailetName(MAILET_NAME)
1471+
.mailetContext(fakeMailContext)
1472+
.setProperty("defaultStatus", "4.0.0")
1473+
.build();
1474+
dsnBounce.init(mailetConfig);
1475+
1476+
MailAddress senderMailAddress = new MailAddress("[email protected]");
1477+
FakeMail mail = FakeMail.builder()
1478+
.name(MAILET_NAME)
1479+
.sender(senderMailAddress)
1480+
.mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
1481+
.setText("My content"))
1482+
.recipient("[email protected]")
1483+
.lastUpdated(Date.from(Instant.parse("2016-09-08T14:25:52.000Z")))
1484+
.remoteAddr("remoteHost")
1485+
.attribute(new Attribute(AttributeName.of("delivery-error"), AttributeValue.of("This is what happen...")))
1486+
.build();
1487+
mail.setDsnParameters(DsnParameters.builder().envId(DsnParameters.EnvId.of("xyz")).build().get());
1488+
1489+
dsnBounce.service(mail);
1490+
1491+
List<SentMail> sentMails = fakeMailContext.getSentMails();
1492+
assertThat(sentMails).hasSize(1);
1493+
SentMail sentMail = sentMails.get(0);
1494+
MimeMessage sentMessage = sentMail.getMsg();
1495+
1496+
assertThat(MimeMessageUtil.asString(sentMessage))
1497+
.contains("Auto-Submitted: auto-replied");
1498+
}
14661499
}

0 commit comments

Comments
 (0)