[TOC]
## phpMailer 的特點
phpMailer 是一個非常強大的 ph p發送郵件類,可以設定發送郵件地址、回復地址、郵件主題、html網頁,上傳附件,并且使用起來非常方便。
**phpMailer 的特點:**
* 1、在郵件中包含多個 TO、CC、BCC 和 REPLY-TO。
* 2、平臺應用廣泛,支持的 SMTP 服務器包括 Sendmail、qmail、Postfix、Gmail、Imail、Exchange 等等。
* 3、支持嵌入圖像,附件,HTML 郵件。
* 4、可靠的強大的調試功能。
* 5、支持 SMTP 認證。
* 6、自定義郵件頭。
* 7、支持 8bit、base64、binary 和 quoted-printable 編碼。
phpmailer 安裝或者下載方式:
1、從 github 上下載:[https://github.com/PHPMailer/PHPMailer/](https://github.com/PHPMailer/PHPMailer/)
2、使用 composer 安裝:
~~~
composer require phpmailer/phpmailer
~~~
發送之前需要擁有自己的郵件服務器,測試的時候其實用自己申請的免費郵箱最方便了,不需要自己再搭建服務器了,可能要配置郵箱的SMTP服務,大部分公共郵箱(163、qq等)為了安全默認是關閉的。
網易郵箱配置如下圖:

QQ 郵箱相關配置如下圖:
| 郵箱 | POP3服務器(端口995) | SMTP服務器(端口465或587) |
| --- | --- | --- |
| qq.com | pop.qq.com | smtp.qq.com |
## 163郵箱測試,先開啟SMTP

當然除了網易和 QQ 郵箱其他郵箱也是可以的,下面給出 php 代碼示例:
## 實例
~~~
use PHPMailer\PHPMailer\PHPMailer
$mail = new PHPMailer(true); // Passing `true` enables exceptions
try {
//服務器配置
$mail->CharSet ="UTF-8"; //設定郵件編碼
$mail->SMTPDebug = 0; // 調試模式輸出
$mail->isSMTP(); // 使用SMTP
$mail->Host = 'smtp.163.com'; // SMTP服務器
$mail->SMTPAuth = true; // 允許 SMTP 認證
$mail->Username = 'xxxx@163.com'; // SMTP 用戶名 即郵箱的用戶名
// $mail->Password = 'ZGxxxxxxxx'; // SMTP 密碼 部分郵箱是授權碼(例如163郵箱)
$mail->SMTPSecure = 'ssl'; // 允許 TLS 或者ssl協議
$mail->Port = 465; // 服務器端口 25 或者465 具體要看郵箱服務器支持
$mail->setFrom('xxxx@163.com', 'Mailer'); //發件人
$mail->addAddress('xxxx@163.com', 'Joe'); // 收件人
//$mail->addAddress('ellen@example.com'); // 可添加多個收件人
$mail->addReplyTo('xxxx@163.com', 'info'); //回復的時候回復給哪個郵箱 建議和發件人一致
//$mail->addCC('cc@example.com'); //抄送
//$mail->addBCC('bcc@example.com'); //密送
//發送附件,文件目錄我是laravel,存的文件目錄再public下面,所以一下路徑是對的
// $mail->addAttachment('./upload/files/xy.zip'); // 添加附件,用這個顯示名稱默認文件名稱
// $mail->addAttachment('./upload/files/thumb-1.jpg', 'new.jpg'); // 發送附件并且重命名,用這個顯示名稱可以自定義
//如果需要在郵件內容里面貼圖片,需要填寫下面語句,然后再html代碼里面使用<img src="cid:weixin_img" >來接收
//切記,如果附件和圖片同時存在,需要 先添加附件再添加圖片,不然圖片不顯示(PS:發現也沒用了,2個不能同時存在, 目前沒有找到解決辦法,如果你能解決了給我留個言唄,謝謝)
$this->mail->addEmbeddedImage('./weixin.jpg','weixin_img'); // 添加圖片
//Content
$mail->isHTML(true); // 是否以HTML文檔格式發送 發送后客戶端可直接顯示對應HTML內容
$mail->Subject = '這里是郵件標題' . time();
$mail->Body = '<h1>這里是郵件內容</h1>' . date('Y-m-d H:i:s');
$mail->AltBody = '如果郵件客戶端不支持HTML則顯示此內容';
$mail->send();
return ['code' => 0, 'msg' => '郵件發送成功', 'response' => []];
} catch (\Exception $e) {
return ['code' => 1, 'msg' => $mail->ErrorInfo, 'response' => []];
}
~~~
附件目錄結構

## 發送完帶附件的郵件界面如下

~~~
文章來源:https://www.liminghulian.com/article/98
~~~
- PHP書寫規則
- 代碼縮進
- 大括號{ }書寫規則
- 變量賦值對齊
- if條件判斷規范
- 避免嵌入式賦值
- 函數和方法的注釋
- 項目規范
- 業務邏輯logic
- model模型
- 控制器
- view視圖
- 定制項目開發
- 接口輸出變量格式
- mysql設計規范
- 二維碼系列
- php 用phprqcode 生成簡單的二維碼
- 小程序二維碼
- 其他小工具
- 獲取單個漢字拼音首字母
- js 調起打印多出一張空白的問題?
- php 2張圖片合拼
- 判斷一個漢字可以等于1個字符,2個字符,3個字符
- 微信小程序獲取頁面路徑
- 小程序js、canvas實現矩形圓角、圓形頭像圖片
- php phpMailer 發送郵件(親測有效)
- 系統配置表
- php 用tcpdf 生成pdf
- PHP mkdir():創建目錄
- php 通過svg動態生成生成后綴圖標
- php 本地安裝SSL證書
- php 生成首字母頭像
- php 接口數據壓縮返回,減少帶寬
- PHP向二維數組多維數組追加相同元素
- php 指定時間戳上加上一天,一個月,一年的方法
- Spreadsheet 表格生成
- php 多維數組排序 多維數組按照某個字段排序
- php根據開始和結束時間獲取期間日期
- php 獲取本周、上周、本月、上月及指定時間所在周、月的起止時間
- php GeoIP2通過ip獲取國家和地區城市
- 奇葩報錯問題
- session賦值報錯
- 服務器配置lnmp
- 開啟mysql binglog 日志
- lnmp 開啟遠程訪問3306
- 開啟mysql 慢日志查詢
- 開通Liunx 3306 端口(遠程連接開放)
- 搭建lnmp
- liunx 多臺服務器搭建共享文件夾圖片文件夾
- liunx 操作命令1
- nginx專區
- 禁止外部ip訪問
- 強制跳轉到https
- mysql專區
- 版本5.7報錯 only_full_group_by
- 把同一張表的一個字段的內容復制到另一個字段里
- lnmp關閉嚴格模式
- mysql 兩張不同結構的表連表查詢,合并,并分頁,排序 教你如何實現UNION
- mysql 查詢一張表中某個字段不同狀態的數量統計
- mysql數據庫快速插入百萬條級別的測試數據
- MySQL EXPLAIN 詳解,可用EXPLAIN來分析優化數據庫sql語句
- mysql 三星索引
- mysql 返回數據排名查詢獲取排名的方法,親測有效
- mysql使用查詢出來的值并且更新update新的表報錯?叫你一招
- mysql 怎樣自定義in查詢操作排序
- mysql 百萬級別和千萬級數據分頁查詢性能優化
- mysql 查詢某個字段按照逗號分割返回
- mysql 用sql命令導入數據庫
- mysql 根據某個字段的值匹配替換某個值
- Mysql中分組后取最新的一條數據排序
- Certbot-免費的https證書
- session_start()報錯問題
- 文件大打不開?代碼實現分割
- windows服務器專區
- apache 突然重啟動不了
- windows 定時任務
- liunx專區
- liunx 定時器檢查php是否能訪問,重啟
- liunx 操作命令
- 定時器 tp5 命令行
- liunx查看端口是否開放
- liunx上傳或者下載本地文件
- 前端
- jq克隆html
- Jquery添加元素(append,prepend,after,before四種方法區別對比)
- 小程序switch樣式修改
- css div 里面模塊 平均展開
- 安全小學堂
- 驗證碼一次一碼
- 實戰thinkphp6
- 前言
- 中間件
- 開啟多語言
- RabbitMQ 專區
- 下載RabbitMQ
- ftp專區
- Linux安裝vsftpd及配置詳解
- 小程序欄目
- 微信小程序封裝統一接口請求api數據
- 云數據庫
- 小程序云開發更新云函數數組的某一項,并且某個是變量代替
- php面試總結
- Mysql面試
- PHP面試知識
- Thinkphp框架小知識
- fastadmin 文檔
- fastadmin js 渲染 動態下拉(SelectPage)組件
- fastadmin 列表搜索欄 支持三級聯動 地區選項
- fastadmin searchList組件自定義數據返回
- 開發工具
- phpstorm 一直在Indexing,一直加載索引,無法正常使用
- PHP專區
- session 工作流程
- Redis
- php redis 基本操作
- SourceTree 3.3.9跳過注冊安裝
- composer 專區
- 手把手教你寫一個composer包
- freessl證書申請