利用PHPMailer擴展,完成網易企業郵箱發送郵件功能

做了好幾次發送郵件的功能了,都沒有總結,今天總結一下吧,有什麼不對的地方,可以留言,共同探討

1.這次做的是網易的企業郵箱,網易的企業郵箱和別的郵箱還不一樣,客戶端設置特別簡單,沒有任何說明,找了老半天smtp的開啓,就是沒有,只有POP和IMAP兩個,結果人家自動開啓,根本不需要開啓,最後設置客戶端授權碼,完成之後複製,保存好,頁面關閉以後是不會再顯示的

 

2.至於地址,網易有一個專門查看服務器地址的連接,如下,https://qiye.163.com/help/client-profile.html

3.然後,輸入自己的公司申請的域名,查看郵件服務器地址,如下圖: 然後複製發送郵件的服務器SMTP的地址寫在配置文件裏面

4.PHPMailer 可以用composer下載,下載完以後,直接引用

打開終端命令框進入項目的根目錄,輸入

composer下載的命令:composer require phpmailer/phpmailer

下載完成後會在項目的vender目錄中,然後開始寫方法代碼

代碼放在框架的公共方法common.php裏面,方便調用

//發送郵件方法
use PHPMailer\PHPMailer\PHPMailer;
function sendEmail($email,$title,$content){
    try{
        $mail = new PHPMailer();

        $mail->SMTPDebug = 2;              //郵件調試模式 開發環境建議開啓 生產環境註釋掉即        
                                             可 默認關閉debug調試模式

        $mail->isSMTP();                   //設置郵件使用SMTP

        $mail->Host = 'smtphz.qiye.163.com'; // 設置郵件程序以使用SMTP

        $mail->CharSet='UTF-8';            // 設置郵件內容的編碼

        $mail->SMTPAuth = true;            // 啓用SMTP驗證

        $mail->Username = '***@****.com';  // SMTP username  企業郵箱登錄名

        $mail->Password = '******';        // SMTP password  客戶端授權碼

        $mail->SMTPSecure = 'ssl';         // 啓用TLS加密,`ssl`也被接受

        $mail->Port = 465;                // 連接的TCP端口

        $mail->setFrom('[email protected]','無疆酒店管理系統');//設置發件人

        $mail->addAddress($email);        //  添加收件人1
//            $mail->addAddress('[email protected]');               // Name is optional

        $mail->addReplyTo('[email protected]');//收件人回覆的郵箱
//            抄送
//            $mail->addCC('[email protected]');
//            $mail->addBCC('[email protected]');
        //附件
//            $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
//            $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name

        $mail->isHTML(true);              // 將電子郵件格式設置爲HTML
   
        $mail->Subject = $title;          //設置郵件標題

        $mail->Body    = $content;        // 設置郵件內容

//            $mail->AltBody = '這是非HTML郵件客戶端的純文本';
        $res = $mail->send();
        if($res){
            $res = [
                'code' =>'1',
                'msg'  =>'Message has been sent'
            ];
            return $res;
        }

    }catch (Exception $e){
        $res = [
            'code'=>'-1',
            'msg'=>'Mailer Error: ' . $mail->ErrorInfo
        ];
        return  $res;
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章