1

I'm trying to send emails using spring-cloud-aws. Bellow the relevant snippets:

application.properties:

cloud.aws.credentials.accessKey=XXXXXXXXXXXXXXXXXXXX
cloud.aws.credentials.secretKey=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
cloud.aws.region.static=us-east-1

MailSendingService:

@Service
public class MailSendingService {

    @Autowired
    private MailSender mailSender;

    public void sendMailMessage() {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom("noreply@xxx.com");
        simpleMailMessage.setTo("johndoe@gmail.com");
        simpleMailMessage.setSubject("test subject");
        simpleMailMessage.setText("test content");
        this.mailSender.send(simpleMailMessage);
    }
}

Application:

@SpringBootApplication
public class Application {

    @Autowired
    MailSendingService mailService;

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    CommandLineRunner init() {
        return (evt) -> {
            mailService.sendMailMessage();
        };
    }
}

In my POM I'm using:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-aws</artifactId>
    <version>1.2.0.BUILD-SNAPSHOT</version>
</dependency>

When I run this code, I am getting the following error:

Caused by: org.springframework.mail.MailSendException: Failed messages: 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 /

amz-sdk-invocation-id:3a35628a-ca4d-5d3f-666a-1bd596b25a0 amz-sdk-retry:3/230/485 host:email.us-east-1.amazonaws.com user-agent:aws-sdk-java/1.11.18 Windows_10/10.0 Java_HotSpot(TM)_64-Bit_Server_VM/25.92-b14/1.8.0_92 x-amz-date:20170201T113844Z

amz-sdk-invocation-id;amz-sdk-retry;host;user-agent;x-amz-date c87e0a9aed59cebfbf123b9a248c1bece98e17c59ab38486fef0220d1f86da'

The String-to-Sign should have been 'AWS4-HMAC-SHA256 20170201T113844Z 20170201/us-east-1/ses/aws4_request daa69ea00e5c19ce5123fdbfe0c335d2678516925dc2042f7627d9660520ef' (Service: AmazonSimpleEmailService; Status Code: 403; Error Code: SignatureDoesNotMatch; Request ID: fd73a86-e872-11e6-a68d-7b50079b6d0)

I have triple checked the keys. Any ideas?

Weber O.
  • 11
  • 4

0 Answers0