我正在将iOS SES SDK集成到我的iOS应用程序中 . 我最近发现,我无法从经过验证的电子邮件地址发送邮件 . 如果我切换到US_WEST_2区域 . 问题似乎与iOS SDK有关,因为我能够使用相同的邮件地址从Amazon Console发送邮件 .
错误消息:exception = {SESMessageRejectedException {RequestId:70ed2e9e-dc16-11e3-89ca-956987a01a60,ErrorCode:MessageRejected,消息:未验证电子邮件地址 . },errorCode = MessageRejected}
代码:SESManager类:
SESSendEmailRequest *ser = [[SESSendEmailRequest alloc] init] ;
ser.source = strSenderMailAddress;
ser.destination = destination;
ser.message = message;
SESSendEmailResponse *response = [[AmazonClientManager ses] sendEmail:ser];
AmazonClientManager:
+(AmazonSESClient *)ses
{
[AmazonClientManager validateCredentials];
return ses;
}
+(void)validateCredentials
{
if ([AmazonClientManager hasCredentials]) {
[AmazonClientManager clearCredentials];
ses = [[AmazonSESClient alloc] initWithAccessKey:[Lockbox stringForKey:kLockboxAmazonAccessKey] withSecretKey:[Lockbox stringForKey:kLockboxAmazonSecretKey]];
ses.endpoint = [AmazonEndpoints sesEndpoint:@"https://email.us-west-2.amazonaws.com"];
}
}
3 回答
听起来你所看到的是设计 .
这些区域是独立的系统,就像AWS的大部分一样 .
sesEndpoint:
采用AmazonRegion
,其定义如下:您需要更改此行:
对此:
当您传递无效区域时,它将默认为US East 1区域 . 这就是你得到例外的原因 .
希望这可以帮助,
我建议您不要在以下问题上验证电子邮件,而是可以将其设置为基于 生产环境 .
How can i send mail without verifying the recipients in amazon ses
即使您针对任何地区进行此方法,此方法也更为正确且更合适 .