📅  最后修改于: 2020-10-25 04:29:50             🧑  作者: Mango
电子邮件功能是Web框架中最需要的功能。 FuelPHP提供了一个优雅的电子邮件类,打包在一起。它用于发送简单的纯文本电子邮件以及带有多个附件的高级RTF电子邮件。它支持以下功能-纯文本邮件,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。
目的:创建电子邮件驱动程序的实例。它根据收到的配置或输入创建驱动程序。电子邮件驱动程序提供了用于创建和发送邮件的功能。一些可能的电子邮件驱动器是SMTP,sendmail的,mailgun和山魈。
参数-无或配置详细信息数组
返回-返回Email_Driver对象
例如,
$email = \Email::forge();
$email = \Email::forge (array(
'driver' => 'smtp',
));
目的-设置消息正文
参数-$ body-消息正文
返回-返回当前实例
例如,
$email = \Email::forge();
$email->body('Body message');
//or pass it a View
$email->body(\View::forge('my/view', $data);
目的-设置备用消息正文
参数-$ 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格式设置消息正文
参数–
$ 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-电子邮件的主题
返回-返回当前实例
例如,
$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-是否验证电子邮件地址
返回-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();