PHPMailer
PHPMailer 是一個(gè)封裝好的 PHP 郵件發(fā)送類,支持發(fā)送 HTML 內(nèi)容的電子郵件,以及可以添加附件發(fā)送,并不像 PHP 本身 mail() 函數(shù)需要服務(wù)器環(huán)境支持,您只需要設(shè)置郵件服務(wù)器以相關(guān)信息就能實(shí)現(xiàn)郵件發(fā)送功能。
PHP擴(kuò)展支持
PHPMailer 需要 PHP 的 sockets 擴(kuò)展支持,而登錄 QQ 郵箱 SMTP 服務(wù)器則必須通過(guò) SSL 加密,故 PHP 還得包含 openssl 的支持。

image.png
以qq郵箱為例
1、開(kāi)啟IMAP/SMTP服務(wù)
登錄qq郵箱,首先需要開(kāi)啟郵箱的SMTP服務(wù)。
找到qq郵箱>設(shè)置>賬戶>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù)

image.png
開(kāi)啟之后,要記得生成授權(quán)碼,授權(quán)碼一定要是最新的。
2、安裝phpmailer
(1)composer 安裝
composer require phpmailer/phpmailer
或者在composer.json中手動(dòng)增加一個(gè) phpmailer require
"require": {
"php": ">=5.4.0",
"phpmailer/phpmailer": "^5.2"
},
(2) 或者gitHub 下載 https://github.com/PHPMailer/PHPMailer
(3)或官網(wǎng)下載 https://sourceforge.net/projects/phpmailer/files/latest/download
3、配置參數(shù)
為了分便使用可以把配置函數(shù)寫(xiě)到common.php公共函數(shù)文件中如
/**
* 配置youji
*/
function SendMail($address,$title,$message){
vendor ('phpmailer.phpmailer.src.PHPMailer');
$mail = new \PHPMailer();
// 設(shè)置PHPMailer使用SMTP服務(wù)器發(fā)送Email
$mail->IsSMTP();
// 設(shè)置郵件的字符編碼,若不指定,則為'UTF-8'
$mail->CharSet='UTF-8';
// 添加收件人地址,可以多次使用來(lái)添加多個(gè)收件人
$mail->AddAddress($address);
// 設(shè)置郵件正文
$mail->Body=$message;
//設(shè)置發(fā)件人郵箱地址 這里填入上述提到的“發(fā)件人郵箱”
$mail->From='***@qq.com';
//設(shè)置發(fā)件人姓名(昵稱) 任意內(nèi)容,顯示在收件人郵件的發(fā)件人郵箱地址前的發(fā)件人姓名
$mail->FromName='皮特張';
// 設(shè)置郵件標(biāo)題
$mail->Subject=$title;
// 設(shè)置SMTP服務(wù)器。
$mail->Host='smtp.qq.com';
// 設(shè)置為"需要驗(yàn)證"
$mail->SMTPAuth=true;
//smtp登錄的賬號(hào) 這里填入字符串格式的qq號(hào)即可
$mail->Username='****';
//smtp登錄的密碼 使用生成的授權(quán)碼 你的最新的授權(quán)碼
$mail->Password='*********';
// 發(fā)送郵件。 成功返回true或false
return($mail->Send());
}
/**
* 調(diào)用發(fā)送郵件
*/
public function testmailer(){
$res = $this->SendMail('***@qq.com','發(fā)送標(biāo)題','發(fā)送成功了耶');
if(!$res){
return $this->error('發(fā)送郵件失敗');
}
return $this->success('發(fā)送郵件成功','/');
}
4、發(fā)送成功

image.png