溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

thinkphp集成系列之phpmailer批量發(fā)送郵件

發(fā)布時(shí)間:2020-06-27 01:15:05 來源:網(wǎng)絡(luò) 閱讀:240 作者:帥白123 欄目:web開發(fā)

前段時(shí)間寫了一篇博客:thinkphp集成系列之短信驗(yàn)證碼、訂單通知

說了這是一個(gè)短信通知泛濫的年代;大部分網(wǎng)站的郵箱注冊都已經(jīng)被短信注冊所取代;

但是郵件和短信相比在一些場景依然有著重要的意義和優(yōu)勢;

1:零成本;發(fā)郵件沒有費(fèi)用;

2:內(nèi)容豐富且量大;郵件可以長篇大論;圖文并茂;

3:增加訪問量;用戶很容易通過郵件中的鏈接訪問網(wǎng)站;

好了;下面來來為thinkphp集成郵件系統(tǒng);

示例項(xiàng)目:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin

一:引入phpmail

從示例項(xiàng)目中復(fù)制兩個(gè)文件到自己的項(xiàng)目;

/ThinkPHP/Library/Org/Nx/class.phpmailer.php ;
/ThinkPHP/Library/Org/Nx/class.smtp.php ;

不要從官網(wǎng)上下載;因?yàn)橄螺d的phpmail直接引入thinkphp是有一些坑會報(bào)錯(cuò)的;

具體報(bào)什么錯(cuò);年代久遠(yuǎn);當(dāng)年整合的時(shí)候沒有記錄;

二:設(shè)置配置項(xiàng)

/Application/Common/Conf/config.php

    'EMAIL_FROM_NAME'        => '', // 發(fā)件人
    'EMAIL_SMTP'             => '', // SMTP服務(wù)器
    'EMAIL_USERNAME'         => '', // 賬號
    'EMAIL_PASSWORD'         => '', // 密碼

如果使用163郵箱;此處有一個(gè)坑;首先是要開啟smtp;

thinkphp集成系列之phpmailer批量發(fā)送郵件

thinkphp集成系列之phpmailer批量發(fā)送郵件

開啟過程中是要設(shè)置一個(gè)授權(quán)密碼;開啟完成;又一個(gè)坑也就同步挖好了;

配置項(xiàng)中的EMAIL_PASSWORD 指的不是163郵箱的登錄密碼;而是授權(quán)密碼;

否則SMTP connect() failed;

三:發(fā)送郵件

/**
 * 發(fā)送郵件
 * @param  string $address 需要發(fā)送的郵箱地址 發(fā)送給多個(gè)地址需要寫成數(shù)組形式
 * @param  string $subject 標(biāo)題
 * @param  string $content 內(nèi)容
 * @return boolean       是否成功
 */
function send_email($address,$subject,$content){
    $email_smtp=C('EMAIL_SMTP');
    $email_username=C('EMAIL_USERNAME');
    $email_password=C('EMAIL_PASSWORD');
    $email_from_name=C('EMAIL_FROM_NAME');
    if(empty($email_smtp) || empty($email_username) || empty($email_password) || empty($email_from_name)){
        return array("error"=>1,"message"=>'郵箱配置不完整');
    }
    require './ThinkPHP/Library/Org/Nx/class.phpmailer.php';
    require './ThinkPHP/Library/Org/Nx/class.smtp.php';
    $phpmailer=new \Phpmailer();
    // 設(shè)置PHPMailer使用SMTP服務(wù)器發(fā)送Email
    $phpmailer->IsSMTP();
    // 設(shè)置為html格式
    $phpmailer->IsHTML(true);
    // 設(shè)置郵件的字符編碼'
    $phpmailer->CharSet='UTF-8';
    // 設(shè)置SMTP服務(wù)器。
    $phpmailer->Host=$email_smtp;
    // 設(shè)置為"需要驗(yàn)證"
    $phpmailer->SMTPAuth=true;
    // 設(shè)置用戶名
    $phpmailer->Username=$email_username;
    // 設(shè)置密碼
    $phpmailer->Password=$email_password;
    // 設(shè)置郵件頭的From字段。
    $phpmailer->From=$email_username;
    // 設(shè)置發(fā)件人名字
    $phpmailer->FromName=$email_from_name;
    // 添加收件人地址,可以多次使用來添加多個(gè)收件人
    if(is_array($address)){
        foreach($address as $addressv){
            $phpmailer->AddAddress($addressv);
        }
    }else{
        $phpmailer->AddAddress($address);
    }
    // 設(shè)置郵件標(biāo)題
    $phpmailer->Subject=$subject;
    // 設(shè)置郵件正文
    $phpmailer->Body=$content;
    // 發(fā)送郵件。
    if(!$phpmailer->Send()) {
        $phpmailererror=$phpmailer->ErrorInfo;
        return array("error"=>1,"message"=>$phpmailererror);
    }else{
        return array("error"=>0);
    }
}

 

發(fā)送郵件調(diào)用函數(shù);

send_email('baijunyao@baijunyao','郵件標(biāo)題','郵件內(nèi)容');
// 如果群發(fā)郵件 則傳入數(shù)組即可
$emails=array('b1@baijunyao.com','b2@baijunyao.com');
send_email($emails,'郵件標(biāo)題','郵件內(nèi)容');

 

本文為白俊遙原創(chuàng)文章,轉(zhuǎn)載無需和我聯(lián)系,但請注明來自白俊遙博客http://baijunyao.com                        



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI