2012-06-22 7 views
10

próbuje wysłać pocztę z serwera Amazon EC2 z kodu java, ale coraz wyjątek jak -Nie można wysłać e-mail z Amazon EC2 Server w Javie

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 Result: 1

Moje poświadczeń jest ok don Nie wiem, dlaczego nie mogę wysłać tutaj e-maila. Czy muszę skonfigurować/zaktualizować dowolne ustawienie na serwerze?

+0

nie tylko przechowywanie S3? może w EC2 możesz wysłać e-mail. –

+0

Przykro mi, że EC2 –

+0

Możesz zmienić tytuł swojego postu. –

Odpowiedz

11

Użytkownik nie jest upoważniony w zakresie zarządzania tożsamością i dostępem (IAM) do wysyłania wiadomości e-mail do SES.

Błąd 403 odnosi się do kodu HTTP 403 Nieautoryzowane.

Błąd na końcu informuje, jakich uprawnień brakuje.

ARN AWS: iam :: 696355342546: user/brandzter nie jest upoważniony do wykonywania: SES: SendEmail

Alternatywnie konta AWS nie może być wpisany na prostej usługi e-mail, ale Wątpię, że to jest problem.

Można dodać grupę do IAM że dozwolone jest tylko działanie SendEmail z następującym polityki:

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

Alternatywnie można nadać jej politykę, która pozwala mu na wykonywanie jakichkolwiek działań na SES z:

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

Te dwa bloki kodu są identyczne ... Prawdopodobnie chcesz drugi otrzymuje brzmienie: { „Polityka”: [ { „Efekt”: „Zezwalaj”, „Action”: [ " SES: *” ] "zasobu": [ "*" ] } ] } – Laizer

+0

przeoczyć. Dziękuję ... –

5

W moim przypadku poszedłem do IAM konsoli, wybierz moje użytkownikowi i dołączyć AmazonSESFullAccess polityki

+0

Dodatkowo dodałem AmazonSESFullAccess do roli tego użytkownika. –

+0

Nie znalazłem AmazonSESFullAccess dostępnego dla użytkownika, ale udało mi się dodać go do grupy, do której należy ten użytkownik. Dzięki – CodePlumber