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


The following commit(s) were added to refs/heads/master by this push:
     new ec0a2d0c42 MailAddress should not contain backslash + comma character 
(#2348)
ec0a2d0c42 is described below

commit ec0a2d0c424385f7692da3905488b06994560ae0
Author: vttran <vtt...@linagora.com>
AuthorDate: Wed Jul 17 09:07:16 2024 +0700

    MailAddress should not contain backslash + comma character (#2348)
---
 core/src/main/java/org/apache/james/core/MailAddress.java     | 11 ++++++++++-
 core/src/test/java/org/apache/james/core/MailAddressTest.java |  3 ++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/core/src/main/java/org/apache/james/core/MailAddress.java 
b/core/src/main/java/org/apache/james/core/MailAddress.java
index 7814073bec..5674130bcf 100644
--- a/core/src/main/java/org/apache/james/core/MailAddress.java
+++ b/core/src/main/java/org/apache/james/core/MailAddress.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  * <p/>
  * <p>This parses an address as per the BNF specification for <mailbox>
  * from RFC 821 on page 30 and 31, section 4.1.2. COMMAND SYNTAX.
- * http://www.freesoft.org/CIE/RFC/821/15.htm</p>
+ * <a href="http://www.freesoft.org/CIE/RFC/821/15.htm";>...</a></p>
  *
  * @version 1.0
  */
@@ -239,6 +239,11 @@ public class MailAddress implements java.io.Serializable {
             throw new AddressException("Addresses cannot start end with '.' or 
contain two consecutive dots");
         }
 
+        // not handle by jakarta.mail
+        if (haveBackSlashComma(localPart)) {
+            throw new AddressException("Addresses cannot contain \\,");
+        }
+
         domain = createDomain(domainSB.toString());
     }
 
@@ -246,6 +251,10 @@ public class MailAddress implements java.io.Serializable {
         return localPart.contains("..");
     }
 
+    private boolean haveBackSlashComma(String localPart) {
+        return localPart.contains("\\,");
+    }
+
     private Domain createDomain(String domain) throws AddressException {
         try {
             return Domain.of(domain);
diff --git a/core/src/test/java/org/apache/james/core/MailAddressTest.java 
b/core/src/test/java/org/apache/james/core/MailAddressTest.java
index 4ef9ee7378..9bc5332907 100644
--- a/core/src/test/java/org/apache/james/core/MailAddressTest.java
+++ b/core/src/test/java/org/apache/james/core/MailAddressTest.java
@@ -104,7 +104,8 @@ class MailAddressTest {
                 "我買@屋企.香港",
                 "二ノ宮@黒川.日本",
                 "медведь@с-балалайкой.рф",
-                "संपर्क@डाटामेल.भारत")
+                "संपर्क@डाटामेल.भारत",
+                "mail.allow\\,d...@james.apache.org")
             .map(Arguments::of);
     }
 


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

Reply via email to