everlutionsk / mandrill-bundle
Everlution 为 Symfony 框架提供的 mandrill-bundle
v1.3.0
2019-01-04 10:11 UTC
Requires
- php: >=5.4.0
- everlutionsk/email-bundle-2: 1.3.*
- mandrill/mandrill: 1.0.*
- symfony/config: >=2.5|>=3.0|>=4.0
- symfony/dependency-injection: >=2.5|>=3.0|>=4.0
- symfony/http-kernel: >=2.5|>=3.0|>=4.0
README
此 Symfony 扩展提供 邮件系统 和 请求处理器,用于 Email Bundle。Bundle 使用 Mandrill 交易性邮件平台。
安装
composer require everlutionsk/mandrill-bundle
启用扩展
// app/AppKernel.php public function registerBundles() { return array( // ... new Everlution\MandrillBundle\EverlutionMandrillBundle() ); }
配置扩展
以下配置片段描述了如何配置扩展。
首先,您必须修改 EmailBundle 的配置以与 MandrillBundle 的服务一起工作。
# app/config/config.yml # EmailBundle Configuration everlution_email: mail_system: everlution.mandrill.mail_system request_processors: inbound: everlution.mandrill.inbound.request_processor outbound_message_event: everlution.mandrill.outbound.message_event.request_processor
其次,您必须配置 MandrillBundle 本身
# app/config/config.yml # MandrillBundle Configuration everlution_mandrill: api_key: SECRET_API_KEY async_mandrill_sending: true enforced_delivery_address: EMAIL_ADDRESS|NULL
async_mandrill_sending - 如果为真,则 Mandrill 使用优化的批量发送的后台发送模式。在异步模式下,Mandrill 将立即为每条消息返回“排队”状态。这是一个推荐设置,因为该扩展能够稍后自动处理消息事件,这些事件描述了消息状态。
enforced_delivery_address - [可选] 将用于覆盖每条出站消息的收件人地址的电子邮件地址。更改是完全透明的,数据库中存储的数据不会受到此转换的影响。警告:由于 Mandrill API 的限制,邮件系统 ID 可能会与错误的收件人相关联。这种限制可能导致“出站消息事件”处理不正确。
使用方法
消息转换器
邮件系统 服务由该扩展将 OutboundMessage 转换为 JSON,然后将此 JSON POST 到 Mandrill API。然而,在将其发送到 Mandrill 之前,可以修改此 JSON。为此,您必须创建一个实现 RawMessageTransformer 接口 的服务,并添加以下标签
everlution.mandrill.outbound.raw_message_transformer
待办事项
- 请求签名计算
- Webhook 密钥配置