首先我們需要一個發送郵件的賬號,比如QQ號,
我們先登錄QQ郵箱點擊設置里面配置smtp選項
把關閉的pop3和smtp打開,這個過程需要綁定的手機發送短信,點擊發送之后然后頁面會彈出一個smtp的一大串的密碼,這個很需要
記錄下來之后,就可以在我們的PHP中進行啪啪啪了
1 //發送郵件 2 public function email(){ 3 $email=input("post.email");//獲取收件人郵箱 4 //return $email; 5 $sendmail = 'xxxxxx@qq.com'; //發件人郵箱 6 $sendmailpswd = "xxxxxxx"; //客戶端授權密碼,而不是郵箱的登錄密碼,就是手機發送短信之后彈出來的一長串的密碼 7 $send_name = 'lh';// 設置發件人信息,如郵件格式說明中的發件人, 8 $toemail = $email;//定義收件人的郵箱 9 $to_name = 'hl';//設置收件人信息,如郵件格式說明中的收件人 10 $mail = new PHPMailer(); 11 $mail->isSMTP();// 使用SMTP服務 12 $mail->CharSet = "utf8";// 編碼格式為utf8,不設置編碼的話,中文會出現亂碼 13 $mail->Host = "smtp.qq.com";// 發送方的SMTP服務器地址 14 $mail->SMTPAuth = true;// 是否使用身份驗證 15 $mail->Username = $sendmail;//// 發送方的 16 $mail->Password = $sendmailpswd;//客戶端授權密碼,而不是郵箱的登錄密碼! 17 $mail->SMTPSecure = "ssl";// 使用ssl協議方式 18 $mail->Port = 465;// qq端口465或587) 19 $mail->setFrom($sendmail, $send_name);// 設置發件人信息,如郵件格式說明中的發件人, 20 $mail->addAddress($toemail, $to_name);// 設置收件人信息,如郵件格式說明中的收件人, 21 $mail->addReplyTo($sendmail, $send_name);// 設置回復人信息,指的是收件人收到郵件后,如果要回復,回復郵件將發送到的郵箱地址 22 $mail->Subject = "這里是郵件標題";// 郵件標題 23 24 $code=rand(100000,999999); 25 session("code",$code); 26 //return $code."----".session("code"); 27 $mail->Body = "郵件內容是 <b>您的驗證碼是:$code</b>,如果非本人操作無需理會!";// 郵件正文 28 //$mail->AltBody = "This is the plain text純文本";// 這個是設置純文本方式顯示的正文內容,如果不支持Html方式,就會用到這個,基本無用 29 if (!$mail->send()) { // 發送郵件 30 31 echo "Message could not be sent."; 32 echo "Mailer Error: " . $mail->ErrorInfo;// 輸出錯誤信息 33 } else { 34 return “發送成功”; 35 } 36 }
如果你就是直接的這樣寫那么你又會出現一系列的問題;
發送郵件我們需要一個擴展包隨便下一個phpmailer包;
我們需要里面的phpmailer.php,class.smtp.php兩個文件,放在extend文件下新建一個phpmailer文件夾下
phpmailer.php如果是class.phpmailer.php就把前面的Class去掉(我是在tp5框架)
分別在兩個文件里面加上命名空間use phpmailer\phpmailer;
不然會出現phpmailer not found 和 smtp not found
除此之外還要把phpmailer里面的最后一個方法繼承的Exception改成 \Exception
基本上直接就可以調用方法了,收到一份來自你自己的郵件;
