everlutionsk/mandrill-bundle

Everlution 为 Symfony 框架提供的 mandrill-bundle

安装次数: 3,590

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 9

分支: 2

公开问题: 0

类型:everlution-bundle

v1.3.0 2019-01-04 10:11 UTC

This package is auto-updated.

Last update: 2024-09-04 22:24:39 UTC


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 密钥配置