You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2023/10/06 02:06:33 UTC
[james-project] 10/23: JAMES-3942 Audit trail upon RemoteDelivery success
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 840e084373966d091e293af72f34409e73bbb801
Author: Quan Tran <hq...@linagora.com>
AuthorDate: Tue Sep 26 16:53:57 2023 +0700
JAMES-3942 Audit trail upon RemoteDelivery success
---
.../mailets/remote/delivery/DeliveryRunnable.java | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/DeliveryRunnable.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/DeliveryRunnable.java
index 7bedc9e551..50c2164f2f 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/DeliveryRunnable.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/DeliveryRunnable.java
@@ -26,6 +26,9 @@ import java.time.Duration;
import java.util.Date;
import java.util.function.Supplier;
+import javax.mail.MessagingException;
+
+import org.apache.commons.lang3.StringUtils;
import org.apache.james.dnsservice.api.DNSService;
import org.apache.james.lifecycle.api.LifecycleUtil;
import org.apache.james.metrics.api.Metric;
@@ -33,6 +36,7 @@ import org.apache.james.metrics.api.MetricFactory;
import org.apache.james.metrics.api.TimeMetric;
import org.apache.james.queue.api.MailPrioritySupport;
import org.apache.james.queue.api.MailQueue;
+import org.apache.james.util.AuditTrail;
import org.apache.james.util.MDCBuilder;
import org.apache.mailet.Attribute;
import org.apache.mailet.AttributeValue;
@@ -44,6 +48,7 @@ import org.slf4j.LoggerFactory;
import com.github.fge.lambdas.Throwing;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
import reactor.core.Disposable;
import reactor.core.publisher.Flux;
@@ -141,13 +146,21 @@ public class DeliveryRunnable implements Disposable {
}
@VisibleForTesting
- void attemptDelivery(Mail mail) throws MailQueue.MailQueueException {
+ void attemptDelivery(Mail mail) throws MessagingException {
ExecutionResult executionResult = mailDelivrer.deliver(mail);
switch (executionResult.getExecutionState()) {
case SUCCESS:
outgoingMailsMetric.increment();
configuration.getOnSuccess()
.ifPresent(Throwing.consumer(onSuccess -> mailetContext.sendMail(mail, onSuccess.getValue())));
+ AuditTrail.entry()
+ .protocol("mailetcontainer")
+ .action("RemoteDelivery")
+ .parameters(ImmutableMap.of("mailId", mail.getName(),
+ "mimeMessageId", mail.getMessage().getMessageID(),
+ "sender", mail.getMaybeSender().asString(),
+ "recipients", StringUtils.join(mail.getRecipients())))
+ .log("Remote delivering mail succeeded.");
break;
case TEMPORARY_FAILURE:
handleTemporaryFailure(mail, executionResult);
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org