FuelPHP 電子郵件管理
fuelphp 電子郵件管理
電子郵件功能是 web 框架中最受歡迎的功能。 fuelphp 提供了一個優(yōu)雅的電子郵件類,捆綁為一個包。它用于發(fā)送簡單的純文本電子郵件以及帶有多個附件的高級富文本電子郵件。它支持以下功能-純文本郵件、html 郵件、附件和內嵌附件。
配置
要在應用程序中啟用電子郵件功能,我們只需在主配置文件 fuel/app/config/config.php 中加載如下指定的電子郵件包。
'always_load' => array ( 'packages' => array ( 'email', ), ),
另一個選項是加載電子郵件包,控制器本身如下。
\package::load('email');
郵箱設置可以在主配置文件中完成,一些重要的選項如下,
- driver-電子郵件驅動程序,例如 smtp
- is_html-是否為 s是否將郵件作為 html 內容結束
- priority-電子郵件的優(yōu)先級
- smtp.host-smtp 服務器主機
- smtp.port-smtp 服務器端口
- smtp.username-smtp 服務器用戶名
- smtp.password-smtp 服務器密碼
- smtp.timeout-smtp 超時
- smtp.starttls-smtp 服務器是否需要 starttls 命令
電子郵件 api
以下是電子郵件和電子郵件驅動程序類提供的 api。
forge
目的:創(chuàng)建電子郵件驅動程序的實例。它根據收到的配置或輸入創(chuàng)建驅動程序。電子郵件驅動程序提供創(chuàng)建和發(fā)送郵件的功能。一些可能的電子郵件驅動程序是 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
- 目的-設置郵件的優(yōu)先級
- 參數-
- $priority-優(yōu)先級的值。選項是-
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
- 目的-設置發(fā)件人地址
- 參數-
- $from-來自電子郵件地址;
- $name-發(fā)件人姓名
- 返回-返回當前實例
例如
$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-是否內聯(lián)附加文件;
- $cid-內容標識符;
- $mime-附件的 mime 類型;
- $name-附件文件名覆蓋
- 返回-返回當前實例
例如
$email = \email::forge(); $email>attach(docroot.'attachments/sample_attachment.pdf');
send
- 目的-發(fā)送郵件。
- 參數-
- $validate-是否驗證電子郵件地址
- 返回-真或假
例如
$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,創(chuàng)建一個簡單的代碼來發(fā)送消息。以下是發(fā)送消息的最簡單代碼。
$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();