CI(CodeIgniter)框架下使用非自帶類庫實現郵件傳送

OldBoy~發表於2018-05-17

在專案開發過程中,需要到了郵件提醒功能。首先想到的是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,可以從百度搜到解決方案。或者問我就幫你解決

 

 

相關文章