我想知道人们应该花多长时间验证电子邮件地址。我的领域主要是网络开发,但这适用于任何地方。
我看过几种方法:
- 只需检查是否存在“ @”,这很简单,但当然不是那么可靠。
- 用于标准电子邮件格式的更复杂的正则表达式测试
- 一个针对RFC 2822的完整正则表达式 -问题在于通常一个电子邮件地址可能是有效的,但它可能不是用户的意思
- DNS验证
- SMTP验证
正如许多人可能知道(但许多人却不知道)一样,电子邮件地址可能具有很多人通常不考虑的许多奇怪变化(请参阅RFC 2822 3.4.1),但是您必须考虑以下目标:您的验证:您只是在尝试确保可以将电子邮件发送到某个地址,或者是用户可能要输入的电子邮件(在很多其他晦涩的情况下,否则“有效”是不可能的)的地址)。
我考虑过的一个选项只是用一个更加深奥的地址发出警告,但仍然允许请求通过,但这确实增加了表单的复杂性,并且大多数用户很可能会感到困惑。
虽然DNS验证/ SMTP验证似乎很容易,但我可以预见到DNS服务器/ SMTP服务器暂时关闭且用户无法在某处注册,或者用户的SMTP服务器不支持所需功能的问题。
一些经验丰富的开发人员将如何处理此问题?除了我列出的方法以外,还有其他方法吗?
编辑:我完全忘记了最显而易见的一切,发送确认电子邮件!感谢答复者指出这一点。是的,这很简单,但是涉及的每个人确实需要额外的麻烦。用户必须获取一些电子邮件,开发人员需要在甚至确认用户数据有效之前记住用户数据。