尝试使用java代码从Amazon EC2服务器发送邮件,但获得例如 -
之类的异常Exception in thread "main" Status Code: 403, AWS Request ID: 3e9319ec-bc62-11e1-b2ea-6bde1b4f192c, AWS Error Code: AccessDenied, AWS Error Message: User: arn:aws:iam::696355342546:user/brandzter is not authorized to perform: ses:SendEmail
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:500)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:262)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:166)
at com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient.invoke(AmazonSimpleEmailServiceClient.java:447)
at com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient.sendEmail(AmazonSimpleEmailServiceClient.java:242)
at brandzter.util.SESExample.SendMail(SESExample.java:46)
at brandzter.util.SESExample.<init>(SESExample.java:31)
at brandzter.util.SESExample.main(SESExample.java:52)
Java结果:1
我的凭证还可以,不知道为什么我无法在这里发送电子邮件。 我需要配置/更新服务器中的任何设置吗?
答案 0 :(得分:11)
您的用户未经身份和访问管理(IAM)授权向SES发送电子邮件。
错误403指的是HTTP代码403 Unauthorized。
最后的错误告诉你缺少什么许可。
arn:aws:iam :: 696355342546:用户/ brandzter无权执行: SES:SendEmail
或者,您的AWS账户可能没有注册简单电子邮件服务,但我怀疑这是问题所在。
您可以使用以下策略向IAM添加一个只允许使用sendEmail操作的组:
{
"Statement": [
{
"Action": [
"ses:SendEmail"
],
"Effect": "Allow",
"Resource": [
"*"
]
}
]
}
或者,您可以为其提供一个策略,允许它在SES上执行任何操作:
{
"Statement": [
{
"Action": [
"ses:*"
],
"Effect": "Allow",
"Resource": [
"*"
]
}
]
}
答案 1 :(得分:6)
在我的情况下,我去了IAm控制台,选择我的用户并附加政策AmazonSESFullAccess