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、mailgunmandrill

  • 引數 - 無或配置詳細資訊陣列

  • 返回值 - 返回 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(); 
廣告

© . All rights reserved.