【发布时间】:2018-11-22 09:04:42
【问题描述】:
我正在尝试使用 SDK 通过 AWS SES API 发送电子邮件。
我的代码基于此处的官方文档:https://docs.aws.amazon.com/ses/latest/DeveloperGuide/examples-send-using-sdk.html
我到达await client.SendEmailAsync(sendRequest); 并收到错误消息:
无法从 EC2 实例元数据服务检索凭证。
// initialization
var client = new AmazonSimpleEmailServiceClient(RegionEndpoint.USWest2);
var response = new SendEmailResponse();
// build email
var sendRequest = new SendEmailRequest
{
Source = ToAddress,
Destination = new Destination
{
ToAddresses =
new List<string> { ReceiverAddress }
},
Message = new Message
{
Subject = new Content(model.Subject),
Body = new Body
{
Html = new Content
{
Charset = "UTF-8",
Data = model.HtmlBody
},
}
},
};
// send async call to api
try
{
var response = await client.SendEmailAsync(sendRequest);
}
catch (Exception ex)
{
}
我已确认我的域已通过 AWS 控制台进行验证,并且还显示为“已启用发送”。
我哪里出错了?
【问题讨论】:
-
您实际上是在 EC2 中运行此代码吗?如果有,该实例是否具有 IAM 实例角色?
-
我的实现没有在 EC2 上运行。
-
EC2 实例元数据服务是在 EC2 实例上运行的代码可以获取与IAM instance role 关联的临时凭证的当前版本的地方。它仅适用于 EC2 内部。在 EC2 之外运行,您需要以另一种方式配置凭据。
标签: c# amazon-web-services email .net-core amazon-ses