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
Requires
- php: ^7.0
- aws/aws-sdk-php: ^3.2.1
- swiftmailer/swiftmailer: ^6.0
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 支持