You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by hq...@apache.org on 2026/10/16 08:03:30 UTC

(james-project) 01/07: JAMES-4236 MailQueueFactory: tell whether queued mails can be delayed

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

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

commit 246d055ffef36dbf7dbb2f8733f9d5f8844cba80
Author: Min Nguyen <mi...@gmail.com>
AuthorDate: Tue Oct 13 15:51:30 2026 +0700

    JAMES-4236 MailQueueFactory: tell whether queued mails can be delayed
---
 .../main/java/org/apache/james/queue/api/MailQueueFactory.java   | 9 +++++++++
 .../apache/james/queue/rabbitmq/RabbitMQMailQueueFactory.java    | 5 +++++
 2 files changed, 14 insertions(+)

diff --git a/server/queue/queue-api/src/main/java/org/apache/james/queue/api/MailQueueFactory.java b/server/queue/queue-api/src/main/java/org/apache/james/queue/api/MailQueueFactory.java
index 35a496700d..fbbebc7146 100644
--- a/server/queue/queue-api/src/main/java/org/apache/james/queue/api/MailQueueFactory.java
+++ b/server/queue/queue-api/src/main/java/org/apache/james/queue/api/MailQueueFactory.java
@@ -86,4 +86,13 @@ public interface MailQueueFactory<T extends MailQueue> {
     T createQueue(MailQueueName name, PrefetchCount count);
 
     Set<MailQueueName> listCreatedMailQueues();
+
+    /**
+     * @return false when the {@link MailQueue}s of this factory ignore the delay given upon enqueue.
+     * Protocols allowing users to delay a send (SMTP FUTURERELEASE, JMAP delayed sends) need to
+     * reject such requests rather than sending the mail right away.
+     */
+    default boolean supportsDelays() {
+        return true;
+    }
 }
diff --git a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueFactory.java b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueFactory.java
index 82c3f1afef..a94effaff2 100644
--- a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueFactory.java
+++ b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueFactory.java
@@ -156,6 +156,11 @@ public class RabbitMQMailQueueFactory implements MailQueueFactory<RabbitMQMailQu
             .collect(ImmutableSet.toImmutableSet());
     }
 
+    @Override
+    public boolean supportsDelays() {
+        return false;
+    }
+
     private RabbitMQMailQueue createQueueIntoRabbitServer(MailQueueName mailQueueName, PrefetchCount prefetchCount) {
         String exchangeName = mailQueueName.toRabbitExchangeName().asString();
         Flux.concat(


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org