背景
web 開發過程中,經常會用到郵件的發送功能,比如接收消費賬單的提醒、亞馬遜圖書推薦的推送,或者網站不正常操作報警的郵件提示等。
下面是一個在ThinkPHP 3.2.3 框架下集成 PHPMailer 使用的郵件發送功能實現過程,僅供參考,謝謝...
一、前期準備
1).首先對 STMP 的知識稍作了解
STMP 簡介 《百度百科》
2).開啟郵箱 STMP 服務
- 以 163.com 郵箱為例,點擊上方導航欄的“設置”,選擇“POP3/SMTP/IMAP”進行下面的設置
- 著重記下服務器地址(SMTP服務器:smtp.163.com)
- 然后點擊“客戶端授權密碼”進行權限設置,一般會進行短信的驗證,并記錄下自己設定的授權登錄密碼,后面的代碼中需要用到。
二、代碼實現
1).在公共配置文件中,進行數據配置
//郵件發送 配置
'EMAIL_CONFIG' => array(
'host' => 'smtp.163.com',
'post' => '25',
'username' => 'xxxxxxxxxx@163.com',//TODO 郵箱賬號
'password' => 'xxxxxxx',//TODO 客戶端授權密碼
'sender' => '木頭人',//TODO 發送人昵稱
),
2).Email 核心代碼如下
- 注意 phpmailer 代碼包所放的位置,以便后面的 Email 類的實例化
- 此處代碼主要是調用配置文件數據,無需變動,需要深入學習的可以自行閱讀.
3).設計前端顯示界面
- 路徑:./Application/M/Vieww/Email/index.html
- 核心 js 代碼如下:
function send() {
var toUrl = "{:U('Email/send')}";
var postData = $("#form-email").serialize();
$.ajax({
type: "POST",
url: toUrl,
data: postData,
dataType: "json",
success: function (res) {
layer.msg(res.message);
}
});
}
4).后臺代碼
- 路徑:‘.\Application\M\Controller\EmailController.class.php’
- 調用郵件發送功能的核心代碼為下圖中紅色框內三行。
三、功能實現效果
1).前端信息輸入
- 注意:郵箱輸入錯誤或者內容填寫太過隨意,會造成發送失敗,郵件可在發送者郵箱看到,提示“抱歉,您的郵件被退回來了...”。
郵件發送前端顯示
2).接收郵箱的成功接收
- 如果操作正常,上面輸入的郵箱中會接收到對應的郵件,但是有的可能會在自己的“垃圾箱”中,注意查收.
成功進行郵件接收
三、附錄
1).參考視頻
2).源代碼下載