javax.mail.internet.InternetAddress RFC 822验证

时间:2015-09-16 11:53:13

标签: java email-validation javax.mail email-address

我会假设下面会抛出,但它没有。

new javax.mail.internet.InternetAddress( "a@b......." ).validate

我的javax.mail版本是1.4。 (如果重要,则为java版本8)。这是一个有效的电子邮件地址,根据RFC822,validate()声称符合? http://sphinx.mythic-beasts.com/~pdw/cgi-bin/emailvalidate表示上述内容不是有效的RFC822电子邮件地址。

1 个答案:

答案 0 :(得分:1)

来自documentation

  

当前实现检查许多(但不是全部)语法规则。

如果可以,请升级您的JavaMail版本。

public static void main(String[] args) throws Exception {
    Session.getInstance(new Properties()).setDebug(true);
    new javax.mail.internet.InternetAddress("a@b......." ).validate();
}

输出:

DEBUG: setDebug: JavaMail version 1.5.4
Exception in thread "main" javax.mail.internet.AddressException: Domain contains dot-dot in string ``a@b.......''
     at javax.mail.internet.InternetAddress.checkAddress(InternetAddress.java:1282)
     at javax.mail.internet.InternetAddress.parse(InternetAddress.java:1099)
     at javax.mail.internet.InternetAddress.parse(InternetAddress.java:638)
     at javax.mail.internet.InternetAddress.<init>(InternetAddress.java:111)