【发布时间】:2019-06-25 11:57:46
【问题描述】:
在使用 Apache 通用电子邮件验证器时,如下链接:
它返回格式为:的电子邮件的误报结果:
random@.com -> true
random.bla@gmail -> true
有没有更好的方法来验证电子邮件?
【问题讨论】:
标签: java apache-commons email-validation
在使用 Apache 通用电子邮件验证器时,如下链接:
它返回格式为:的电子邮件的误报结果:
random@.com -> true
random.bla@gmail -> true
有没有更好的方法来验证电子邮件?
【问题讨论】:
标签: java apache-commons email-validation
我认为您在代码中的某个地方犯了错误,我测试了 EmailValidator 并且它有效,两个示例都返回 false:
import org.apache.commons.validator.routines.EmailValidator;
public class TestMail {
public static void main(String[] args) {
EmailValidator v = EmailValidator.getInstance();
System.out.println(v.isValid("random@.com")); //false
System.out.println(v.isValid("random.bla@gmail")); //false
}
}
使用依赖:
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.4.0</version>
</dependency>
【讨论】:
对于“静态验证”,只有最新的 commons-validator 版本可以帮助/改进。
见:What is the best Java email address validation method?
如果您真的想要验证电子邮件 - 当然需要确认:
另见:https://en.wikipedia.org/wiki/Closed-loop_authentication ...
【讨论】:
当电子邮件地址有 & char 但不是真的时,Apache 通用电子邮件验证器有效。
assertFalse(EmailValidatorUtil.isValid("asdfasd&@hotmail.com"));
【讨论】: