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

// 生成 alt 正文,但不自动附加图像。
$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('邮件主题');

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) { 
    // 驱动程序无法发送邮件。

} catch(\EmailValidationFailedException $e) {
    // 一个或多个电子邮件地址验证失败。
}

工作电子邮件示例

让我们使用上一章中学到的 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();