TP5使用PHPMailer發送郵件


網上好多答案都過時了,這里重新記一下

一、使用composer安裝phpmailer

composer require phpmailer/phpmailer

二、在應用公共文件common.php寫個發送郵件的函數(騰訊郵箱的為例),需要注意的是實例化PHPMailer的時候

/**
 * Notes:發送郵件
 * @param string $tomail 接收郵件者郵箱
 * @param string $name 接收郵件者名稱
 * @param string $subject 郵件主題
 * @param string $body 郵件內容
 * @param string $attachment 附件列表
 * @return boolean
 * @throws phpmailerException
 */
function send_mail($tomail, $name, $subject = '', $body = '', $attachment = null) {

    $mail = new PHPMailer\PHPMailer\PHPMailer();           //實例化PHPMailer對象
    $mail->CharSet = 'UTF-8';           //設定郵件編碼,默認ISO-8859-1,如果發中文此項必須設置,否則亂碼
    $mail->IsSMTP();                    // 設定使用SMTP服務
    $mail->SMTPDebug = 0;               // SMTP調試功能 0=關閉 1 = 錯誤和消息 2 = 消息
    $mail->SMTPAuth = true;             // 啟用 SMTP 驗證功能
    $mail->SMTPSecure = 'ssl';          // 使用安全協議
    $mail->Host = "smtp.qq.com"; // SMTP 服務器
    $mail->Port = 465;                  // SMTP服務器的端口號
    $mail->Username = "XXXXX@qq.com";    // SMTP服務器用戶名
    $mail->Password = "XXXXX";     // SMTP服務器密碼,這里是你開啟SMTP服務時生成密碼
    $mail->SetFrom('XXXXX@qq.com', '發件人昵稱');
    $replyEmail = '';                   //留空則為發件人EMAIL
    $replyName = '';                    //回復名稱(留空則為發件人名稱)
    $mail->AddReplyTo($replyEmail, $replyName);
    $mail->Subject = $subject;
    $mail->MsgHTML($body);
    $mail->AddAddress($tomail, $name);
    if (is_array($attachment)) { // 添加附件
        foreach ($attachment as $file) {
            is_file($file) && $mail->AddAttachment($file);
        }
    }
    return $mail->Send() ? true : $mail->ErrorInfo;
}

三,在控制器中調用

public function send_email()
    {
        $toemail='1055499770@qq.com';//收件人郵箱
        $name='親愛的Pedro,您好!';//接收郵件者名稱
        $subject='QQ郵件發送測試';//郵件主題
        $content='恭喜你,郵件測試成功。';//郵件內容
        //調用方法發送郵件
        dump(send_mail($toemail,$name,$subject,$content));
    }

四、測試


免責聲明!

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



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