我最近注册了亚马逊SES服务。我已经生成了我的SMTP设置,访问密钥和秘密密钥。我也没有生产访问现在。我是一个。net开发人员,并试图通过我的代码验证电子邮件地址。下面是代码片段:
var amConfig = new AmazonSimpleEmailServiceConfig {UseSecureStringForAwsSecretKey = false};
var amzClient = new AmazonSimpleEmailServiceClient(_awsAccessKey, _awsSecretKey, amConfig);
var veaRequest = new VerifyEmailAddressRequest {EmailAddress = "myemail@somedomain.com"};
VerifyEmailAddressResponse veaResponse = amzClient.VerifyEmailAddress(veaRequest);
string requestId = veaResponse.ResponseMetadata.RequestId;
return requestId;
但是我收到以下错误:
Amazon.SimpleEmail。AmazonSimpleEmailServiceException: User:myUsername没有权限执行:ses:VerifyEmailAddress----> system.net.webexcexception: The remote server returned an error: (403) Forbidden.
我还尝试了其他一些操作,如ListVerifiedEmailAddresses,但最终得到了相同的结果。
谁能告诉我这是怎么回事?在亚马逊开发者论坛上发布这个问题是没有用的。到现在还没有回复。另外,我怀疑我需要有生产访问来调用这个方法。是吗?还要记住,我能够使用AWS SMTP设置成功发送电子邮件。
谢谢。
您是否使用与IAM用户关联的凭据?如果是这种情况,您需要向IAM用户添加一个策略,以允许SES中的这些特定操作。像这样:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1402494612000",
"Effect": "Allow",
"Action": [
"ses:ListVerifiedEmailAddresses",
"ses:VerifyEmailAddress"
],
"Resource": [
"*"
]
}
]
}