2012-06-22 77 views
10

試圖從亞馬遜EC2服務器發送郵件使用Java代碼,但得到一個異常喜歡 -無法從亞馬遜EC2服務器發送電子郵件在Java中

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

不只是S3存儲?也許在EC2你可以發送電子郵件。 –

+0

對不起其EC2 –

+0

您可能需要更改帖子的標題。 –

回答

11

您的用戶未被授權在身份和訪問管理(IAM)中向SES發送電子郵件。

錯誤403引用HTTP代碼403未授權。

最後的錯誤告訴你你缺少什麼權限。

阿爾恩:AWS:IAM :: 696355342546:用戶/ brandzter無權執行: SES:SendEmail

或者您的AWS帳戶可能無法使用簡單電子郵件服務進行簽約,但我懷疑這是問題所在。

您可以將組添加到IAM被允許只用了以下政策的sendEmail行動:

{ 
    "Statement": [ 
    { 
     "Action": [ 
     "ses:SendEmail" 
     ], 
     "Effect": "Allow", 
     "Resource": [ 
     "*" 
     ] 
    } 
    ] 
} 

或者你可以給它一個政策,允許其與SES執行任何動作:

{ 
    "Statement": [ 
    { 
     "Action": [ 
     "ses:*" 
     ], 
     "Effect": "Allow", 
     "Resource": [ 
     "*" 
     ] 
    } 
    ] 
} 
+1

這兩個代碼塊是相同的......您可能希望第二個閱讀:{ 「聲明」:[ {效果}:「允許」, 「動作」:[ 「 SES:*」 ], 「資源」:[ 「*」 ] } ] } – Laizer

+0

錯過了。謝謝... –

5

在我來說,我去IAM控制檯,選擇我的用戶和附加政策AmazonSESFullAccess

+0

另外,我將AmazonSESFullAccess添加到該用戶的角色中。 –

+0

我沒有找到可供用戶使用的AmazonSESFullAccess,但我可以將其添加到此用戶所屬的組中。謝謝 – CodePlumber

相關問題