In the code below I tried 2 combinations
Both gave the same error. I ran this code in my eclipse environment in my home network.
Error
Attempting to send an email through the Amazon SES SMTP interface...
The email was not sent.
Error message: 535 Authentication Credentials Invalid
Code
public class amazon_ses_smtp_test {
static final String FROM = "[email protected]"; // This has been verified on the Amazon SES setup
static final String TO = "justanyone@anydomain"; // I have production access
static final String BODY = "This email was sent through the Amazon SES SMTP interface by using Java.";
static final String SUBJECT = "Amazon SES test (SMTP interface accessed using Java)";
static final String SMTP_USERNAME = "tried username and tried accesskey here";
static final String SMTP_PASSWORD = "tried the password and the access key";
static final String HOST = "email-smtp.us-east-1.amazonaws.com";
static final int PORT = 25;
public static void main(String[] args) throws Exception {
Properties props = System.getProperties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.port", PORT);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.starttls.required", "true");
Session session = Session.getDefaultInstance(props);
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(FROM));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));
msg.setSubject(SUBJECT);
msg.setContent(BODY,"text/plain");
Transport transport = session.getTransport();
try
{
System.out.println("Attempting to send an email through the Amazon SES SMTP interface...");
transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD);
transport.sendMessage(msg, msg.getAllRecipients());
System.out.println("Email sent!");
}
catch (Exception ex) {
System.out.println("The email was not sent.");
System.out.println("Error message: " + ex.getMessage());
}
finally
{
transport.close();
}
}
}
Important
Your SMTP user name and password are not the same as your AWS access key ID and secret access key. Do not attempt to use your AWS credentials to authenticate yourself against the SMTP endpoint. For more information about credentials, see Using Credentials With Amazon SES.
Here's the link: http://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html
The issue is fixed in our case with the following : The AWS SMTP had special characters in its credentials . The credentials have to be url encoded and then provided in the configuration.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With