金湖县建设工程质量监督网站,qinmei wordpress,台州企业网站,《学做网站论坛》视频下载在PHP中#xff0c;提供了 mail() 函数用于发送邮件。使用该函数需要设置邮件头信息、收件人地址、邮件主题和邮件内容等参数。下面是一个简单的使用示例#xff1a;
$to 收件邮箱;
$subject 邮件主题;
$message 邮件内容;
$from 发件邮箱;
$headers From: $from…在PHP中提供了 mail() 函数用于发送邮件。使用该函数需要设置邮件头信息、收件人地址、邮件主题和邮件内容等参数。下面是一个简单的使用示例
$to 收件邮箱;
$subject 邮件主题;
$message 邮件内容;
$from 发件邮箱;
$headers From: $from . . Reply-To: $from . . X-Mailer: PHP/ . phpversion();
mail($to, $subject, $message, $headers);
我们要做的事情是在邮件内容中附上验证码和验证链接验证码随机生成一个6位数即可
function getContent($code,$mail){$content 欢迎注册请点击以下完成验证pa hrefhttp://www.***.com/email/validate.php?code{$code}mail{$mail}请点击/a/p;return $content;
}
这里需要注意可能会出现邮件被视为垃圾邮件的情况。为了避免这个问题我们需要注意以下几点
1、邮件内容要真实、准确不要让邮件内容与用户想要的内容不符
2、邮件标题要准确、简洁并让用户容易理解邮件的内容
3、控制邮件发送频率不要让用户感到被骚扰
4、遵守邮件发送规则如设置正确的发件人、回复地址等。
接下来为了验证我们需要把验证码存入数据库
$servername localhost;
$username root;
$password 123456;
$dbname test;$conn new mysqli($servername, $username, $password, $dbname);
if ($conn-connect_error) {die(连接失败: . $conn-connect_error);
}
$sql INSERT INTO email_code (email,code) values ($to,$code);
if ($conn-multi_query($sql) true) {//插入成功
}
数据库结构是这样的
名称说明id数据id自增email邮箱code验证码createDate创建时间默认当前时间
发送完成之后就需要验证了我们需要验证对错和是否超时新建validate.php文件
$email $_REQUEST[email];
$code $_REQUEST[code];$servername localhost;
$username root;
$password 123456;
$dbname test;$conn new mysqli($servername, $username, $password, $dbname);
if ($conn-connect_error) {die(连接失败: . $conn-connect_error);
}
$sql SELECT * FROM email_code WHERE email$email;
$result $conn-query($sql);
while ($row $result-fetch_assoc()) {if($row[code] $code){$createDate $row[createDate];date_default_timezone_set(Asia/Shanghai);$currentDate date(Y-m-d H:i:s);$res strtotime($currentDate) - strtotime($createDate);if($res 5*60){//验证成功登录逻辑//使用完的验证码进行删除$sql2 DELETE FROM email_code WHERE email$email;if ($conn-multi_query($sql2) true) {// 删除成功}}else{//超时}}
}