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

InternetAddress allows square bracket in localpart - bug?

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

然而,class javax.mail.internet.InternetAddress 接受该地址作为有效地址,因为它只是在其 .parse(..) 方法中从地址中剥离了 [docxa] 部分,这由构造函数调用。

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]”的错误。