AWS Lambda无法发送SMTP电子邮件

我有一个运行的简单AWS lambda请求处理程序,该处理程序使用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");
} 
baobeicuijina 回答:AWS Lambda无法发送SMTP电子邮件

需要在您的Lambda上附加一个安全组,该安全组的出站规则中已打开端口25。

在Lambda配置中-

选择VPC(如果帐户中不存在VPC,则创建一个)

选择子网(在多个可用区中创建多个)

选择“安全”组(在“出站规则”或“所有流量”权限中打开了端口25)

这应该有效。

本文链接:https://www.f2er.com/3151869.html

大家都在问