如何对电子邮件地址进行客户端验证,其中电子邮件地址必须尽可能不基于互联网。即雅虎,gmail和数百不允许。它不一定非常完美,但我只想最大限度地减少此类电子邮件地址有效的所有情况。
目前我只使用正则表达式来检查有效(好的......几乎有效)的电子邮件地址。
任何想法?
答案 0 :(得分:2)
假设“非互联网”是指“本地”,那么解决方案应该相当简单:允许托管您接受的邮件地址的白名单主机名。
稍微复杂一点的解决方案,可能需要较少的维护(取决于您的系统),将黑名单列入以国家或全球顶级域名结尾的所有主机名,然后为您自己的域提供例外列表。
答案 1 :(得分:0)
我正在阅读的非网络邮件帐户要求在这一点上具有可疑效用,几乎不可能实际保证。如果它真的是你的硬性要求的一部分,那就意味着那些迁移到gmail-as-primary-email的人需要注册一个辅助帐户,这对我来说会增加我决定你的网站不值得的几率注册ON。
也就是说,一个正确验证RFC2822地址的正则表达式,加上一个排除列表,就像罪一样丑陋(因为RFC2822验证正则表达式也像罪一样丑陋)。
最后,请记住,您还需要在服务器端验证此提交,因为您不能相信客户端上的验证实际上已经运行。