You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2022/11/03 08:08:30 UTC
[james-project] 01/05: JAMES-3843 VacationMailet should use null sender
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 7f0eae001fea6ffb990c35863808e75e762b1ccf
Author: Karsten Otto <ka...@akquinet.de>
AuthorDate: Thu Oct 27 14:39:08 2022 +0200
JAMES-3843 VacationMailet should use null sender
---
.../org/apache/james/transport/mailets/VacationMailet.java | 6 +++++-
.../org/apache/james/transport/mailets/VacationMailetTest.java | 10 +++++-----
.../org/apache/james/jmap/VacationRelayIntegrationTest.java | 3 +++
3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/VacationMailet.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/VacationMailet.java
index 0884f3dbb6..1d8fc4485f 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/VacationMailet.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/VacationMailet.java
@@ -46,12 +46,15 @@ import reactor.core.publisher.Mono;
public class VacationMailet extends GenericMailet {
+ public static final String EXPLICIT_SENDER_PROPERTY = "james.vacation.sender.explicit";
+
private static final Logger LOGGER = LoggerFactory.getLogger(VacationMailet.class);
private final VacationService vacationService;
private final ZonedDateTimeProvider zonedDateTimeProvider;
private final AutomaticallySentMailDetector automaticallySentMailDetector;
private final MimeMessageBodyGenerator mimeMessageBodyGenerator;
+ private final boolean explicitSender;
@Inject
public VacationMailet(VacationService vacationService, ZonedDateTimeProvider zonedDateTimeProvider,
@@ -61,6 +64,7 @@ public class VacationMailet extends GenericMailet {
this.zonedDateTimeProvider = zonedDateTimeProvider;
this.automaticallySentMailDetector = automaticallySentMailDetector;
this.mimeMessageBodyGenerator = mimeMessageBodyGenerator;
+ this.explicitSender = Boolean.parseBoolean(System.getProperty(EXPLICIT_SENDER_PROPERTY, "false"));
}
@Override
@@ -139,7 +143,7 @@ public class VacationMailet extends GenericMailet {
}
private void sendNotification(VacationReply vacationReply) throws MessagingException {
- getMailetContext().sendMail(vacationReply.getSender(),
+ getMailetContext().sendMail(explicitSender ? vacationReply.getSender() : MailAddress.nullSender(),
vacationReply.getRecipients(),
vacationReply.getMimeMessage());
}
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/VacationMailetTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/VacationMailetTest.java
index c91141d4b5..2bb5f783dc 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/VacationMailetTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/VacationMailetTest.java
@@ -23,6 +23,7 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
@@ -122,7 +123,7 @@ public class VacationMailetTest {
testee.service(mail);
- verify(mailetContext).sendMail(eq(originalRecipient), eq(ImmutableList.of(originalSender)), any());
+ verify(mailetContext).sendMail(eq(MailAddress.nullSender()), eq(ImmutableList.of(originalSender)), any());
verify(vacationService).retrieveVacation(AccountId.fromString(USERNAME));
verify(vacationService).isNotificationRegistered(ACCOUNT_ID, recipientId);
verify(vacationService).registerNotification(ACCOUNT_ID, recipientId, Optional.of(DATE_TIME_2018));
@@ -152,7 +153,7 @@ public class VacationMailetTest {
testee.service(mail);
- verify(mailetContext).sendMail(eq(originalRecipient), eq(ImmutableList.of(originalSender)), any());
+ verify(mailetContext).sendMail(eq(MailAddress.nullSender()), eq(ImmutableList.of(originalSender)), any());
verifyNoMoreInteractions(mailetContext);
}
@@ -206,8 +207,7 @@ public class VacationMailetTest {
testee.service(mail);
- verify(mailetContext).sendMail(eq(originalRecipient), eq(ImmutableList.of(originalSender)), any());
- verify(mailetContext).sendMail(eq(secondRecipient), eq(ImmutableList.of(originalSender)), any());
+ verify(mailetContext, times(2)).sendMail(eq(MailAddress.nullSender()), eq(ImmutableList.of(originalSender)), any());
verifyNoMoreInteractions(mailetContext);
}
@@ -288,7 +288,7 @@ public class VacationMailetTest {
testee.service(mail);
- verify(mailetContext).sendMail(eq(originalRecipient), eq(ImmutableList.of(originalSender)), any());
+ verify(mailetContext).sendMail(eq(MailAddress.nullSender()), eq(ImmutableList.of(originalSender)), any());
verifyNoMoreInteractions(mailetContext);
}
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/VacationRelayIntegrationTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/VacationRelayIntegrationTest.java
index 6f8004cacb..6e022bbed5 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/VacationRelayIntegrationTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/VacationRelayIntegrationTest.java
@@ -31,6 +31,7 @@ import org.apache.commons.net.smtp.SMTPClient;
import org.apache.james.GuiceJamesServer;
import org.apache.james.dnsservice.api.InMemoryDNSService;
import org.apache.james.jmap.api.model.AccountId;
+import org.apache.james.transport.mailets.VacationMailet;
import org.apache.james.vacation.api.VacationPatch;
import org.apache.james.jmap.draft.JmapGuiceProbe;
import org.apache.james.junit.categories.BasicFeature;
@@ -70,6 +71,7 @@ public abstract class VacationRelayIntegrationTest {
getInMemoryDns()
.registerMxRecord("yopmail.com", fakeSmtp.getContainer().getContainerIp());
+ System.setProperty(VacationMailet.EXPLICIT_SENDER_PROPERTY, "true");
guiceJamesServer = getJmapServer();
guiceJamesServer.start();
@@ -87,6 +89,7 @@ public abstract class VacationRelayIntegrationTest {
public void teardown() {
fakeSmtp.clean();
guiceJamesServer.stop();
+ System.clearProperty(VacationMailet.EXPLICIT_SENDER_PROPERTY);
}
@Category(BasicFeature.class)
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org