FuelPHP - 电子邮件管理

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

配置

在应用程序中启用电子邮件功能,我们需要在主配置文件中加载电子邮件包,如下所示:fuel/app/config/config.php.

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

另一种选择是加载电子邮件包,控制器本身如下.

\Package::load('email');

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

  • 驱动程序 : 电子邮件驱动程序,例如smtp

  • is_html : 是否以HTML内容形式发送邮件

  • 优先级 : 电子邮件的优先级

  • smtp.host :  SMTP服务器主机

  • smtp.port :  SMTP服务器端口

  • smtp.username :  SMTP服务器用户名

  • smtp.password :  SMTP服务器密码

  • smtp.timeout :  SMTP超时

  • smtp.starttls :  SMTP服务器是否需要STARTTLS命令

电子邮件API

以下是由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 : 优先级的值.选项为 :

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 : 来自电子邮件地址;

    • $ name : 发件人姓名

  • 退货 : 返回当前实例

例如,

$email = \Email::forge(); 
$email->from('test@test.com', 'My Name');

subject

  • 目的 : 设置信息的主题

  • 参数 :  $ subject  - 电子邮件的主题

  • 返回 : 返回当前实例

例如,

$email = \Email::forge(); 
$email->subject('Suject of the mail message');

  • 目的 : 设置接收方电子邮件地址

  • 参数 :

    • $ 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 : 标题类型或标题数组;

    • $ value : 标题的值

  • 返回 : 返回当前实例

例如,

$email = \Email::forge(); 
$email->header('X-SMTPAP', 'XXXXXXXX'); 
$email>reply_to (array( 
   'X-SMTPAP'  => 'XXXXXX', 
   'X-SMTPAP2' > 'XXXXXA',
));

附加

  • 目的 : 将文件附加到电子邮件

  • 参数 :

    • $ file : 文件路径;

    • $ inline : 是否内联文件;

    • $ cid : 内容标识符;

    • $ mime : 附件文件的MIME类型;

    • $ name : 附件文件名覆盖

  • 返回 : 返回当前实例

例如,

$email = \Email::forge();
$email>attach(DOCROOT.'attachments/sample_attachment.pdf');

发送

  • 目的 : 发送邮件.

  • 参数 :

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