apache 通用验证器 returns 误报结果
apache common validator returns false positive result
同时使用如下所示的 Apache 通用电子邮件验证器 link:
它 returns 格式为 :
的电子邮件的误报结果
random@.com -> true
random.bla@gmail -> true
有没有更好的方法来验证电子邮件?
我认为你的代码某处出错了,我测试了 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>
对于"static validation",只有最新的commons-validator版本可以help/improve。
参见:What is the best Java email address validation method?
如果您真的想要验证电子邮件 - 当然您需要确认它:
- 首先进行静态验证(与 you/your lib 一样好)
- 然后发送电子邮件:
- 带有识别确认 link,收件人必须 "click"(http get!)。
- 根据 endpoint/servlet/controller (http get) 编写,"completes validation".
另请参阅:https://en.wikipedia.org/wiki/Closed-loop_authentication
...
Apache 通用电子邮件验证程序在电子邮件地址包含 & 字符但不正确时有效。
assertFalse(EmailValidatorUtil.isValid("asdfasd&@hotmail.com"));
同时使用如下所示的 Apache 通用电子邮件验证器 link:
它 returns 格式为 :
的电子邮件的误报结果random@.com -> true
random.bla@gmail -> true
有没有更好的方法来验证电子邮件?
我认为你的代码某处出错了,我测试了 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>
对于"static validation",只有最新的commons-validator版本可以help/improve。
参见:What is the best Java email address validation method?
如果您真的想要验证电子邮件 - 当然您需要确认它:
- 首先进行静态验证(与 you/your lib 一样好)
- 然后发送电子邮件:
- 带有识别确认 link,收件人必须 "click"(http get!)。
- 根据 endpoint/servlet/controller (http get) 编写,"completes validation".
另请参阅:https://en.wikipedia.org/wiki/Closed-loop_authentication ...
Apache 通用电子邮件验证程序在电子邮件地址包含 & 字符但不正确时有效。
assertFalse(EmailValidatorUtil.isValid("asdfasd&@hotmail.com"));