在没有官方PHP SDK的情况下使用AWS SES

问题描述

我正在探索AWS Simple Email Service(SES),我想发送电子邮件,也许要检查某个域是否经过验证,但是不使用官方的PHP SDK。

为什么?因为我认为对于一个简单的请求而言,在vendor文件夹中添加了太多代码

但是,这似乎并不简单。请注意,我正在使用us-east-1区域。

这是示例代码

$response = Http::withBasicAuth('foo','bar')
    ->post('https://email.us-east-1.amazonaws.com');

$response->throw();

这是有关Guzzle的Laravel包装的摘要,但是最终的实现在这里并不是那么重要。我在说更多关于理论方面的问题。当然,代码不起作用。它实际上给了我200状态代码,这看起来很奇怪,因为它应该给我一个验证错误或授权错误

我注意到AWS SES要求在请求中加上某种签名,而且我不确定它使用哪种身份验证方法

有人知道如何实现吗?

谢谢!

解决方法

如果您使用SES提供的SMTP选项而不是默认/原始SES选项,则根本不需要使用AWS开发工具包-实际上,它只是您已在使用的任何SMTP服务器的直接替代品-应该就像更改配置一样简单。

https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html