FuelPHP 电子邮件管理

 

电子邮件功能是 Web 框架中最受欢迎的功能。 FuelPHP 提供了一个优雅的电子邮件类,捆绑为一个包。它用于发送简单的纯文本电子邮件以及带有多个附件的高级富文本电子邮件。它支持以下功能-纯文本邮件、HTML 邮件、附件和内嵌附件。

 

配置

要在应用程序中启用电子邮件功能,我们只需在主配置文件 Fuel/app/config/config.php 中加载如下指定的电子邮件包。

'always_load' => array ( 
   'packages' => array ( 
      'email', 
   ), 
),

另一个选项是加载电子邮件包,控制器本身如下。

\Package::load('email');

邮箱设置可以在主配置文件中完成,一些重要的选项如下,

  • driver-电子邮件驱动程序,例如 smtp
  • is_html-是否为 s是否将邮件作为 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-是否验证电子邮件地址
  • 返回-真或假

例如

$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(); 

 Profiler 是分析和改进应用程序性能的重要工具之一。 FuelPHP 提供了一个出色的分析器来分析应用程序。让我们在本章中了解 FuelPHP 中的配置文件。 启用分析默认情况下禁用分析。 ...