I am using AWS SDK Version 2.x for SES. I want to know the Verification Status of an email and to verify that email if not verified.
getting the Error "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." in the below method.
I am using this method to create the object of SesClient -
public static SesClient getClientObject(String accessKeyId, String secretAccessKey, String region) {
AwsBasicCredentials credential = AwsBasicCredentials.create(accessKeyId, secretAccessKey);
StaticCredentialsProvider credentialProvider = StaticCredentialsProvider.create(credential);
SesClient amazonSimpleEmailService = SesClient.builder().credentialsProvider(credentialProvider).region(Region.of(region)).build();
return amazonSimpleEmailService;
}
And this method to get Verification Status of the emailAddress. the parameter "address" is the email address.
public static boolean isEmailAddressisVerified(String accessKeyId, String secretAccessKey, String region,
String address) {
SesClient ses = getClientObject(accessKeyId, secretAccessKey, region);
ListVerifiedEmailAddressesResponse verifiedEmails = ses.listVerifiedEmailAddresses(); // getting the above error in this line
return verifiedEmails.verifiedEmailAddresses().contains(address);
}
And this method to verify the emailAddress.
public static Map<String, String> verifyEmailAddress(String accessKeyId, String secretAccessKey, String region,
String address) {
Map<String, String> returnMap = new HashMap<>();
SesClient ses = getClientObject(accessKeyId, secretAccessKey, region);
ListVerifiedEmailAddressesResponse verifiedEmails = ses.listVerifiedEmailAddresses();
if (verifiedEmails.verifiedEmailAddresses().contains(address)) {
return null;
}
VerifyEmailAddressResponse result = ses
.verifyEmailAddress(VerifyEmailAddressRequest.builder().emailAddress(address).build());
logger.debug("Verify Email Response Metadata {}", result.responseMetadata());
logger.debug("Verify Email Response Metadata {}", result.responseMetadata().requestId());
returnMap.put("STATUS", "SUCCESS");
returnMap.put("AWS_REQUEST_ID", result.responseMetadata().requestId());
return returnMap;
}