我有一个运行的简单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");
}