繁体   English   中英

验证电子邮件域是否存在

[英]Verify that email domain exists

有人检查电子邮件地址的域名作为验证步骤的一部分吗? 例如。 如果用户指定blah@gmail.com作为他们的地址,请确认gmail.com存在。


我应该注意,在我的webapp中,现有用户可以将邀请转发给他们的朋友。 我根本不需要验证这些邀请。 相反,我只是想警告我的用户是否有错字等可能正在向错误的人发送邀请。 这甚至值得吗?

需要验证用户电子邮件地址的网站通常会通过验证链接向该地址发送电子邮件。 检查域名中的电子邮件并不会给你带来太大的影响,因为人们通常会在现有的网络电子邮件提供商处发送虚假的电子邮件(通常是@ gmail.com,@ yahoo.com或@ hotmail.com)

如果您仍想验证域,则应对该域的MX记录执行DNS检查,而不是仅检查域是否已注册。

更新 :请注意,电子邮件的域部分实际上可以是IP地址(即使强烈建议不要使用此表单)。 在这种情况下,除非您实际尝试通过SMTP连接到SMTP服务器,否则无法可靠地验证该地址是否存在SMTP服务器。 这与发送电子邮件基本相同。

你可以在mx记录上进行dns查找。 这是Code Project的一个例子:
http://www.codeproject.com/KB/IP/dnslookupdotnet.aspx

[附录]:

这应该按照要求回答你的问题,但作为旁注,我同意@Franci认为发送验证消息的旧待机状态更好。 如果有人做了其他一切正确的愚弄你的验证,你真的不会在检查域名时购买太多东西。

我通常会让我使用的任何邮件组件都进行域验证。 如果它出错,您可以在代码中处理它,并决定是否要将其显示给用户。

绝对可以检查域是否是有效的邮件服务器。 试一试这些说明

您可以在控制台中执行此命令

 nslookup -q=mx gmail.com

并在主机名后解析包含MX的行的输出

gmail.com       MX preference = 40, mail exchanger = alt4.gmail-smtp-in.l.google.com
gmail.com       MX preference = 20, mail exchanger = alt2.gmail-smtp-in.l.google.com
gmail.com       MX preference = 5, mail exchanger = gmail-smtp-in.l.google.com
gmail.com       MX preference = 30, mail exchanger = alt3.gmail-smtp-in.l.google.com
gmail.com       MX preference = 10, mail exchanger = alt1.gmail-smtp-in.l.google.com

但我首先不推荐这种检查。 如果用户不想给你他的电子邮件地址,他总会找到一种欺骗你的方法。 您唯一能做的就是发送带有验证链接的电子邮件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM