国产精品一区二区三区……-大杳蕉伊人欧美一本遒在饯-日本不卡一区免费在线观看-国产亚洲欧美中文字幕

400-800-9385
網(wǎng)站建設(shè)資訊詳細(xì)

PHP網(wǎng)站開發(fā)使用PHPMailer發(fā)送郵件

發(fā)表日期:2020-09-30 11:03:57   作者來源:彬   瀏覽:2736   標(biāo)簽:PHP網(wǎng)站開發(fā)    
發(fā)送郵件的功能大家應(yīng)該寫過,這里我介紹總結(jié)一下使用PHPMailer集成類實(shí)現(xiàn)郵件發(fā)送,
首先是下載https://github.com/PHPMailer/PHPMailer/
使用 composer 安裝:
composer require phpmailer/phpmaile
準(zhǔn)備好后 需要一個(gè)發(fā)件郵箱和發(fā)件服務(wù)器
我用的是smtp地址
這里使用的郵箱一般可以用163 或者qq
163 smtp.163.com 企業(yè)郵箱 smtp.qiye.163.com
qq smtp.qq.com 企業(yè)郵箱smtp.exmail.qq.com
其中qq郵箱可能需要去設(shè)置開啟服務(wù)
 
 
 
準(zhǔn)備好后
可以封裝一個(gè)專門用于發(fā)送郵件的類
class SendemailService 
里面有兩個(gè)方法
sendEmail 發(fā)送郵件和外部調(diào)用
setBaseConfig 郵件發(fā)送的一些配置
 public function setBaseConfig($mail, $data, $get_email = '') {
        $config = $this->mailconfig;
        $get_email = $get_email ? $get_email : 默認(rèn)郵箱;
        $mail->SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
        );
        $mail->isSMTP(); // 使用SMTP服務(wù)
        $mail->SMTPAuth=true; //身份驗(yàn)證
        $mail->SMTPDebug = 0;
        //鏈接域名郵箱的服務(wù)器地址smtp.163.com,smtp.qq.com 
        $mail->Host = ’’;
        //設(shè)置使用ssl加密方式登錄鑒權(quán)
        $mail->SMTPSecure = 'ssl';
 
        //設(shè)置ssl連接smtp服務(wù)器的遠(yuǎn)程服務(wù)器端口號(hào),以前的默認(rèn)是25,但是現(xiàn)在新的好像已經(jīng)不可用了 可選465或587
        $mail->Port = 465;
        //設(shè)置smtp的helo消息頭 這個(gè)可有可無 內(nèi)容任意
        // $mail->Helo = 'Hello smtp.qq.com Server';
        //設(shè)置發(fā)件人的主機(jī)域 可有可無 默認(rèn)為localhost 內(nèi)容任意,建議使用你的域名
        $mail->Hostname = '';
        //設(shè)置發(fā)送的郵件的編碼 可選GB2312 我喜歡utf-8 據(jù)說utf8在某些客戶端收信下會(huì)亂碼
        $mail->CharSet = 'UTF-8';
        //設(shè)置發(fā)件人姓名(昵稱) 任意內(nèi)容,顯示在收件人郵件的發(fā)件人郵箱地址前的發(fā)件人姓名
        $mail->FromName = '';
        //smtp登錄的賬號(hào)
        $mail->Username = ‘’;
 
        //smtp登錄的密碼 使用生成的授權(quán)碼
        $mail->Password = ‘’;
 
        //設(shè)置發(fā)件人郵箱地址 這里填入上述提到的“發(fā)件人郵箱”
        $mail->From = ‘’;
 
        //郵件正文是否為html編碼 注意此處是一個(gè)方法 不再是屬性 true或false
        $mail->isHTML(true);
 
        //設(shè)置收件人郵箱地址 該方法有兩個(gè)參數(shù) 第一個(gè)參數(shù)為收件人郵箱地址 第二參數(shù)為給該地址設(shè)置的昵稱 不同的郵箱系統(tǒng)會(huì)自動(dòng)進(jìn)行處理變動(dòng) 這里第二個(gè)參數(shù)的意義不大
        $mail->addAddress($get_email,'');
 
        //添加多個(gè)收件人 則多次調(diào)用方法即可
        // $mail->addAddress('xxx@163.com','lsgo在線通知');
 
        //添加該郵件的主題
        $mail->Subject = $data['title'];
 
        //添加郵件正文 上方將isHTML設(shè)置成了true,則可以是完整的html字符串 如:使用file_get_contents函數(shù)讀取本地的html文件
        $mail->Body = $data['detail'];
        //$mail->AltBody = "This is the plain text純文本";// 這個(gè)是設(shè)置純文本方式顯示的正文內(nèi)容,如果不支持Html方式,就會(huì)用到這個(gè),基本無用
        return $mail;
    }
 
 
在開發(fā)中容易出現(xiàn)的問題就是亂碼和 發(fā)送失敗的問題
在配置都開啟的情況下
目前我知道的是PHP版本5.6及以上的版本需要加入
$mail->SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
     );
如果網(wǎng)站是有ssl證書可以試一試不加
亂碼問題是中文編碼設(shè)置為UTF-8
如果還出現(xiàn)亂碼官方文檔有說明
需要進(jìn)行轉(zhuǎn)碼
$mail->Subject = "=?utf-8?B?" . base64_encode($data['title']) . "?="
希望能幫到大家
如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來自http://pdcharm.com/news/5858.html
勃利县| 富民县| 长子县| 浑源县| 丽江市| 行唐县| 虎林市| 桃源县| 进贤县| 翁源县| 武冈市| 武冈市| 盐亭县| 安乡县| 无棣县| 翁牛特旗| 阜南县| 孟村| 小金县| 南宁市| 杭锦后旗| 元朗区| 浦北县| 大同县| 资源县| 龙胜| 桐城市| 旺苍县| 扎囊县| 孟连| 明溪县| 巫溪县| 伊通| 台中市| 吴堡县| 耿马| 错那县| 铜梁县| 正安县| 湖北省| 霍邱县|