前言
现今对于用户登录除了密码验证外,都有额外的验证机制;验证码防机器登录,短信验证、邮箱验证确保本人登录等。
使用邮箱发送验证信息,需要一个发送邮件的账号,例如QQ邮箱验证,需要QQ邮箱开启IMAP/SMTP服务。
代码实例
PHP发送邮件,需下载一个phpmailer插件包,通过composer下载镜像文件。
composer require phpmailer/phpmailer
<?php
use PHPMailer\PHPMailer\PHPMailer;
function sendMails($receiveMail)
{
$mail = new PHPMailer();
//var_dump($mail);exit;
// 服务器设置
$mail->SMTPDebug = 0; // 开启Debug
$mail->isSMTP(); // 使用SMTP
$mail->CharSet = "UTF-8";
$mail->Host = 'smtp.qq.com';
$mail->SMTPAuth = true; // 开启SMTP验证
$mail->Username = 'email@qq.com';
$mail->Password = 'shouquanma'; //授权码,开启IMAP/SMTP服务
$mail->SMTPSecure = "ssl";// 使用ssl协议方式
$mail->FromName = '明辉科技考试云平台';
$mail->Port = 465; // 端口
// 收件人
$mail->setFrom($mail->Username); // 来自
$mail->addAddress($receiveMail); // 可以只传邮箱地址
// 内容
$mail->isHTML(true); // 设置邮件格式为HTML
$mail->Subject = '验证码-来自明辉科技考试云平台'; //邮件主题
$code = rand(1000,9999);
$_SESSION['code'] = $code;
$mail->Body = "<b>您的验证码是:{$code}</b>,如果非本人操作无需理会!";
try {
$mail->send();
} catch(Exception $e) {
//写入日志
return false;
}
return true;
}