- FuelPHP 教程
- FuelPHP - 首頁
- FuelPHP - 簡介
- FuelPHP - 安裝
- FuelPHP - 架構概述
- FuelPHP - 簡單 Web 應用
- FuelPHP - 配置
- FuelPHP - 控制器
- FuelPHP - 路由
- FuelPHP - 請求 & 響應
- FuelPHP - 檢視
- FuelPHP - 展示器
- FuelPHP - 模型 & 資料庫
- FuelPHP - 表單程式設計
- FuelPHP - 驗證
- 高階表單程式設計
- FuelPHP - 檔案上傳
- FuelPHP - Ajax
- FuelPHP - HMVC 請求
- FuelPHP - 主題
- FuelPHP - 模組
- FuelPHP - 包
- Cookie & 會話管理
- FuelPHP - 事件
- FuelPHP - 郵件管理
- FuelPHP - 效能分析器
- 錯誤處理 & 除錯
- FuelPHP - 單元測試
- 完整的執行示例
- FuelPHP 有用資源
- FuelPHP - 快速指南
- FuelPHP - 有用資源
- FuelPHP - 討論
FuelPHP - 郵件管理
郵件功能是 Web 框架中最常被請求的功能。FuelPHP 提供了一個優雅的郵件類,作為包捆綁在一起。它用於傳送簡單的純文字郵件以及帶有多個附件的高階富文字郵件。它支援以下功能 - 純文字郵件、HTML 郵件、附件和內聯附件。
配置
要在應用程式中啟用郵件功能,我們只需要載入如下所示的主配置檔案 fuel/app/config/config.php 中指定的郵件包。
'always_load' => array (
'packages' => array (
'email',
),
),
另一種選擇是載入郵件包,控制器本身如下所示。
\Package::load('email');
郵件設定可以在主配置檔案中完成,一些重要的選項如下所示:
driver - 郵件驅動程式,例如 smtp
is_html - 是否以 HTML 內容傳送郵件
priority - 郵件的優先順序
smtp.host - SMTP 伺服器主機
smtp.port - SMTP 伺服器埠
smtp.username - SMTP 伺服器使用者名稱
smtp.password - SMTP 伺服器密碼
smtp.timeout - SMTP 超時時間
smtp.starttls - SMTP 伺服器是否需要 STARTTLS 命令
郵件 API
以下是郵件和郵件驅動程式類提供的 API。
forge
用途:建立郵件驅動程式的例項。它根據接收到的配置或輸入建立驅動程式。郵件驅動程式提供建立和傳送郵件的功能。一些可能的郵件驅動程式是 smtp、sendmail、mailgun 和 mandrill。
引數 - 無或配置詳細資訊陣列
返回值 - 返回 Email_Driver 物件
例如:
$email = \Email::forge(); $email = \Email::forge (array( 'driver' => 'smtp', ));
body
用途 - 設定訊息正文
引數 - $body - 訊息正文
返回值 - 返回當前例項
例如:
$email = \Email::forge();
$email->body('Body message');
//or pass it a View
$email->body(\View::forge('my/view', $data);
alt_body
用途 - 設定備用訊息正文
引數 - $alt_body - 備用訊息正文
返回值 - 返回當前例項
例如:
$email = \Email::forge();
$email->alt_body('Body message');
//or pass it a View
$email->alt_body(\View::forge('my/view', $data);
priority
用途 - 設定郵件的優先順序
引數 -
$priority - 優先順序的值。選項包括 -
a. \Email::P_LOWEST * \Email::P_LOW * \Email::P_NORMAL * \Email::P_HIGH * \Email::P_HIGHEST
返回值 - 返回當前例項
例如:
$email = \Email::forge(); $email->priority(\Email::P_HIGHEST);
html_body
用途 - 以 HTML 格式設定訊息正文
引數 -
$html - HTML 中的訊息正文;
generate_alt - 是否生成備用訊息;
auto_attach - 是否嵌入影像
返回值 - 返回當前例項
例如:
$email = \Email::forge();
// Do generate the alt body, but don't auto attach images.
$email->html_body(\View::forge('welcome/email', $data), true, false);
from
用途 - 設定發件人地址
引數 -
$from - 發件人電子郵件地址;
$name - 發件人姓名
返回值 - 返回當前例項
例如:
$email = \Email::forge();
$email->from('test@test.com', 'My Name');
subject
用途 - 設定郵件主題
引數 - $subject - 郵件主題
返回值 - 返回當前例項
例如:
$email = \Email::forge();
$email->subject('Suject of the mail message');
to
用途 - 設定收件人電子郵件地址
引數 -
$email - 電子郵件地址或電子郵件地址陣列;
$name - 收件人姓名
返回值 - 返回當前例項
例如:
$email = \Email::forge();
$email->to('test@test.com', 'My Dear Name');
$email->to (array(
'test@test.com',
'test@test.com' => 'My Dear friend',
));
header
用途 - 設定郵件的自定義頭部
引數 -
$header - 頭部型別或頭部陣列;
$value - 頭部的值
返回值 - 返回當前例項
例如:
$email = \Email::forge();
$email->header('X-SMTPAP', 'XXXXXXXX');
$email>reply_to (array(
'X-SMTPAP' => 'XXXXXX',
'X-SMTPAP2' > 'XXXXXA',
));
attach
用途 - 將檔案附加到郵件
引數 -
$file - 檔案路徑;
$inline - 是否內聯附加檔案;
$cid - 內容識別符號;
$mime - 附件檔案的 MIME 型別;
$name - 附件檔名覆蓋
返回值 - 返回當前例項
例如:
$email = \Email::forge(); $email>attach(DOCROOT.'attachments/sample_attachment.pdf');
send
用途 - 傳送郵件。
引數 -
$validate - 是否驗證電子郵件地址
返回值 - true 或 false
例如:
$email = \Email::forge();
try{
$email->send();
} catch(\EmailSendingFailedException $e) {
// The driver could not send the mail.
} catch(\EmailValidationFailedException $e) {
// One or more email addresses failed validation.
}
郵件示例
讓我們使用上一章中學習的 API,並建立一個簡單的程式碼來發送訊息。以下是傳送訊息的最簡單程式碼。
$email = Email::forge();
$email->from('someone@gmail.com', 'person1');
$email->to('anotherone@gmail.com', 'person2');
$email->subject('Add something');
$email->body('contents of mail'); $email->send();