2012-06-22 42 views
10

Đang cố gắng để gửi thư từ máy chủ Amazon EC2 với mã java nhưng nhận được một ngoại lệ như -Không thể gửi email từ Amazon EC2 Server trong 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 Result: 1

chứng chỉ của tôi là ok don không biết tại sao tôi không thể gửi email tại đây. tôi có cần phải định cấu hình/cập nhật bất kỳ cài đặt nào trong máy chủ không?

+0

không S3 chỉ lưu trữ? có thể trong EC2 bạn có thể gửi email. –

+0

Vâng xin lỗi EC2 –

+0

Bạn có thể muốn thay đổi tiêu đề bài đăng của mình. –

Trả lời

11

Bạn không được phép sử dụng Quản lý nhận dạng và truy cập (IAM) để gửi email đến SES.

Lỗi 403 đề cập đến mã HTTP 403 Trái phép.

Lỗi ở cuối cho bạn biết bạn thiếu quyền hạn nào.

ARN: AWS: iam :: 696.355.342.546: user/brandzter không được ủy quyền thực hiện: ses: SendEmail

Cách khác tài khoản AWS của bạn có thể không được đăng ký dịch vụ Email đơn giản, nhưng Tôi nghi ngờ đó là vấn đề.

Bạn có thể thêm một nhóm để IAM được phép chỉ là hành động SendEmail với chính sách sau đây:

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

Hoặc bạn có thể cung cấp cho nó một chính sách cho phép nó thực hiện bất kỳ hành động SES với:

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

Hai khối mã này giống hệt nhau ... Bạn có thể muốn hai khối mã giống hệt nhau: { "Tuyên bố": [ { "Hiệu lực": "Cho phép", "Hành động": [ " ses: *" ], "Resource": [ "*" ] } ] } – Laizer

+0

nhỡ đó. Cảm ơn bạn ... –

5

Trong trường hợp của tôi Đã đi đến iAM console, chọn người dùng của tôi và đính kèm chính sách AmazonSESFullAccess

+0

Ngoài ra tôi đã thêm AmazonSESFullAccess vào Vai trò của Người dùng đó. –

+0

Tôi không tìm thấy AmazonSESFullAccess có sẵn cho người dùng, nhưng tôi đã có thể thêm nó vào nhóm người dùng này thuộc về. Cảm ơn – CodePlumber