jmhobbs/swiftmailer-transport-aws-ses

此包已被弃用且不再维护。作者建议使用 https://github.com/jmhobbs/Swiftmailer-Transport--AWS-SES/blob/master/SMTP.md 包。

为 Swiftmailer 添加 AWS SES 支持

1.2.0 2020-09-24 20:08 UTC

This package is auto-updated.

Last update: 2020-09-24 20:12:42 UTC


README

此包已过时,应迁移到 SMTP 接口。更多信息请参阅 SMTP.md

此包将不再进行功能开发,只会应用关键错误修复。

这是什么?

这是一个用于通过 AWS SES 发送邮件的 Swiftmailer 简单传输。

截至 2011 年 12 月,Amazon 为 SES 提供了 SMTP 接口,因此您可能更愿意使用 Swiftmailer 内置的 SMTP 传输。

我应该在何处放置它?

最佳使用方式是通过 composer

$ composer require jmhobbs/swiftmailer-transport-aws-ses

如果您还没有安装 Swiftmailer,这将带来 Swiftmailer。

否则,如果将文件放入此目录,Swift 可以自动加载它

[swift library root]/classes/Swift/AWSTransport.php

我该如何使用它?

就像使用任何其他 Swiftmailer 传输一样

//Create the Transport
$transport = Swift_AWSTransport::newInstance( 'AWS_ACCESS_KEY', 'AWS_SECRET_KEY' );

//Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

$mailer->send($message);

Swiftmailer <= 5.x

当前分支已更新以兼容 Swiftmailer 6。如果您需要旧分支,它位于 0.9.x 标签下,或者 swiftmailer-5.x 分支。

Symfony1.X 配置

```yaml
# app/frontend/config/factories.yml

all:
  mailer:
    class: sfMailer
    param:
      transport:
        class:          Swift_AWSTransport
        accessKeyId:    your-access-key
        secretKey:      Y0uR-$3cr3t5-k3y
        debug:          false
        endpoint:       'https://email.us-east-1.amazonaws.com/' # make sure to use trailing slash !
```

如何获取发送时的消息 ID?

您需要注册 Swift_Events_ResponseReceivedListener 插件并设置回调。详细信息请参阅示例文件 responseListener.php。

$transport->registerPlugin(
	new Swift_Events_ResponseReceivedListener( function ( $message, $body ) {
		echo sprintf( "Message-ID %s.\n", $body->SendRawEmailResult->MessageId );
	})
);

Swiftmailer 版本

请注意,一些用户 在 Swiftmailer 旧版本上遇到了问题

版本 4.1.3 及以上版本应正常工作。

致谢

  • @jmhobbs - 原始开发
  • @bertrandom - 错误修复
  • @themouette - 插件 & Symfony 兼容
  • @jonatrey & @faz - 调试和测试问题 #13
  • @casconed - 使调试函数更健壮,问题 #21
  • @martijngastkemper - 添加 responseReceived 事件以从 AWS 获取消息 ID
  • @weierophinney - Swiftmailer 6 支持