使用 Laravel 通过 amazon ses 发送邮件

Send mail via amazon ses with Laravel

我尝试通过 Laravel 使用亚马逊 SES 从自定义发件人地址发送邮件。当我尝试发送它时,出现此错误:

exception 'Aws\Ses\Exception\SesException' with message 'Error executing "SendRawEmail" on "https://email.us-east-1.amazonaws.com"; AWS HTTP error: Client error: POST https://email.us-east-1.amazonaws.com resulted in a 400 Bad Request response:

<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/"> <Error> <Type>Sender</Type> <Code>MessageReje (truncated...) MessageRejected (client): Email address is not verified. The following identities failed the check in region US-EAST-1: =?utf-8?Q?Rapha=C3=ABl?= XXXXX <XXXXX@XXXXX.com>, XXXXX@XXXXX.com - <ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/"> <Error> <Type>Sender</Type> <Code>MessageRejected</Code> <Message>Email address is not verified. The following identities failed the check in region US-EAST-1: =?utf-8?Q?Rapha=C3=ABl?= XXXXX <raphaelht@gmail.com>, XXXXX@XXXXX.com</Message> </Error> <RequestId>ee2403e6-07d7-11e7-83bf-69ca6c084a61 </ErrorResponse>

看来我的发件人邮件地址不被接受。另一方面,一个使用 Zend Framework 构建的应用程序(我没有构建它)具有相同的亚马逊帐户适用于相同的发件人地址。

我认为需要做一些事情来接受 "random" 发件人地址(它适用于 Zend 之一)。在Zend应用的配置中,SES多了一个信息:

'arn' => array(
    'emails' => 'arn:aws:sns:us-east-1:xxxxxxxxx:Emails'
),

是这条线使它起作用吗?我怎样才能用 Laravel 做同样的事情?

您只能在验证电子邮件地址(发件人字段中的电子邮件)后才能发送电子邮件。这是一种反垃圾邮件/反网络钓鱼措施。

http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html

如果您有限制只能将邮件发送到经过验证的电子邮件地址和域,或者发送到 Amazon SES 邮箱模拟器。

比你在 SES 沙盒中。

您需要将您的帐户从 Amazon SES 沙盒中删除

在此处阅读更多内容

https://docs.aws.amazon.com/ses/latest/DeveloperGuide/request-production-access.html