1. 程式人生 > >郵箱發送驗證碼

郵箱發送驗證碼

session 是否 could swd extension utf new deb 人的

public function email()
{
//$email=input(“email”);
$email = “[email protected]”;
//return $email;
$sendmail = ‘[email protected]’; //發件人郵箱
$sendmailpswd = “jbdzddubdslobacc”; //客戶端授權密碼,而不是郵箱的登錄密碼!
$send_name = ‘lh’;// 設置發件人信息,如郵件格式說明中的發件人,
$toemail = $email;//定義收件人的郵箱
$to_name = ‘hl’;//設置收件人信息,如郵件格式說明中的收件人

$mail = new \phpmailer\PHPMailer();

$mail->isSMTP();// 使用SMTP服務
$mail->CharSet = “utf8”;// 編碼格式為utf8,不設置編碼的話,中文會出現亂碼
$mail->Host = “smtp.qq.com”;// 發送方的SMTP服務器地址
$mail->SMTPAuth = true;// 是否使用身份驗證
$mail->Username = $sendmail;//// 發送方的
$mail->SMTPDebug = 1;
$mail->Password = $sendmailpswd;//客戶端授權密碼,而不是郵箱的登錄密碼!
$mail->SMTPSecure = “ssl”;// 使用ssl協議方式
$mail->Port = 465;// qq端口465或587)
$mail->setFrom($sendmail, $send_name);// 設置發件人信息,如郵件格式說明中的發件人,
$mail->addAddress($toemail, $to_name);// 設置收件人信息,如郵件格式說明中的收件人,
$mail->addReplyTo($sendmail, $send_name);// 設置回復人信息,指的是收件人收到郵件後,如果要回復,回復郵件將發送到的郵箱地址
$mail->Subject = “郵箱驗證碼”;// 郵件標題

$code=rand(100000,999999);
session(“code”,$code);
//return $code.”—-“.session(“code”);
$mail->Body = “郵件內容是 您的驗證碼是:$code,如果非本人操作無需理會!”;// 郵件正文

$mail->AltBody = “This is the plain text純文本”;// 這個是設置純文本方式顯示的正文內容,如果不支持Html方式,就會用到這個,基本無用
if ($mail->Send()) { // 發送郵件
echo “發送成功”;

} else {
echo “發送失敗”;
}
}

出錯類型
1,SMTP Error: Could not connect to SMTP host.
出現這個問題的原因是因為
public function IsSMTP() {
$this->Mailer = ‘SMTP’; //小寫換成了大寫
}
2,Could not instantiate mail function.
這是因為修改了PHPMailer裏面的SMTP,小寫換成了大寫
public function IsSMTP() {
$this->Mailer = ‘SMTP’;
}
這裏的小寫我沒有換成大寫
switch($this->Mailer) {
case ‘sendmail’:
return $this->SendmailSend($header, $body);
case ‘SMTP’: //這裏的小寫也要換成大寫;
return $this->SmtpSend($header, $body);
default:
return $this->MailSend($header, $body);
}

3,PHP Unable to find the socket transport ssl
解決方案,在php。ini裏面找到extension=php_openssl.dll 去掉註釋就好;
目前遇到這些問題,以及解決方案。

郵箱發送驗證碼