1. 程式人生 > >獲取郵箱驗證碼倒計時+PHP傳送QQ郵件(未全)

獲取郵箱驗證碼倒計時+PHP傳送QQ郵件(未全)

程式碼:

<?php

/*傳送郵件方法
*@param $to:接收者 $title:標題 $content:郵件內容
*@return bool true:傳送成功 false:傳送失敗
*/
function sendMail($to,$title,$content) {
// 這個PHPMailer 就是之前從 Github上下載下來的那個專案
require 'PHPMailer-master/PHPMailerAutoload.php';

$mail = new PHPMailer;

// 是否啟用smtp的debug進行除錯 開發環境建議開啟 生產環境註釋掉即可 預設關閉debug除錯模式,
// 可選擇的值有 1 、 2 、 3
// $mail->SMTPDebug = 2;

//使用smtp鑑權方式傳送郵件
$mail->isSMTP();
//smtp需要鑑權 這個必須是true
$mail->SMTPAuth = true;
// qq 郵箱的 smtp伺服器地址,這裡當然也可以寫其他的 smtp伺服器地址
$mail->Host = 'smtp.qq.com';
//smtp登入的賬號 這裡填入字串格式的qq號即可
$mail->Username = '
[email protected]
';
// 這個就是之前得到的授權碼,一共16位
$mail->Password = 'bwexxtmepzubjjii';
//設定使用ssl加密方式登入鑑權
$mail->SMTPSecure = 'ssl';
// //設定ssl連線smtp伺服器的遠端伺服器埠號,可選465或587
$mail->Port = 465;

//設定smtp的helo訊息頭 這個可有可無 內容任意
// $mail->Helo = 'Hello smtp.qq.com Server';

//設定發件人的主機域 可有可無 預設為localhost 內容任意,建議使用你的域名
// $mail->Hostname = 'http://www.lsgogroup.com';

//設定傳送的郵件的編碼 也可選 GB2312
$mail->CharSet = 'UTF-8';

$mail->setFrom('
[email protected]
', 'send_user_name');
// $to 為收件人的郵箱地址,如果想一次性發送向多個郵箱地址,則只需要將下面這個方法多次呼叫即可
$mail->addAddress($to);
//郵件正文是否為html編碼 注意此處是一個方法 不再是屬性 true或false
$mail->isHTML(true);
// 該郵件的主題
$mail->Subject = $title;
// 該郵件的正文內容
$mail->Body = $content;
//為該郵件新增附件 該方法也有兩個引數 第一個引數為附件存放的目錄(相對目錄、或絕對目錄均可) 第二引數為在郵件附件中該附件的名稱
// $mail->addAttachment('./d.jpg','mm.jpg');
//同樣該方法可以多次呼叫 上傳多個附件
// $mail->addAttachment('./Jlib-1.1.0.js','Jlib.js');

// 使用 send() 方法傳送郵件
if(!$mail->send()) {
return 'Mailer Error: ' . $mail->ErrorInfo;
} else {
return "\nMessage has been sent";
}
}
// 呼叫傳送方法,並在頁面上輸出傳送郵件的狀態
var_dump(sendMail('
[email protected]
','月亮來信了','大金大金,收到回覆!'));

if (isset($_POST['num'])){
$a = $_POST['num'];
setcookie('code',$a);
// mail($_GET['email'], '驗證碼', $a);
}
if (isset($_POST['code'])){
if ($_POST['code'] == $_COOKIE['code']){
echo "success";die;
}else{
echo "error";die;
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<center>
<table>
<tr>
<td>使用者名稱:</td>
<td><input type="text" name="username" id="username"><span id="info"></span></td>
</tr>
<tr>
<td>密碼:</td>
<td><input type="text" name="pwd" id="pwd"><span id="info1"></span></td>
</tr>
<tr>
<td>郵箱:</td>
<td><input type="text" name="email" id="email"><input type="button" id="btn" value="獲取驗證碼"></td>
</tr>
<tr>
<td>驗證碼:</td>
<td><input type="text" name="code" id="code"></td>
</tr>
<tr align="center">
<td colspan="2"><input type="button" value="提交" id="submit"></td>
</tr>
</table>
</center>
</body>
</html>
<script src="jquery-3.3.1.min.js"></script>
<script>
//倒計時
$('#btn').click(function () {
var num="";
for(var i=0;i<4;i++){
num+=Math.floor(Math.random()*10)
}
// alert(num);return false;
$.ajax({
url:"register.php",
data:{num:num},
method:"post"
});
$(this).attr('disabled','disabled');
var time = 60;
var t = setInterval(function () {
time--;
if (time == 0){
clearInterval(t);
$("#btn").val("獲取驗證碼");
$("#btn").removeAttr('disabled');
return;
}
$("#btn").val("驗證碼在"+time+"s後過期");
},1000)
});
$('#submit').click(function () {
$.ajax({
url:"register.php",
data:{code:$('#code').val()},
method:"post"
}).done(function (msg) {
alert(msg);
});
})
</script>