在專案開發過程中,需要到了郵件提醒功能。首先想到的是CI自身帶不帶郵件傳送類,檢視帖子,發現CI本身自帶,然後試著利用CI自身帶的類庫來實現,經過搜搜很多帖子,不少開發者反饋CI自身的Email類有問題,也有同僚給出解決方案,但是在我實際過程中並沒有後解決。想到之前自己在使用TP3.2開發專案也做過郵件傳送功能,就搬了之前的引用類庫,應用的了CI裡。下面詳細介紹步驟。、
一、下載類庫並放入CI擴充套件目錄中
連結:https://pan.baidu.com/s/1yDSU-JIzwHc00Lwxf9_f9w 密碼:olge //百度雲下載地址
下載完成之後,把兩個檔案放入/system/libraries目錄下。我這裡把class.phpmailer.php檔案命名成為Pemail.php
然後編輯Pemail.php檔案。
<?php
//這裡我是參考CI擴充套件目錄下的其它檔案,也定義了常量,直接複製搬過來
defined('BASEPATH') OR exit('No direct script access allowed');
if (version_compare(PHP_VERSION, '5.0.0', '<') ) exit("Sorry, this version of PHPMailer will only run on PHP version 5 or greater!\n");
class CI_Pemail { //把類名重新命名,並前面加CI_
二、簡單使用方法(程式碼)
public function SendMail() {
$this->load->library('pemail'); //載入CI的email類
$this->pemail->IsSMTP(); // 設定使用SMTP伺服器傳送Email
$this->pemail->SMTPSecure = 'ssl'; // 使用安全協議
$this->pemail->CharSet ='UTF-8'; // 設定郵件的字元編碼,若不指定,則為'UTF-8'。這裡或者設定GBK
$this->pemail->SMTPDebug = 1; // 關閉SMTP除錯功能 1 = errors and messages 2 = messages only
$this->pemail->Host='smtp.qq.com'; // 設定SMTP伺服器。
$this->pemail->Port = 465; // SMTP伺服器的埠號
$this->pemail->SMTPAuth=true; // 設定為"需要驗證"
$this->pemail->Username='645631686@qq.com'; //設定使用者名稱
$this->pemail->Password='vaxvhieq*******'; //設定授權碼
$this->pemail->AddAddress( '2*******@qq.com'); // 新增收件人地址,可以多次使用來新增多個收件人
$this->pemail->AddAddress( '5******@qq.com'); // 新增收件人地址,可以多次使用來新增多個收件人
$this->pemail->FromName ='phper'; // 設定發件人名字
$this->pemail->From ='645631686@qq.com'; // 設定郵件頭的From欄位。
$this->pemail->Subject ='PHP是世界上最美的語言'; // 設定郵件標題
$this->pemail->Body ='這話沒毛病~'; // 設定郵件正文
return $this->pemail->Send(); // 傳送郵件。
}
補充:關於設定QQ郵箱開啟和除錯過程中的一些BUG,可以從百度搜到解決方案。或者問我就幫你解決