tp3.2使用QQ郵箱或163郵箱經過PHPMailer發送郵件

我以前一直使用163郵箱發送須要處理的文件,可是若是操做過於頻繁【或者有別的問題】,會致使發送失敗,相反如今用QQ的貌似還沒出現過相似狀況,不過QQ郵箱配置和163有一丟丟不同,我仍是貼一下,怕朋友們踩到坑(建議你們用qq郵箱,建議你們用qq郵箱,建議你們用qq郵箱)重要的事情說三遍!!!php


1.下載PHPMailer,我這裏推薦你們使用composer安裝html

"require": {
    "phpmailer/phpmailer":"*"
  },

2.使用PHPMailer,我這裏先建立一個類去使用,直接上代碼:composer

use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\PHPMailer;

class SendEmail
{
    public function __construct($options)
    {
        try {
            $mail = new PHPMailer(); //New instance, with exceptions enabled
            $mail->CharSet='UTF-8'; //這是設置中文的編碼
            $body = $options['body'];  //發送的消息內容

            $mail->IsSMTP();                           // tell the class to use SMTP
            $mail->SMTPAuth = true;                  // enable SMTP authentication
            $mail->Port = $options['Port'];                    // set the SMTP server port
            $mail->Host = $options['Host']; // SMTP server 網易是smtp.163.com這個,QQ郵箱是smtp.qq.com
            $mail->Username = $options['Username'];     // SMTP server username
            $mail->Password = $options['Password'];            // SMTP server password


            $mail->AddReplyTo($options['ReplyEmail'], $options['ReplyEmailName']); //回覆地址

            $mail->From = $options['From'];  //發送方的郵箱地址
            $mail->FromName = $options['FromName'];    //發送方的郵箱名

            $to = $options['to'];  //接收方的郵件地址

            $mail->AddAddress($to);

            $mail->Subject = $options['Subject'];

            $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
            $mail->WordWrap = 80; // set word wrap
            $mail->AddAttachment($options['AddAttachment']); //能夠添加附件

            $mail->MsgHTML($body);
            $mail->Send();
        } catch (Exception $e) {
            echo $e->errorMessage();
        }
    }
}

而後就在一個控制器上調用這個類就能夠了,繼續上代碼:ui

$options = [
            'Port' => 25,  //網易是25端口,其實也不重要,qq照樣能用
            'Host' => 'smtp.qq.com',//網易是這個,QQ郵箱是smtp.qq.com
            'Username' => '********@qq.com', //發送郵件的賬號
            'Password' => '********',   //發送郵件賬號的客戶端受權碼
            'ReplyEmail' => '********@163.com',  //回覆郵件的郵箱地址
            'ReplyEmailName' => '********',  //回覆郵件的郵箱賬號
            'From' => '********@qq.com',  //發送郵件的郵箱賬號地址
            'FromName' => '********',  //發送郵件的郵箱賬號名稱
            'to' => '********@qq.com',  //發送郵件的郵箱賬號名稱
            'Subject' => '********',//標題
            'body' => '********',
            'AddAttachment' => dirname($_SERVER["DOCUMENT_ROOT"]) . "/html/test.png" //這是添加附件的東西
        ];
        $sendmial = new SendEmail($options);

最後說幾個問題,Username的話,網易直接使用郵箱名便可,QQ郵箱請輸入郵箱前綴【用戶名】『eg.1214982635@qq.com
請輸入1214982635』 Password網易直接輸入郵箱密碼便可【有受權碼輸受權碼】,QQ請輸受權碼,發個短信就能生成
至此已經能夠發送郵件了,附上兩個郵箱互相發送成功的截圖編碼

相關文章
相關標籤/搜索