martijngastkemper/swiftmailer-transport-aws-ses

为 Swiftmailer 添加 AWS SES 支持

0.9.2 2014-11-12 23:51 UTC

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