如何检查电子邮件是否存在?不理解网站如何发送带有唯一链接的邮件,用户点击以验证他是电子邮件所有者。
创建两个名为“activationkey”和“activated”的新列,并存储一些随机字符串,发送带有激活密钥的电子邮件,并更新与该激活链接匹配的用户已激活=1。
register.php?a=activate&key=9cdfb439c7876e703e307864c9167a15
有更好的想法吗?
如何检查电子邮件是否存在?不理解网站如何发送带有唯一链接的邮件,用户点击以验证他是电子邮件所有者。
创建两个名为“activationkey”和“activated”的新列,并存储一些随机字符串,发送带有激活密钥的电子邮件,并更新与该激活链接匹配的用户已激活=1。
register.php?a=activate&key=9cdfb439c7876e703e307864c9167a15
一般我发送一个包含用户ID和激活密钥的链接。当他们访问我的激活脚本时,如果找到匹配项,我会激活他们。
注册时,我会生成32个字符(大小写字母数字组成)并将其设置为激活密钥。此时,您可以创建一个名为“已激活”的字段,或者如果用户具有激活密钥,则可以假定用户未激活。
uid | email | key ------------------------------------------------------------ 001 | j.smith@mysite.com | e09141f3f5a17fed6222fc0279b9afdf ------------------------------------------------------------ 002 | mary.tyler@abc.com | ------------------------------------------------------------
当用户访问激活脚本时,只需检查提供的ID和激活密钥是否匹配,如果找到匹配项,则从文件中删除用户记录中的密钥(或更新您的布尔“已激活”字段),然后开启用户权限。
如果提供的电子邮件地址不存在,则无损失。您可以定期删除所有长期不活动的密钥行。
除了激活码,另一种选择是将生成的密码发送到用户电子邮件中,如果用户登录,则被激活(当然,应该能够更改为自己喜欢的密码)。
编程方面没有简单的方法来检查电子邮件是否真实存在。有一些方法(如ping邮件服务器等),但没有一种被证明可以适用于每个邮件服务器设置的方法。强制用户通过像您描述的链接激活他们的帐户是最好的方法。此外,您可能希望拥有某种定期脚本,例如cron-job,在一定时间后删除未激活的成员(这将需要表中的另一列,即时间戳)。
这很有用,因为如果用户注册但从未激活其帐户并删除了电子邮件,并且您正在使用其电子邮件作为ID(仅作为示例),则他们将永远无法完成激活。或者,如果他们尝试登录,您可以简单地重新发送激活电子邮件到该地址。
只需确保在电子邮件中指定所有标题(回复,发件人等),以便您的电子邮件不会被标记为垃圾邮件。