6

我将如何检查电子邮件是否真的存在?无法理解网站如何使用唯一链接发送邮件,用户单击该链接以验证他是电子邮件的所有者 =/

创建一个名为 activationkey 的 2 个新列并激活并存储一些随机字符串,发送一封包含激活密钥的电子邮件,并更新与该激活链接匹配的用户激活 =1

register.php?a=activate&key=9cdfb439c7876e703e307864c9167a15

有更好的想法吗?

4

3 回答 3

16

我通常会发送一个包含用户 ID 和激活密钥的链接。当他们访问我的激活脚本时,如果我找到匹配项,我会激活它们。

当他们注册时,我可能会生成 32 个大小写字母数字字符并将其设置为激活密钥。此时,您可以创建一个名为“激活”的字段,或者您可以假设用户没有激活,如果他们有激活密钥。

uid | 电子邮件 | 钥匙
-------------------------------------------------- ----------
001 | j.smith@mysite.com | e09141f3f5a17fed6222fc0279b9afdf
-------------------------------------------------- ----------
002 | 玛丽泰勒@abc.com |
-------------------------------------------------- ----------

当用户访问激活脚本时,只需检查提供的密钥和提供的 id,如果找到匹配项,从文件中的用户记录中删除密钥(或更新您的布尔“激活”字段)并打开门.

如果提供的电子邮件地址不存在,则不会丢失。在一个月不活动后,您可以定期删除所有带有键的行。

于 2010-01-06T22:20:39.327 回答
2

One alternative to activation keys is to just send a generated password to the user email, if the user logs in he is activated (and of course, should be able to change the password to what he prefers).

于 2010-01-06T23:39:03.243 回答
0

没有简单的方法可以检查电子邮件是否真的以编程方式存在。有一些方法(ping 邮件服务器等),但没有一种方法被证明适用于每个邮件服务器的设置。强制用户通过您描述的链接激活他们的帐户是最好的方法。此外,您可能希望有某种重复的脚本,例如 cron-job,它会在一段时间后删除未激活的成员(这需要表中的另一列,时间戳)。

这很有用,因为如果用户注册但从未激活他们的帐户并删除了电子邮件,并且您使用他们的电子邮件作为 id(只是一个示例),他们将永远无法完成激活。或者,如果他们尝试登录,您只需将激活电子邮件再次发送到该地址即可。

只需确保在电子邮件中指定了所有标题(回复、发件人等),这样您的电子邮件就不会被标记为垃圾邮件。

于 2010-01-06T22:27:17.193 回答