在让 AWS SES 正常工作时遇到一些问题;我想从我的网站向用户发送电子邮件。看起来凭证没有经过验证,但是我使用了从 IAM 生成的正确凭证(我还尝试了服务器根密钥,但它给了我同样的错误)。我已经没有关于如何进一步解决/调试的想法,因此任何指导将不胜感激。
执行时收到错误:
从实例配置文件元数据服务器检索凭据时出错。 (客户端错误:404)
采取的步骤
我已经设置了 SES 并验证了电子邮件地址等
我创建了一个具有“对 SES 的完全访问权限”的 IAM 配置文件
我已使用 phar 文件安装了适用于 php 的 AWS 开发工具包
我编写了下面的 php 代码,直接提供 SES 的正确安全访问代码
require 'aws/aws.phar';
use Aws\Ses\SesClient;
//More code here
$client = SesClient::factory(array(
'key' => 'xxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxx',
'region' => 'us-west-2',
'version' => '2010-12-01'
));
//code to build the $msg here as array
try{
$result = $client->sendEmail($msg);
//save the MessageId which can be used to track the request
$msg_id = $result->get('MessageId');
echo("MessageId: $msg_id");
//view sample output
print_r($result);
} catch (Exception $e) {
echo($e->getMessage());
}
//view the original message passed to the SDK
print_r($msg);
感谢您提前提供的帮助 - 这始终是一个很棒的社区!如果我可以提供其他任何信息,请告诉我
John
您可以使用多种方法向 SDK 提供凭据。请参阅文档:向 SDK 提供凭证
1) 使用您创建的 IAM 配置文件中的值设置环境变量:AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_DEFAULT_REGION。
2) 您还可以创建 ~/.aws/credentials 文件,而不是 1)。您可以在此处添加以下行:
[默认]
aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID
aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY
aws_default_region = 区域
1) 或 2) 肯定会起作用,而且很简单。
3) 您还可以创建实例配置文件。您需要创建 IAM 角色和实例配置文件。您的实例需要在创建时分配实例配置文件。请参阅第 183 页(如页面底部所示。主题名称为“使用 IAM 角色向应用程序授予权限
在本指南的 Amazon EC2 实例上运行”):AWS IAM 用户指南了解步骤和程序。在这里,秘密密钥和访问密钥会自动获取,您无需执行任何操作。您只需使用步骤 1) 设置默认区域(即导出 AWS_DEFAULT_REGION=someregion)。
4)您已经尝试过第四种方法,可能您的设置存在一些我不知道的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)