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

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

commit 956f9493a278fb549d5c9eaddd33602eae23c90f
Author: Benoit TELLIER <[email protected]>
AuthorDate: Fri Sep 18 13:02:01 2026 +0200

    JAMES-4228 Advertize invalid recipients
---
 .../rfc8621/contract/EmailSubmissionSetValidateRcptContract.scala  | 6 ++++--
 .../src/main/scala/org/apache/james/jmap/core/SetError.scala       | 7 ++++---
 .../james/jmap/method/ValidRcptEmailSubmissionSetValidation.scala  | 1 +
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git 
a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSubmissionSetValidateRcptContract.scala
 
b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSubmissionSetValidateRcptContract.scala
index cee4a7db8b..7ed6dc58eb 100644
--- 
a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSubmissionSetValidateRcptContract.scala
+++ 
b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSubmissionSetValidateRcptContract.scala
@@ -119,7 +119,8 @@ trait EmailSubmissionSetValidateRcptContract {
                     |  "k1490": {
                     |    "type": "invalidRecipients",
                     |    "description": "Invalid recipients: 
unknown@${DOMAIN.asString}",
-                    |    "properties": ["envelope.rcptTo"]
+                    |    "properties": ["envelope.rcptTo"],
+                    |    "invalidRecipients": ["unknown@${DOMAIN.asString}"]
                     |  }
                     |}""".stripMargin)
 
@@ -131,7 +132,8 @@ trait EmailSubmissionSetValidateRcptContract {
                     |  "k1490": {
                     |    "type": "invalidRecipients",
                     |    "description": "Invalid recipients: 
unknown@${DOMAIN.asString}",
-                    |    "properties": ["envelope.rcptTo"]
+                    |    "properties": ["envelope.rcptTo"],
+                    |    "invalidRecipients": ["unknown@${DOMAIN.asString}"]
                     |  }
                     |}""".stripMargin)
 
diff --git 
a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/SetError.scala
 
b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/SetError.scala
index eaaec60e3f..df86178491 100644
--- 
a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/SetError.scala
+++ 
b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/SetError.scala
@@ -75,8 +75,9 @@ object SetError {
     SetError(SetError.tooLargeValue, description, None)
   }
 
-  def invalidRecipients(description: SetErrorDescription, properties: 
Option[Properties] = None): SetError =
-    SetError(SetError.invalidRecipientsValue, description, properties)
+  def invalidRecipients(description: SetErrorDescription, invalidRecipients: 
List[String], properties: Option[Properties] = None): SetError =
+    SetError(SetError.invalidRecipientsValue, description, properties, 
Some(invalidRecipients))
 }
 
-case class SetError(`type`: SetErrorType, description: SetErrorDescription, 
properties: Option[Properties])
+case class SetError(`type`: SetErrorType, description: SetErrorDescription, 
properties: Option[Properties],
+                    invalidRecipients: Option[List[String]] = None)
diff --git 
a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/ValidRcptEmailSubmissionSetValidation.scala
 
b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/ValidRcptEmailSubmissionSetValidation.scala
index a56629978e..b5f53fff08 100644
--- 
a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/ValidRcptEmailSubmissionSetValidation.scala
+++ 
b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/ValidRcptEmailSubmissionSetValidation.scala
@@ -59,6 +59,7 @@ class 
ValidRcptEmailSubmissionSetValidation(recipientValidator: RecipientValidat
         case Seq() => None
         case invalidRecipients => Some(SetError.invalidRecipients(
           SetErrorDescription(s"Invalid recipients: 
${invalidRecipients.map(_.asString()).mkString(", ")}"),
+          invalidRecipients.map(_.asString()).toList,
           Some(Properties("envelope.rcptTo"))))
       }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to