Not able to send Email using Amazon SES in Java

I am using below mentioned code to send Email.

public static void send(String email, String subject, String body) {
    try {
        fromEmail = "abc.@xyz.com";
        Content subjectContent = new Content(subject);

        Destination destination = new Destination().withToAddresses(new String[] { "cde@gmail.com" });

        Content htmlContent = new Content().withData("<h1>Hello - I hope you're having a good day.</h1>");
        Body msgBody = new Body().withHtml(htmlContent);

        // Create a message with the specified subject and body.
        Message message = new Message().withSubject(subjectContent).withBody(msgBody);

        SendEmailRequest request = new SendEmailRequest()
                                           .withSource(fromEmail)
                                           .withDestination(destination)
                                           .withMessage(message);

        SendRawEmailRequest sendRawEmailRequest = new SendRawEmailRequest()
                                                          .withSource(fromEmail)
                                                          .withDestinations(destination.getBccAddresses())
                                                          .withRawMessage(new RawMessage());
        AWSCredentials credentials = new BasicAWSCredentials(userName,password);

        AmazonSimpleEmailServiceClient sesClient = new AmazonSimpleEmailServiceClient(credentials);
        // ListVerifiedEmailAddressesResult verifiedEmails =
        // sesClient.listVerifiedEmailAddresses();
        SendRawEmailResult result = sesClient.sendRawEmail(sendRawEmailRequest);
        System.out.println(result + "Email sent");
    } catch (Exception e) {
        logger.error("Caught a MessagingException, which means that there was a "
                + "problem sending your message to Amazon's E-mail Service check the "
                + "stack trace for more information.{}" + e.getMessage());
        e.printStackTrace();
    }
}

I am getting below mentioned error.

com.amazonaws.AmazonServiceException: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details. The Canonical String for this request should have been 'POST /

host:email.us-east-1.amazonaws.com user-agent:aws-sdk-java/1.9.0 Linux/3.19.0-25-generic Java_HotSpot(TM)_64-Bit_Server_VM/25.66-b17/1.8.0_66 x-amz-date:20160223T062544Z

host;user-agent;x-amz-date 4c1f25e3dcf887bd49756ddd01c5e923cf49f2affa73adfc7059d00140032edf'

(Service: AmazonSimpleEmailService; Status Code: 403; Error Code: SignatureDoesNotMatch;


The credentials you are providing is incorrect. You are giving IAM username and password. Instead you have to provide the access_key_id and access_key_id .

AWSCredentials credentials = new BasicAWSCredentials(access_key_id, secret_access_key)

See: Providing AWS Credentials in the AWS SDK for Java

链接地址: http://www.djcxy.com/p/38996.html

上一篇: AWS SignatureDoesNotMatch

下一篇: 无法使用Java中的Amazon SES发送电子邮件