我假设以下内容会抛出,但事实并非如此。
new javax.mail.internet.InternetAddress( "a@b......." ).validate
我的javax.mail版本是1.4。 (如果重要的话,还有 java 版本 8)。根据 validate() 声称符合的 RFC822,这是一个有效的电子邮件地址吗? http://sphinx.mythic-beasts.com/~pdw/cgi-bin/emailvalidate表示以上不是有效的 RFC822 电子邮件地址。
最佳答案
来自documentation :
The current implementation checks many, but not all, syntax rules.
如果可以,请升级您的 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)
关于javax.mail.internet.InternetAddress RFC 822 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32607859/