public function email()
{
//$email=input(「email」);
$email = 「m13696693413@163.com」;
//return $email;
$sendmail = ‘1902479163@qq.com’; //發件人郵箱
$sendmailpswd = 「jbdzddubdslobacc」; //客戶端受權密碼,而不是郵箱的登陸密碼!
$send_name = ‘lh’;// 設置發件人信息,如郵件格式說明中的發件人,
$toemail = $email;//定義收件人的郵箱
$to_name = ‘hl’;//設置收件人信息,如郵件格式說明中的收件人php
$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 = 「郵箱驗證碼」;// 郵件標題session
$code=rand(100000,999999);
session(「code」,$code);
//return $code.」—-「.session(「code」);
$mail->Body = 「郵件內容是 您的驗證碼是:$code,若是非本人操做無需理會!」;// 郵件正文socket
$mail->AltBody = 「This is the plain text純文本」;// 這個是設置純文本方式顯示的正文內容,若是不支持Html方式,就會用到這個,基本無用
if ($mail->Send()) { // 發送郵件
echo 「發送成功」;this
} 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);
}code
3,PHP Unable to find the socket transport ssl
解決方案,在php。ini裏面找到extension=php_openssl.dll 去掉註釋就好;
目前遇到這些問題,以及解決方案。ssl