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