AWS lambda не может отправить SMTP письмо - PullRequest
0 голосов
/ 06 ноября 2019

У меня работает простой обработчик лямбда-запросов AWS, который отправляет электронную почту с помощью smtp. Когда я помещаю этот код в локальную функцию main(), он работает хорошо и отправляет электронное письмо. При работе на AWS я получаю следующую ошибку javax.mail.MessagingException: 501 Syntax: HELO <hostname>. Есть ли что-то, что нужно изменить в AWS для прохождения почты? Вот мой код:

Properties mailProps = new Properties();
mailProps.setProperty("mail.smtp.host", sesHost);
mailProps.setProperty("mail.smtp.port", port);
mailProps.setProperty("mail.smtp.user", user);
mailProps.setProperty("mail.smtp.auth", "true");
PasswordAuthentication auth = new PasswordAuthentication(user, password);
mailSession = Session.getInstance(mailProps, new Authenticator() {
    @Override
    protected PasswordAuthentication getPasswordAuthentication() {
        return auth;
    }
});

String toAddress = "example@example.com";

try{
    MimeMessage message = new MimeMessage(mailSession);
    message.setFrom(new InternetAddress("noreply@example.com", "Example"));
    message.addRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(toAddress));
    message.setSubject("test subject");
    message.setContent("content content","text/html; charset=utf-8");

    System.out.println("Sending email to" + toAddress);

    Transport.send(message);
}
catch(Exception e){
    e.printStackTrace();
    System.out.println("Failed to send email");
} 
...