martijngastkemper / swiftmailer-transport-aws-ses
为 Swiftmailer 添加 AWS SES 支持
0.9.2
2014-11-12 23:51 UTC
Requires
- php: >=5.2.0
- swiftmailer/swiftmailer: >=4.0.0
This package is not auto-updated.
Last update: 2024-09-28 17:12:33 UTC
README
这是一个用于通过 AWS SES 发送邮件的 Swiftmailer 简单传输工具。
截至 2011 年 12 月,Amazon 为 SES 提供了 SMTP 接口,因此您可能更愿意使用 Swiftmailer 内置的 SMTP 传输。
我应该把它放在哪里?
任何您想要的地方,只要确保将其包含在您的代码中。
否则,如果您将文件放在这个目录中,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);
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