昨天做了一個發送郵件的功能,如果直接用mail()函數,需要擁有自己的郵件服務器,所有引入PHPMailer類方便快捷,簡單寫一下開發步驟:
一、擁有自己的郵箱賬號(作為發件人郵箱)
分兩種情況:
1、如果是企業郵箱,需要用到的參數為郵箱號和密碼
2、如果是個人郵箱,需要用到的參數為郵箱號和授權碼(只有開啟之后才能通過PHP代碼,控制郵件的自動發送)

二、PHPMailer的下載
下載地址:http://github.com/PHPMailer/PHPMailer
我這里是用的thinkphp 5,下載后放到vendor目錄
三、封裝發送郵件方法,設置相關參數
具體代碼如下,這里我用的是企業郵箱,如果是個人郵箱,需更改以下幾個參數值:
$mail- Host,$mail- Port,發件人郵箱密碼(授權碼)
?php * Created by PhpStorm. * User: Administrator * Date: 2018/10/15 0015 * Time: 13:33namespace app/common/model;require VENDOR_PATH . PHPMailer/src/Exception.php require VENDOR_PATH . PHPMailer/src/PHPMailer.php require VENDOR_PATH . PHPMailer/src/SMTP.php use PHPMailer/PHPMailer/PHPMailer;use PHPMailer/PHPMailer/SMTP;use PHPMailer/PHPMailer/Exception ;html' target='_blank'>class Mail //發件人郵箱 private static $_fromAddress = ***@medpeer.cn //發件人郵箱登錄密碼(非企業郵箱為授權碼) private static $_pwd = *** //收件人郵箱 private static $_toAddress = ***@medpeer.cn * 發送郵件 * @author ZZ * @param string $fromAddress 發件人 * @param string $pwd 發件人登錄密碼 * @param string $toAddress 收件人 * @param string $title 郵件題目 * @param string $content 郵件內容 * @return array public function sendMail($title,$content,$toAddress = ,$fromAddress = ,$pwd = ){ if (empty($title) || empty($content)) { return [ result = false, msg = 參數錯誤 if (empty($fromAddress)) { $fromAddress = self::$_fromAddress; $pwd = self::$_pwd; if (empty($toAddress)) { $toAddress = self::$_toAddress; $mail = new PHPMailer(); //告訴PHPMailer使用SMTP $mail- isSMTP(); //啟用SMTP調試 // 0 =關閉(供生產使用) // 1 =客戶端消息 // 2 =客戶端和服務器消息 $mail- SMTPDebug = 2 ; //設置郵件服務器的主機名 $mail- Host = smtp.exmail.qq.com //使用 // $ mail- Host = gethostbyname( smtp.gmail.com //如果您的網絡不支持SMTP over IPv6 //設置SMTP端口號 - 587用于經過身份驗證的TLS,即RFC4409 SMTP提交 $mail- Port = 465; //設置加密系統使用 - ssl(不建議使用)或tls $mail- SMTPSecure = ssl //是否使用SMTP身份驗證 $mail- SMTPAuth = true ; //用于SMTP身份驗證的用戶名 - 使用gmail的完整電子郵件地址 $mail- Username = $fromAddress; //用于SMTP身份驗證的密碼(企業郵箱的話為登錄密碼) $mail- Password = $pwd; //設置發送的郵件的編碼 可選GB2312 我喜歡utf-8 據說utf8在某些客戶端收信下會亂碼 $mail- CharSet = UTF-8 //設置要從中發送消息的人員 $mail- setFrom($fromAddress, *** //設置備用回復地址 //$mail- addReplyTo( ***@qq.com , 騰訊 //設置要將消息發送給誰 $mail- addAddress($toAddress, *** //設置主題行 $mail- Subject = $title; //從外部文件中讀取HTML郵件正文,將引用的圖像轉換為嵌入式圖像 //將HTML轉換為基本的純文本替代正文 //$mail- msgHTML(file_get_contents( contents.html ),__DIR__); //用手動創建的純文本正文替換 $mail- AltBody = This is the body in plain text for non-HTML mail clients $mail- Body = $content; $result = $mail- send(); if (!$result) { return [ result = false, msg = $mail- ErrorInfo]; } else { return [ result = true, msg = 成功發送郵件消息 }
以上就是php如何引入PHPMailer發送郵件的步驟講解(附代碼)的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答