javax.mail.internet.InternetAddress RFC 822 验证

标签 java email-validation jakarta-mail email-address

我假设以下内容会抛出,但事实并非如此。

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/

相关文章:

java - 从 tomcat6 发送多部分邮件时出现 IllegalStateException

java - Sitebricks HTML 文件

javascript - 如何为电子邮件进行 jQuery 域验证?

c# - 如何远程验证电子邮件或检查电子邮件是否存在

ruby-on-rails - 在哪里可以更改 "Email has already been taken"错误消息?

java - 通过公司域发送 JavaMail 时遇到问题

java - 实现通用 WS 重试调用

java - elasticsearch java.library.pat 错误中没有 MeCab

java - 我需要做什么才能接受 web 服务中的数组参数?

java - 将字符串转换为 javax 邮件消息对象