nikolaposa / np-mailer
ZF2 模块,简化了电子邮件消息的发送
Requires
- php: >=5.3.3
- zendframework/zend-filter: 2.2.*
- zendframework/zend-i18n: 2.2.*
- zendframework/zend-mail: 2.2.*
- zendframework/zend-mime: 2.2.*
- zendframework/zend-modulemanager: 2.2.*
- zendframework/zend-servicemanager: 2.2.*
- zendframework/zend-view: 2.2.*
Requires (Dev)
- zendframework/zend-cache: 2.2.*
- zendframework/zend-config: 2.2.*
- zendframework/zend-loader: 2.2.*
- zendframework/zend-log: 2.2.*
- zendframework/zend-mvc: 2.2.*
- zendframework/zend-serializer: 2.2.*
- zendframework/zend-stdlib: 2.2.*
README
NP_Mailer 是一个 ZF2 模块,简化并改进了电子邮件消息的发送。它提供了一组丰富的选项,用于执行邮件常规操作。
警告:此包不再维护
安装
首选的安装方法是使用 Composer。运行以下命令以安装最新版本的包并将其添加到项目的 composer.json
composer require nikolaposa/np-mailer
在您的 application.config.php
中启用模块
<?php return array( 'modules' => array( // ... 'NP_Mailer', ), // ... );
功能
- 发送 HTML 电子邮件
- 从 ViewModel 实例构建电子邮件
- 电子邮件布局
- 邮件配置
用法
邮件服务
NP_Mailer\Mailer
服务是该模块的核心,消费者在发送电子邮件消息时应与之交互。它以 NP_Mailer
服务名称提供。
配置
可以配置邮件服务以调整其功能。NP_Mailer\MailerFactory
是一个默认工厂,负责创建邮件实例,它了解邮件配置键,可以通过该键提供所有邮件选项。这些包括
transport
-Zend\Mail\Transport\TransportInterface
实例;默认使用Sendmail
传输。defaults
- 默认邮件消息参数(例如主题、收件人、发件人等)params_filters
- 应使用的一组参数过滤器。HtmlBodyBuilder
和Translator
是默认使用的。configs
- 邮件配置
参数过滤器
邮件服务有一个子组件——参数过滤器实现,它为预处理和调整某些邮件参数提供强大机制。
默认过滤器
NP_Mailer 默认提供一些常见用例的过滤器。
HtmlBodyBuilder (NP_Mailer\ParamsFilter\HtmlBodyBuilder
)
此过滤器确保 HTML 正文按正确的方式组装。它还能够在以 ViewModel 的形式提供时渲染 HTML 正文。
HtmlBodyBuilder 了解一些特定于此过滤器的自定义邮件参数。这些是
bodyHtml
- 如果提供,则用作邮件消息的 HTML 正文bodyText
- 如果与bodyHtml
一起提供,这两个将构成多部分消息正文viewModel
- 当提供时,消息的HTML正文将通过渲染此视图模型来形成viewTemplate
- 与viewModel
参数类似,但应该是模板的名称,其渲染的内容应用作消息正文
与视图特定参数(viewModel
和 viewTemplate
)相关,此过滤器提供了在分别与实际的 viewModel
和 viewTemplate
输出一起渲染某些布局模板的能力。这可以通过设置 HtmlBodyBuilder 的 layoutTemplate
选项来实现,该选项应该是用作邮件布局的模板的名称。
翻译器(NP_Mailer\ParamsFilter\Translator
)
能够翻译某些电子邮件消息字段的过滤器。可翻译的字段通过其 $translatableParams
属性和相应的设置方法进行配置。
邮件配置
邮件服务提供具有“准备发送”邮件配置的能力,这些配置预先配置了邮件消息参数(例如主题、收件人、发件人等),因此只有在提供某些配置的名称时才能触发邮件发送。
这些可以直接通过邮件服务的API(addConfig(s)
方法)或通过配置 - configs
选项来提供。此类配置的示例可能如下所示
<?php return array( // ... 'mailer' => array( // ... 'configs' => array( 'foo' => array( 'subject' => 'Foobar', 'from' => 'foo@bar.com', ), 'test' => array( 'to' => 'test123@example.com', 'from' => 'test@example.com', ) ) // ... ), // ... );
在此示例中,指定了两个邮件配置,一个命名为 foo
,另一个命名为 test
。
用法
发送基本邮件
$mailer->send(array( 'to' => 'test@example.com', 'subject' => 'Test', 'body' => 'Hello world!', ));
发送HTML电子邮件
$mailer->send(array( 'to' => 'test@example.com', 'subject' => 'Test', 'bodyHtml' => '<html><body><p>Hello world!</p></body></html>', ));
从ViewModel发送HTML邮件
$viewModel = new \Zend\View\Model\ViewModel(array( 'foo' => 'bar', 'baz' => 'bat', )); $viewModel->setTemplate('template/name'); $mailer->send(array( 'to' => 'test@example.com', 'subject' => 'Test', 'viewModel' => $viewModel, ));
发送配置的邮件
$mailer->send(array( 'bodyHtml' => '<html><body><p>Hello world!</p></body></html>', ), 'someMailiingConfigurationName');