1. 程式人生 > >PHPMailer實現後臺傳送QQ郵件

PHPMailer實現後臺傳送QQ郵件

引言

PHPMailer是PHP的全功能電子郵件建立和傳輸類包,可以支援HTML格式的郵件內容,並且可以允許在沒有本地郵件伺服器的Windows平臺上傳送電子郵件。具體的詳細特點介紹可以看GitHub中的說明文件

說明

最近在專案IT管理課上的專案中遇到了一個使用者通過電子郵件修改密碼的需求,想著用PHPMailer來實現,這個類包功能強大,很方便,這裡我參照Github中的例項寫了一個測試用的程式,實現了給指定郵箱傳送HTML格式的email,並在其中<a>標籤中放置自己本機測試專案的地址,通過郵件跳到專案的相關頁面進行操作

前提工作

首先,需要去QQ郵箱開啟IMAP/SMTP服務,這個是免費的。但是不知道是什麼原因,可能不是會員所以還是有一定區別?反正寫好的測試程式碼不穩定,有時候可以連線到SMTP伺服器,有時候就連線不到。不過沒關係,如果只是課上的大作業之類的,多try幾次老師應該也是允許的

如何開啟IMAP/SMTP服務?

1、登陸QQ郵箱,天頭地方設定->賬戶->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務,點選開啟。提醒一點,開啟之前還是耐心看看QQ郵箱在連結地址給出的幫助文件,很有用;另外,儲存好授權碼,這個在幫助文件中有,仔細看看 在這裡插入圖片描述 2、去GitHub中下載PHPMailer類包,我建議下載5.2-stable的穩定版 3、放到你的專案中去,我是用的ThinkPHP框架,我放到了vendor中去

示例程式碼


<?php
namespace Home\Controller;
use Think\Controller;
class
MailerController extends Controller{ public function sentMailerForResetPwd(){ vendor('PHPMailer.PHPMailerAutoload'); $mail = new \PHPMailer(); $mail->SMTPDebug = 2; $mail->isSMTP(); //設定mailer使用SMTP協議 $mail->Host = "smtp.qq.com"; //設定接受郵件的SMTP伺服器地址 $mail->SMTPAuth = true; //開啟SMTP認證
$mail->Username = "[email protected]"; // SMTP的使用者名稱 $mail->Password = "***********"; //QQ郵箱的SMTP授權碼 $mail->SMTPSecure = "ssl"; //設定開啟ssl認證 $mail->Port = "465"; //埠號465或者587 $mail->setFrom('[email protected]','lvbingxu');//設定發件人 $mail->addAddress('[email protected]'); // $mail->addAttachment('');//新增附件 // $mail->addReplyTo('[email protected]','info');//增加回復標籤 // $mail->addCC(); //增加一個抄送 // $mail->addBCC(); //增加一個密送 $mail->isHTML(true); $mail->Subject = "Here is the test PHPmailer"; $mail->Body = "<!DOCTYPE html> <html> <head> <title>test PHPMailer</title> </head> <body> <h1>PHPMailer Test</h1><hr> <a href='urlxxxxx'>link test</a> </body> </html>"; if(!$mail->send()){ echo "Message could not be sent"; echo "Mailer Error : ".$mail->ErrorInfo; }else{ echo "Message has been sent"; } } } ?>

其中一些涉及隱私的地方,我都修改為xxx,改為自己的認證就好了

效果

點選郵件中的link test,跳轉到了本地專案的初始頁 在這裡插入圖片描述

在這裡插入圖片描述

友情連線