电子邮件管理(Email Management)
电子邮件功能是Web框架中最受欢迎的功能。 FuelPHP提供了一个优雅的电子邮件类捆绑为一个包。 它用于发送简单的纯文本电子邮件以及带有多个附件的高级富文本电子邮件。 它支持以下功能 - 纯文本邮件,HTML邮件,附件和内联附件。
配置 (Configuration)
要在应用程序中启用电子邮件功能,我们需要在主配置文件fuel/app/config/config.php中按照以下指定加载电子邮件包。
'always_load' => array (
'packages' => array (
'email',
),
),
另一种选择是加载电子邮件包,控制器本身如下。
\Package::load('email');
电子邮件设置可以在主配置文件中完成,一些重要选项如下,
driver - 电子邮件驱动程序,如smtp
is_html - 是否以HTML内容的形式发送邮件
priority - 电子邮件的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,和smtp, sendmail, mailgun, 。
Parameter - 无或配置详细信息数组
Returns - 返回Email_Driver对象
例如,
$email = \Email::forge();
$email = \Email::forge (array(
'driver' => 'smtp',
));
body
Purpose - 设置邮件正文
Parameter - $ body - 消息体
Returns - 返回当前实例
例如,
$email = \Email::forge();
$email->body('Body message');
//or pass it a View
$email->body(\View::forge('my/view', $data);
alt_body
Purpose - 设置备用邮件正文
Parameter - $ alt_body - 备用邮件正文
Returns - 返回当前实例
例如,
$email = \Email::forge();
$email->alt_body('Body message');
//or pass it a View
$email->alt_body(\View::forge('my/view', $data);
priority
Purpose - 设置邮件的优先级
Parameter -
$priority - $priority值。 选项是 -
a. \Email::P_LOWEST
* \Email::P_LOW
* \Email::P_NORMAL
* \Email::P_HIGH
* \Email::P_HIGHEST
Returns - 返回当前实例
例如,
$email = \Email::forge();
$email->priority(\Email::P_HIGHEST);
html_body
Purpose - 以HTML格式设置邮件正文
Parameter -
$html - HTML中的邮件正文;
generate_alt - 是否生成替代消息;
auto_attach - 是否嵌入图像
Returns - 返回当前实例
例如,
$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
Purpose - 设置Purpose地址
Parameters -
$from - 来自电子邮件地址;
$name - 发件人的姓名
Returns - 返回当前实例
例如,
$email = \Email::forge();
$email->from('test@test.com', 'My Name');
subject
Purpose - 设置消息的主题
Parameter - $ subject - 电子邮件的主题
Returns - 返回当前实例
例如,
$email = \Email::forge();
$email->subject('Suject of the mail message');
to
Purpose - 设置接收方电子邮件地址
Parameters -
$email - 电子邮件地址或电子邮件地址数组;
$name - 收件人姓名
Returns - 返回当前实例
例如,
$email = \Email::forge();
$email->to('test@test.com', 'My Dear Name');
$email->to (array(
'test@test.com',
'test@test.com' => 'My Dear friend',
));
header
Purpose - 将自定义标头设置为电子邮件
Parameters -
$header - 标头类型或$header头数组;
$value - 标头的值
Returns - 返回当前实例
例如,
$email = \Email::forge();
$email->header('X-SMTPAP', 'XXXXXXXX');
$email>reply_to (array(
'X-SMTPAP' => 'XXXXXX',
'X-SMTPAP2' > 'XXXXXA',
));
attach
Purpose - 将文件附加到电子邮件中
Parameters -
$file - 文件路径;
$inline - 是否$inline文件;
$cid - 内容标识符;
$mime - 附件文件的MIME类型;
$name - 附件文件名覆盖
Returns - 返回当前实例
例如,
$email = \Email::forge();
$email>attach(DOCROOT.'attachments/sample_attachment.pdf');
send
Purpose - 发送邮件。
Parameter -
$validate - 是否验证电子邮件地址
Returns - 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();