如何确定用户输入的是已注册有效且存在的电子邮件地址?

3
我希望做的是创建一个注册表单,其中需要填写电子邮件地址,但用户必须输入有效的已注册电子邮件地址。如果电子邮件地址无效,则注册不完整。我该怎么做?
示例:
<form>
    <input type="email" name="email" required="required" />
    <input type="submit" value="submit" name="submit" />
</form>

6
注册后发送带有激活链接的电子邮件,这是许多网站上常见的方式。 - sinisake
2
有效的是指符合RFC标准的电子邮件地址,还是指实际存在且可用的电子邮件地址?例如,postmaster@127.0.0.1是一个完全有效的电子邮件地址,但并不是特别有用。 - Marc B
1
请记住,如果您想要100%确定,应在服务器端进行检查。否则,某人只需启动开发人员工具并编辑JavaScript以始终返回true和/或从<input>标记中删除“required”属性。 - Kimmax
使用数据库以及发送到与其电子邮件地址相关联的电子邮件的验证代码和唯一令牌。一旦点击,他们将被输入为已批准的数据库中;完成交易。 - Funk Forty Niner
此外,如果您要使用电子邮件进行新闻通讯等活动,请确保符合现行的反垃圾邮件法规。 - Funk Forty Niner
我会分阶段进行 - 首先使用符合RFC的RegExp(在JS或服务器上)消除最明显的错误,然后检查域名的MX记录(getmxrr),最后,如果一切看起来都没问题,发送带有验证链接的电子邮件...这样可以让您快速捕获并报告任何(常见的)错误给用户,而不是让他们给您发邮件询问为什么他们没有立即收到验证电子邮件。当然,如果他们输入了一个有效的域名,但未注册该域名(例如,他们输入了.com而不是.co.uk),那么这并没有帮助。 - CD001
3个回答

4
如果您不想使用通常的批准循环,那么您可以选择付费在线服务,例如:Verify-Email.org。他们表示:这个电子邮件验证工具实际上连接到邮件服务器并检查邮箱是否存在。 被验证的内容包括: 格式:"name@domain.xxx" 有效域名:"somebody@new.york"无效 有效用户:验证用户和邮箱是否真实存在。 免责声明:我与他们没有任何联系,广告也不是我的目的。可能有类似的免费服务,但我不会信任它们,因为它们很可能在收集电子邮件地址。免费就像老鼠夹里的奶酪。

0
开发者常用的一种验证电子邮件地址的方法是使用“服务器端”脚本发送一个与该地址在数据库中关联的随机生成的代码(假设您将存储电子邮件地址)。
用户收到电子邮件后,可以在表单中输入代码或单击链接来验证电子邮件地址。您可以使用第二个“服务器端”脚本比较用户输入的代码和数据库中的代码,并确认它们匹配,从而验证电子邮件地址。

评论中已经说过了,这并没有添加任何新的或独特的内容。 - Funk Forty Niner
不幸的是,评论实际上应该是为了征求更多信息。它们并不意味着回答问题。这是占位符所说的:**使用评论来询问更多信息或建议改进。避免在评论中回答问题。** - PeterKA

-1

我不知道如何检查电子邮件是否有效且已注册,但我经常使用以下代码来验证输入的电子邮件地址至少遵循正确的格式。

function validateForm() {
    var x = document.forms["myForm"]["email"].value;
    var atpos = x.indexOf("@");
    var dotpos = x.lastIndexOf(".");
    if (atpos< 1 || dotpos<atpos+2 || dotpos+2>=x.length) {
        alert("Not a valid e-mail address");
        return false;
    }
}

你的函数并没有将很多无效的电子邮件地址视为无效。此外,这不是真正的问题。 - putvande
1
这就是为什么我开始提到这不是他要求的内容,我假设你可能错过了那一部分,但它是在同样的信仰下,并确保电子邮件地址具有基础知识,即@符号和该符号后至少1个点。它从未意味着成为被接受的答案,但它只是另一个想法,作为他/她可能没有考虑过的起点。 - Tim Wilkinson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接