php引入PHPMailer发送邮件
生活随笔
收集整理的這篇文章主要介紹了
php引入PHPMailer发送邮件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
昨天做了一個發送郵件的功能,如果直接用mail()函數,需要擁有自己的郵件服務器,所有引入PHPMailer類方便快捷,簡單寫一下開發步驟:
一、擁有自己的郵箱賬號(作為發件人郵箱)
分兩種情況:
1、如果是企業郵箱,需要用到的參數為郵箱號和密碼
2、如果是個人郵箱,需要用到的參數為郵箱號和授權碼(只有開啟之后才能通過PHP代碼,控制郵件的自動發送)
?
二、PHPMailer的下載
下載地址:https://github.com/PHPMailer/PHPMailer
我這里是用的thinkphp 5,下載后放到vendor目錄
三、封裝發送郵件方法,設置相關參數
?具體代碼如下,這里我用的是企業郵箱,如果是個人郵箱,需更改以下幾個參數值:
$mail->Host,$mail->Port,發件人郵箱密碼(授權碼)
<?php
/*** Created by PhpStorm.* User: Administrator* Date: 2018/10/15 0015* Time: 13:33*/namespace 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 ;
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();//啟用S??MTP調試// 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' => '成功發送郵件消息'] ;}}
}
轉載于:https://www.cnblogs.com/zzeng347/p/9796542.html
總結
以上是生活随笔為你收集整理的php引入PHPMailer发送邮件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《感鹤》第五句是什么
- 下一篇: 基因治疗不孕不育