如何在 Laravel 8 中设置 AWS SES 身份
How to set AWS SES identity in Laravel 8
我收到错误消息 User arn:aws:iam:blabla:user/blabla is not authorized to preform ses:SendRawEmail on resource arn:aws:ses:locationLblabla:identity/[domain-of-the-to-address].com
我的 DevOps 通知我 [domain-of-the-to-address]
应该给我一个 specific/our 域。我能找到操纵它的唯一方法是更改 to 地址。我该如何正确设置?我试过以下
// services.php
return [
'ses' => [
'key' => '...',
'secret' => '...',
'region' => '...',
'options' => [
'SourceARN' => 'arn:aws:ses:locationLblabla:identity/[correct-domain].com'
'Source' => 'test@[correct-domain].com'
],
]
];
和
// MyMailable.php
$this->withSwiftMessage(function (Swift_Message $message) {
$message->getHeaders()->addTextHeader('X-SES-SOURCE-ARN', 'arn:aws:ses:locationLblabla:identity/[correct-domain].com');
});
编辑:换句话说。我确实拥有 ses:SendRawEmail
权限。我正在发送一封电子邮件,例如:
致:joe-bob@gmail.com
来自:请勿回复@my-comp.com
但是 laravel 驱动程序或 aws sdk 如何将我的身份倒退设置为 arn:aws:ses:locationLblabla:identity/gmail.com
而不是 arn:aws:ses:locationLblabla:identity/my-comp.com
我们没有也不会在使用 ses:SendRawEmail
将 aws 用于单个电子邮件域,因此它不会工作。
我认为您不需要额外的配置选项或额外的文本 header。听起来您的 SES 帐户仍处于 SES 沙盒模式。 SES 帐户在创建时会自动进入沙盒模式,需要请求才能退出沙盒模式。
我假设您已经验证了您发送电子邮件的电子邮件地址或域。但是,在沙盒模式下,您还必须验证您要发送给的电子邮件地址或域。或者,如果您不能这样做,您可以将测试电子邮件发送到 SES 邮箱模拟器 (success@simulator.amazonses.com).
有关沙盒模式、其限制以及准备就绪后如何退出的更多信息,您可以访问 https://docs.aws.amazon.com/ses/latest/dg/request-production-access.html。
关于SES邮箱模拟器的更多信息,您可以访问https://docs.aws.amazon.com/ses/latest/dg/send-email-simulator.html。
这是一个 IAM 错误,您能否确认您正在使用的 AWS Key/Secret 的 IAM 用户分配了 ses:SendRawEmail
,或者是否有 IAM 角色授予访问权限ses:SendRawEmail
在 Instance/Lambda 你的代码是 运行 from?
确保 IAM 权限没有任何可能导致它不适用的限制(例如仅适用于某些 servers/tags/IPs/SES 身份...)。
听起来您已经在 SES 中验证了您的域,所以只要 AWS 批准您离开沙盒,那么您应该会在 IAM 问题解决后立即发送。
我收到错误消息 User arn:aws:iam:blabla:user/blabla is not authorized to preform ses:SendRawEmail on resource arn:aws:ses:locationLblabla:identity/[domain-of-the-to-address].com
我的 DevOps 通知我 [domain-of-the-to-address]
应该给我一个 specific/our 域。我能找到操纵它的唯一方法是更改 to 地址。我该如何正确设置?我试过以下
// services.php
return [
'ses' => [
'key' => '...',
'secret' => '...',
'region' => '...',
'options' => [
'SourceARN' => 'arn:aws:ses:locationLblabla:identity/[correct-domain].com'
'Source' => 'test@[correct-domain].com'
],
]
];
和
// MyMailable.php
$this->withSwiftMessage(function (Swift_Message $message) {
$message->getHeaders()->addTextHeader('X-SES-SOURCE-ARN', 'arn:aws:ses:locationLblabla:identity/[correct-domain].com');
});
编辑:换句话说。我确实拥有 ses:SendRawEmail
权限。我正在发送一封电子邮件,例如:
致:joe-bob@gmail.com
来自:请勿回复@my-comp.com
但是 laravel 驱动程序或 aws sdk 如何将我的身份倒退设置为 arn:aws:ses:locationLblabla:identity/gmail.com
而不是 arn:aws:ses:locationLblabla:identity/my-comp.com
我们没有也不会在使用 ses:SendRawEmail
将 aws 用于单个电子邮件域,因此它不会工作。
我认为您不需要额外的配置选项或额外的文本 header。听起来您的 SES 帐户仍处于 SES 沙盒模式。 SES 帐户在创建时会自动进入沙盒模式,需要请求才能退出沙盒模式。
我假设您已经验证了您发送电子邮件的电子邮件地址或域。但是,在沙盒模式下,您还必须验证您要发送给的电子邮件地址或域。或者,如果您不能这样做,您可以将测试电子邮件发送到 SES 邮箱模拟器 (success@simulator.amazonses.com).
有关沙盒模式、其限制以及准备就绪后如何退出的更多信息,您可以访问 https://docs.aws.amazon.com/ses/latest/dg/request-production-access.html。
关于SES邮箱模拟器的更多信息,您可以访问https://docs.aws.amazon.com/ses/latest/dg/send-email-simulator.html。
这是一个 IAM 错误,您能否确认您正在使用的 AWS Key/Secret 的 IAM 用户分配了 ses:SendRawEmail
,或者是否有 IAM 角色授予访问权限ses:SendRawEmail
在 Instance/Lambda 你的代码是 运行 from?
确保 IAM 权限没有任何可能导致它不适用的限制(例如仅适用于某些 servers/tags/IPs/SES 身份...)。
听起来您已经在 SES 中验证了您的域,所以只要 AWS 批准您离开沙盒,那么您应该会在 IAM 问题解决后立即发送。