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 <[email protected]>
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\\,[email protected]")
.map(Arguments::of);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]