## 依賴類庫
[PHPMailer](https://github.com/Synchro/PHPMailer)
## 效果



## 實現
具體見 隨書項目yang_book/examples/startup/EmailController.class.php
~~~
//發送郵件
public function send(){
if(IS_POST){
try {
$to = I('to', '917647288@qq');
$title = I('title', '測試郵件');
$content = I('content', '<p>測試內容</p>');
//老楊寫自己的,你們測換成自己的 別騷擾老樣
$this->sendMail($to, $title, $content);
//為了成功之后不會后退回這個頁面導致重復發郵件
$this->success('發送測試郵件成功');
} catch (Exception $e) {
$this->success($e->getMessage());
}
}else{
$this->display();
}
}
/**
* 郵件發送函數
*/
public function sendMail($to, $title, $content) {
Vendor('PHPMailer.PHPMailerAutoload');
$mail = new \PHPMailer(); //實例化
$mail->IsSMTP(); // 啟用SMTP
$mail->Host = C('MAIL_HOST'); //smtp服務器的名稱(這里以QQ郵箱為例)
$mail->SMTPAuth = C('MAIL_SMTPAUTH'); //啟用smtp認證
$mail->Username = C('MAIL_USERNAME'); //你的郵箱名
$mail->Password = C('MAIL_PASSWORD') ; //郵箱密碼
$mail->From = C('MAIL_FROM'); //發件人地址(也就是你的郵箱地址)
$mail->FromName = C('MAIL_FROMNAME'); //發件人姓名
$mail->AddAddress($to, "尊敬的客戶");
$mail->WordWrap = 50; //設置每行字符長度
$mail->IsHTML(C('MAIL_ISHTML')); // 是否HTML格式郵件
$mail->CharSet = C('MAIL_CHARSET'); //設置郵件編碼
$mail->Subject = $title; //郵件主題
$mail->Body = $content; //郵件內容
$mail->AltBody = "這是一個純文本的身體在非營利的HTML電子郵件客戶端"; //郵件正文不支持HTML的備用顯示
return $mail->Send();
}
~~~
主要是send 時要配置對:
我這里的配置:
~~~
'MAIL_HOST' =>'smtp.126.com',//smtp服務器的名稱
'MAIL_SMTPAUTH' =>TRUE, //啟用smtp認證
'MAIL_USERNAME' =>'geekcompany@126.com',//你的郵箱名
'MAIL_FROM' =>'geekcompany@126.com',//發件人地址
'MAIL_FROMNAME'=>'老楊帶你學ThinkPHP',//發件人姓名
'MAIL_PASSWORD' =>'justjobdeer',//郵箱密碼
'MAIL_CHARSET' =>'utf-8',//設置郵件編碼
'MAIL_ISHTML' =>TRUE, // 是否HTML格式郵件
~~~
上面的大家換成自己的
大家可以使用qq或者126 126的穩定一些。
## 注意
phpmail的報錯是拋異常,所以老楊用try catch去處理發的那一步。
我們用第三方類庫時要弄清第三方php庫出錯的情況 是返回錯誤狀態和信息還是拋異常。寫好對應代碼別讓第三方出錯頁面信息顯示給用戶看。
- 序
- 前言
- 內容簡介
- 目錄
- 基礎知識
- 起步
- 控制器
- 模型
- 模板
- 命名空間
- 進階知識
- 路由
- 配置
- 緩存
- 權限
- 擴展
- 國際化
- 安全
- 單元測試
- 拿來主義
- 調試方法
- 調試的步驟
- 調試工具
- 顯示trace信息
- 開啟調試和關閉調試的區別
- netbeans+xdebug
- Socketlog
- PHP常見錯誤
- 小黃鴨調試法,每個程序員都要知道的
- 應用場景
- 第三方登錄
- 圖片處理
- 博客
- SAE
- REST實踐
- Cli
- ajax分頁
- barcode條形碼
- excel
- 發郵件
- 漢字轉全拼和首字母,支持帶聲調
- 中文分詞
- 瀏覽器useragent解析
- freelog項目實戰
- 需求分析
- 數據庫設計
- 編碼實踐
- 前端實現
- rest接口
- 文章發布
- 文件上傳
- 視頻播放
- 音樂播放
- 圖片幻燈片展示
- 注冊和登錄
- 個人資料更新
- 第三方登錄的使用
- 后臺
- 微信的開發
- 首頁及個人主頁
- 列表
- 歸檔
- 搜索
- 分頁
- 總結經驗
- 自我提升
- 進行小項目的鍛煉
- 對現有輪子的重構和移植
- 寫技術博客
- 制作視頻教程
- 學習PHP的知識和新特性
- 和同行直接溝通、交流
- 學好英語,走向國際
- 如何參與
- 瀏覽官網和極思維還有看云
- 回答ThinkPHP新手的問題
- 嘗試發現ThinkPHP的bug,告訴官方人員或者push request
- 開發能提高效率的ThinkPHP工具
- 嘗試翻譯官方文檔
- 幫新手入門
- 創造基于ThinkPHP的產品,進行連帶推廣
- 展望未來
- OneThink
- ThinkPHP4
- 附錄