无论域名如何,如何验证给定的电子邮件地址都是正确的。
如果我给出了一个例子
someone@gmail.com
或
someone@yahoo.com
同样明智的是,如果我提供任何地址,系统必须能够说出域中存在给定地址
答案 0 :(得分:7)
您通常无法验证某个地址是否对某个域有效,而不是发送电子邮件和检查退回。
在当天,一些电子邮件服务器支持这种类型的查询,但垃圾邮件发送者立即滥用它,因此很久以前就删除了该功能。
您可以通过以下方式验证域是否为有效域。进行DNS查找并查找至少一条MX记录(MX表示该域名无效,但在DNS中输入了邮件交换器。)
确定输入字符串是否符合有效电子邮件地址的格式是非常重要的。有关详细讨论,请参阅this question。
更新
有一些常用的验证器可能会有所帮助,尽管它们在所有情况下都没有正确执行验证,例如
Apache Commons EmailValidator (文档声明它没有捕获所有情况,包括不检查顶级域是否存在)。
RegEx example from MSDN 我自己的单元测试表明,它为有效(但肯定不常见)的电子邮件地址提供了漏报和误报。
Wikipedia article on email addresses提供了有效电子邮件地址格式的精彩概述,并提供了对相应RFC的参考。