thinkphp發送郵箱(以thinkphp5作為示例)。


第一步:設置我們的郵箱客戶端授權碼

 

第二步:下載相應的第三方類庫(我這里用的PHPemail)

這是phpemailde 第三方類庫的文件下載地址:https://github.com/PHPMailer/PHPMailer。當我們下載好后,里面有很多我們不需要的,直接復制class.phpmailer.php

和class.smtp.php這兩文件即可,按照tp5的文件目錄,我們將它存放在extend下面,同時我們將class.phpemailer.php文件名改為phpemailer.php。如下

我們給這兩個文件都增加一個命名空間即可,便於后面直接調用。按照我的目錄應該是

namespace mailer;

第三步:創建我們的代碼片段並配置相關的參數

接下來,找到我們項目公共配置文件的common.php文件,創建一個公用的函數。代碼如下

<?php
use mailer\phpmailer;
/*
 * 應用公共函數文件,函數不能定義為public類型,
 * 如果我們要使用我們定義的公共函數,直接在我們想用的地方直接調用函數即可。
 * */
// 公共發送郵件函數
function sendEmail($desc_content, $toemail,  $desc_url){
        $mail = new PHPMailer();
        $mail->isSMTP();// 使用SMTP服務
        $mail->CharSet = "utf8";// 編碼格式為utf8,不設置編碼的話,中文會出現亂碼
        $mail->Host = "smtp.163.com";// 發送方的SMTP服務器地址
        $mail->SMTPAuth = true;// 是否使用身份驗證
        $mail->Username = "";// 發送方的163郵箱用戶名,就是你申請163的SMTP服務使用的163郵箱</span><span style="color:#333333;">
        $mail->Password = "";// 發送方的郵箱密碼,注意用163郵箱這里填寫的是“客戶端授權密碼”而不是郵箱的登錄密碼!</span><span style="color:#333333;">
        $mail->SMTPSecure = "ssl";// 使用ssl協議方式</span><span style="color:#333333;">
        $mail->Port = 994;// 163郵箱的ssl協議方式端口號是465/994
        $mail->setFrom("","Mailer");// 設置發件人信息,如郵件格式說明中的發件人,這里會顯示為Mailer(xxxx@163.com),Mailer是當做名字顯示
        $mail->addAddress($toemail,'小Q資源網博客回復消息');// 設置收件人信息,如郵件格式說明中的收件人,這里會顯示為Liang(yyyy@163.com)
        $mail->addReplyTo("","Reply");// 設置回復人信息,指的是收件人收到郵件后,如果要回復,回復郵件將發送到的郵箱地址
        //$mail->addCC("xxx@163.com");// 設置郵件抄送人,可以只寫地址,上述的設置也可以只寫地址(這個人也能收到郵件)
        //$mail->addBCC("xxx@163.com");// 設置秘密抄送人(這個人也能收到郵件)
        //$mail->addAttachment("bug0.jpg");// 添加附件
        $mail->Subject = "小Q資源網郵件回復!";// 郵件標題
        $mail->Body = "以下是小Q網絡資源博客博主回復你的內容:".$desc_content."點擊可以查看文章地址:".$desc_url;// 郵件正文
        //$mail->AltBody = "This is the plain text純文本";// 這個是設置純文本方式顯示的正文內容,如果不支持Html方式,就會用到這個,基本無用

        if(!$mail->send()){// 發送郵件
            return $mail->ErrorInfo;
        // echo "Message could not be sent.";
        // echo "Mailer Error: ".$mail->ErrorInfo;// 輸出錯誤信息
        }else{
            return 1;
        }
}

創建好后,我們便可以直接調用該函數。

/**
     * 郵件發送
     */
    public function sendEmail(Request $request)
    {
        // 根據你的內用傳入得到相關的參數,在調用我們方才的函數時,傳遞過去即可。
        $res = sendEmail($desc_content, $toemail, $desc_url);
       // $res就是sendEmail()返回的值。我們根據返回的相應參數進行處理即可。

    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM