当用户通过他们的电子邮件地址订阅我的时事通讯时,使用php,我如何通过电子邮件发送一个"激活链接"来确认这是他们的电子邮件地址,而不是一个假的。
现在我有
PHP:<?php
$to = "recipient@example.com";
$subject = "Hi!";
$body = "Hi,'n'nHow are you?";
if (mail($to, $subject, $body)) {
echo "<p>Message successfully sent!</p>";
} else {
echo "<p>Message delivery failed...</p>";
}
?>
我想我应该把$body改成这样:
$body = "Please click the link to activate your email 'n
http://www.activationlink.com?";
如果用户点击了那个链接,它会将他们的详细信息添加到Mysql数据库中,从而识别出他们是合法的订阅者,我该怎么做呢?
感谢任何帮助或建议。由于
快速google搜索结果
http://www.learnphponline.com/scripts/email-activation-for-php-forms基本上,您需要创建一个订阅者表并验证布尔标志调用,因为将电子邮件地址存储在该表
好的,我想给你一些建议,现在大多数网站在注册时会发生的事情。
当你输入你的用户名和密码时,它会说"电子邮件会发送到您的位置.....我们所做的是,在发送电子邮件之前,我们将用户名和密码保存在数据库中,但使其状态为非活动。
因此,当用户点击链接并获得相关站点时,所需要的就是验证代码并更改状态。
所以一些类似的你必须添加电子邮件到你的数据库,然后发送一些电子邮件。那样的话,你处理目前的问题就容易多了。
使用http://en.wikipedia.org/wiki/Message_authentication_code (MAC)方法。你应该有一把秘钥。使用密钥和用户的电子邮件生成SHA1哈希。然后生成一个激活链接,其中包括用户的电子邮件和散列。在您收到链接的点击后,您做同样的事情-使用相同的密钥,从链接中获取电子邮件,生成哈希并将其与链接中提供的进行比较。如果匹配,则表示电子邮件地址已确认。
此外,在电子邮件中,你可以包括一些更多的信息(例如,时间戳使链接可过期),所有的信息都可以用MAC方法进行认证。
您不需要在数据库中存储任何信息,如@Tommy的答案