在Laravel

时间:2016-03-27 13:37:35

标签: php laravel amazon-web-services laravel-5 amazon-ses

我有:

Mail::send('emails.booking-confirmation', [
        'name' => $name,
        'email' => $email,
        'tel' => $tel,
        'msg' => $msg,
        'date' => Carbon::parse($date)->format('l, jS \o\f F, Y \a\t H:ia'),
        'service' => $q->service,
        'duration' => $q->duration . ' minutes'
    ], function ($m) use ($name, $email) {
        $m->from('myemail@ddress.co.uk', 'Subject');
        $m->to($email, $name)->subject('Your Booking');
    });

使用AWS SES发送时,我得到:

Error executing "SendRawEmail" on "https://email.eu-west-1.amazonaws.com"; AWS HTTP error: Client error: `POST https://email.eu-west-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. - <ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
<Error>
<Type>Sender</Type>
<Code>MessageRejected</Code>
<Message>Email address is not verified.</Message>
</Error>
<RequestId>8551cf11-f420-11e5-b4ac-bf30e6ff71ee</RequestId>
</ErrorResponse>

我的地址和域名已经过验证。

如果我这样做:

...
], function ($m) use ($name, $email) {
        $m->from('myemail@ddress.co.uk', 'Subject');
        $m->to('myemail@ddress.co.uk', $name)->subject('Your Booking');
    });

它完美无缺,但完全无用。

如何让这个工作正常,以便我可以向填写表格的用户发送电子邮件?

1 个答案:

答案 0 :(得分:6)

抱怨您的To: email地址未经过验证。看起来您处于SES Sandbox模式。在您将SES帐户更改为production帐户之前,您还必须验证Sender电子邮件地址。

当您测试FromTo时,您的电子邮件地址(已经过验证)。

来自:Verifying Email Addresses in Amazon SES

  

在您的帐户不在Amazon SES沙箱之前,您还必须这样做   验证除收件人之外的每个收件人的电子邮件地址   由Amazon SES邮箱模拟器提供。欲获得更多信息   有关邮箱模拟器的信息,请参阅测试Amazon SES电子邮件发送。对于   有关移出沙箱的更多信息,请参阅移出   亚马逊SES沙箱。

Moving Out of the Amazon SES Sandbox