使用以下链接使用Apache通用电子邮件验证程序:
对于格式为:
的电子邮件,它返回假阳性结果random@.com -> true
random.bla@gmail -> true
是否有更好的方法来验证电子邮件?
答案 0 :(得分:1)
我认为您在代码中的某个地方犯了一个错误,我测试了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>
答案 1 :(得分:1)
对于“静态验证”,只有最新的commons-validator版本可以帮助/改善。
请参阅:What is the best Java email address validation method?
如果您真的要验证电子邮件-当然,您需要确认它:
另请参阅:https://en.wikipedia.org/wiki/Closed-loop_authentication ...
答案 2 :(得分:0)
Apache 通用电子邮件验证器在电子邮件地址具有 & 字符时有效,但它不是真的。
assertFalse(EmailValidatorUtil.isValid("asdfasd&@hotmail.com"));