首页 > 解决方案 > AWS SES 电子邮件未使用 Laravel 验证

问题描述

我有这个邮件测试类通过 SES 向用户发送电子邮件:

class Test extends Mailable
{
    use Queueable, SerializesModels;

    public function build()
    {
        return $this->markdown('admin.emails.email-user2');
    }
}

通过修补匠:

 Mail::to('myemail@gmail.com')->send(new App\Mail\Admin\Test());

即使我打开了案例并从沙盒转换为生产:

在此处输入代码

我的.env:

MAIL_MAILER=ses
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=null
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=test@gmail.com
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=AK###IAV66#########
AWS_SECRET_ACCESS_KEY=P+G0x21#######ZJklHhRZbh#####kMu
AWS_DEFAULT_REGION=us-east-2
AWS_BUCKET=

我错过了什么吗?

错误::

    Aws/Ses/Exception/SesException with message 'Error executing "SendRawEmail" on "https://email.us-east-2.amazonaws.com"; AWS HTTP error: Client error: `POST https://email.us-east-2.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-2: ASU <asu@gmail.com>, asu@gmail.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-2: ASU &lt;asu@gmail.com&gt;, asu@gmail.com</Message>
</Error>
<RequestId>8547280e-b97d-410c-b278-7d10626495b2</RequestId>
</ErrorResponse>

标签: phplaravelamazon-web-servicesamazon-ses

解决方案


从沙盒迁移到生产只消除了验证收件人地址的要求,但是,您必须需要验证 From/Envelope-Sender/Return Path 地址。

这是为了确保您不会使用其他人的电子邮件并向收件人发送垃圾邮件和滥用电子邮件服务。如果是gmail等,您需要验证电子邮件地址,如果您打算使用自己的域,您只需验证域并向亚马逊显示域的所有权,您不再需要验证email@your_domain.com

验证域


推荐阅读