PHP使用PHPMailer發送郵件

1.下載PHPMailer代碼包
       PHPMailer項目地址:https://github.com/PHPMailer/PHPMailer
使用git clone命令克隆到本地,或直接點擊 Download ZIP 獲取到完整的PHPMailer代碼包。

在這裏插入圖片描述

2.將下載的PHPMailer的包解壓後部署到項目中
       這裏主要是src這個文件中的PHPMailer.php和SMTP.php這兩個文件

在這裏插入圖片描述

3.準備好要發送和接收的郵箱(QQ郵箱或163郵箱)
       進入QQ郵箱,點擊頁面左上方“設置”,再點擊“郵箱設置”下的“賬戶”選項卡,拖動滾動條,即可看到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務,將所有服務都進行開啓,然後點擊下面的生成授權碼按鈕,按照提示生成授權碼,記錄授權碼(後面要用到)。(163郵箱也是類似這樣的操作)

在這裏插入圖片描述
4.擴展準備
       PHPMailer需PHP的socket擴展支持,而PHPMailer鏈接qq域名郵箱時需要ssl加密方式(qq郵箱做了限制,只允許ssl的465或587端口,所以php還得openssl的支持,可以查看phpinfo,或者在Linux窗口用php -m 查看

在這裏插入圖片描述
5.開啓465端口
       這裏可以登錄服務器,查看安全組是否開啓465端口,如果沒有記得開啓一下

在這裏插入圖片描述
6.引入資源文件
       主要是引用PHPMailer.php和SMTP.php這兩個文件

在這裏插入圖片描述
7.封裝發送郵件的函數

//發送郵件
public function sentMsg($content,$server_name,$username){
	$mail = new \PHPMailer();
	$mail->isSMTP();
	// smtp需要鑑權 這個必須是true
	$mail->SMTPAuth = true;
	// 鏈接qq域名郵箱的服務器地址
	$mail->Host = 'smtp.qq.com';//smtp.163.com(163郵箱)
	// 設置使用ssl加密方式登錄鑑權
	$mail->SMTPSecure = 'ssl';
	// 設置ssl連接smtp服務器的遠程服務器端口號
	$mail->Port = 465;
	// 設置發送的郵件的編碼
	$mail->CharSet = 'UTF-8';
	// 設置發件人暱稱 顯示在收件人郵件的發件人郵箱地址前的發件人姓名
	$mail->FromName = '郵件服務';
	// smtp登錄的賬號
	$mail->Username = '[email protected]';//[email protected](163郵箱)
	// smtp登錄的密碼 使用生成的授權碼
	$mail->Password = 'xxxxxxx';//(163郵箱同樣也要授權碼)
	// 設置發件人郵箱地址 同登錄賬號
	$mail->From = '[email protected]';//[email protected]
	// 設置收件人郵箱地址
	$mail->addAddress($username);//$username代表收件人郵箱地址
	// 添加該郵件的主題
	$mail->Subject = '服務器:'.$server_name.'出錯';
   // 添加郵件正文
	$mail->Body = $content;//定義郵箱正文內容
	// 發送郵件
	$mail->send();
	$mail->smtpClose();
}

8.調用發送郵件接口

//測試調用接口
public function testSend(){		
	$content     = '該服務器的數據庫連接出錯,請前往查看!';
	$server_name = 'xx';
	$username    = '[email protected]';
	$this->sentMsg($content,$server_name,$username);
}

9.郵箱發送成功實現效果如下

在這裏插入圖片描述


以上完成的操作如有不正確的地方還望諸位多多指教
發佈了32 篇原創文章 · 獲贊 27 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章