- FuelPHP 教程
- FuelPHP - 首页
- FuelPHP - 简介
- FuelPHP - 安装
- FuelPHP - 架构概述
- FuelPHP - 简单 Web 应用
- FuelPHP - 配置
- FuelPHP - 控制器
- FuelPHP - 路由
- FuelPHP - 请求 & 响应
- FuelPHP - 视图
- FuelPHP - 展示器
- FuelPHP - 模型 & 数据库
- FuelPHP - 表单编程
- FuelPHP - 验证
- 高级表单编程
- FuelPHP - 文件上传
- FuelPHP - Ajax
- FuelPHP - HMVC 请求
- FuelPHP - 主题
- FuelPHP - 模块
- FuelPHP - 包
- Cookie & 会话管理
- FuelPHP - 事件
- FuelPHP - 邮件管理
- FuelPHP - 性能分析器
- 错误处理 & 调试
- FuelPHP - 单元测试
- 完整的运行示例
- FuelPHP 有用资源
- FuelPHP - 快速指南
- FuelPHP - 有用资源
- FuelPHP - 讨论
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、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('[email protected]', 'My Name');
subject
用途 - 设置邮件主题
参数 - $subject - 邮件主题
返回值 - 返回当前实例
例如:
$email = \Email::forge(); $email->subject('Suject of the mail message');
to
用途 - 设置收件人电子邮件地址
参数 -
$email - 电子邮件地址或电子邮件地址数组;
$name - 收件人姓名
返回值 - 返回当前实例
例如:
$email = \Email::forge(); $email->to('[email protected]', 'My Dear Name'); $email->to (array( '[email protected]', '[email protected]' => '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) { // The driver could not send the mail. } catch(\EmailValidationFailedException $e) { // One or more email addresses failed validation. }
邮件示例
让我们使用上一章中学习的 API,并创建一个简单的代码来发送消息。以下是发送消息的最简单代码。
$email = Email::forge(); $email->from('[email protected]', 'person1'); $email->to('[email protected]', 'person2'); $email->subject('Add something'); $email->body('contents of mail'); $email->send();