java - InternetAddress 允许在本地部分使用方括号 - 错误?

标签 java jakarta-mail special-characters

就我的研究而言,字符串 [docxa]l.hri@txwt.org 不是语法上有效的电子邮件地址,因为方括号是不在引号字符串中。

但是,类 javax.mail.internet.InternetAddress 接受这个地址作为有效地址,因为它只是从其地址中删除了 [docxa] 部分.parse(..) 方法,由构造函数调用。

InternetAddress.parse(String, boolean, boolean) 中的代码注释表明,实现者自己也不确定:

    case '[':   // a domain-literal, probably

这是我为验证问题而创建的测试,它失败了:

@Test
public void givenUnquotedEmailAddressWithSquareBracketsInLocalPartThenValidationShouldFail() {
    try {
        new InternetAddress("[docxa]l.hri@txwt.org", true).validate();
        fail("address should be invalid");
    } catch (AddressException e) {
        // expected
    }
}

那么,这是 InternetAddress 中的错误,还是我的研究或我对它的理解不完整?

最佳答案

是的,这是一个错误,InternetAddress 去掉了开头的“[docxa]”。

关于java - InternetAddress 允许在本地部分使用方括号 - 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48764597/

相关文章:

java - 使用 java mail api 在邮件服务器上更快地搜索特定邮件

internet-explorer - watir-webdriver - chrome 和 IE 在设置带有特殊字符的 text_field 时更改输入

vba - 使用 PowerShell 发送击键并在文本中包含百分号

Java:从图像中裁剪出具有特定颜色的区域

Java数组/逆新手

java - 使用 AsyncTask 的启动画面

java - BoxLayout 未显示所有组件

smtp - Javamail - 如何处理大附件?

java - 使用java Mail永久删除邮件

elasticsearch - Elasticsearch不允许使用括号将字段名称用于脚本