1. 程式人生 > >使用PHPMAILER實現PHP發郵件功能

使用PHPMAILER實現PHP發郵件功能

 第一步:

開啟網址https://github.com/PHPMailer/PHPMailer/ 下載PHPMailer,PHPMailer 需要 PHP 的 sockets 擴充套件支援,而登入 QQ 郵箱 SMTP 伺服器則必須通過 SSL 加密的, PHP 還得包含 openssl 的支援。

第二步:使用 phpinfo() 函式檢視 socket 和 openssl 擴充套件資訊(wamp server 預設啟用了該擴充套件)。

openssl 如果沒有開啟請開啟php.ini檔案進行開啟

首先檢查php.ini中;extension=php_openssl.dll是否存在, 如果存在的話去掉前面的註釋符‘;’, 如果不存在這行,那麼新增extension=php_openssl.dll。

PHPMailer 核心檔案

第三步:QQ 郵箱設定

所有的主流郵箱都支援 SMTP 協議,但並非所有郵箱都預設開啟,您可以在郵箱的設定裡面手動開啟。

第三方服務在提供了賬號和密碼之後就可以登入 SMTP 伺服器,通過它來控制郵件的中轉方式。

第四步:開啟 SMTP 服務

選擇 IMAP/SMTP 服務,點選開啟服務

第五步:驗證密保

傳送簡訊“配置郵件客戶端”至1069-0700-69

第六步:獲取授權碼

SMTP 伺服器認證密碼,需要妥善保管(PS:密碼直接沒有空格)

第七步:PHP傳送郵件

基本程式碼

下面的程式碼演示了 PHPMailer 的使用方法,注意 PHPMailer 例項的配置過程。

/**
 * 傳送郵件
 */
public function start_email($email,$passWord,$type)
{
    $reTime = time();
    $accessToken = md5($email . $passWord . $reTime);//建立用於啟用識別碼
    $accessExpires = $reTime + 60 * 60 * 24; //過期時間為24小時後

    //插入待啟用表
    $data['user_name'] = $email;
    $data['pass_word'] = $passWord;
    $data['token'] = $accessToken;
    $data['expires'] = $accessExpires;
    $data['type'] = $type;
    $res = Db::table('equ_email')->insert($data);
    

    $link = TP_HTTP_PATH  . "index/Login/activation?accessToken={$accessToken}";
    $str = "
                您好!<p></p>
                感謝您在領創機械裝置網註冊帳戶!<p></p>
                帳戶需要啟用才能使用,趕緊啟用成為領創機械裝置網的正式一員吧:)<p></p>
                點選下面的連結立即啟用帳戶(或將網址複製到瀏覽器中開啟):<p></p>
                ".$link;
    $result = $this->send_email($email, '領創機械裝置網帳戶啟用郵件--' . $email, $str);
    if ($result['error'] == 1) {
        var_dump($result);
        die;
    }
    $this->success('郵件已傳送','index/login/denglu');
}