playframework - 如何使用 play framework 1.x 和 Amazon SES 发送电子邮件?

标签 playframework jakarta-mail playframework-1.x amazon-ses

我正在尝试在我的游戏中发送电子邮件!框架 1.2.5 应用程序与 Amazon SES。在我搜索时,我无法在 application.conf 中定义 amazon SES 邮件的配置。我创建了一个在 java 中设置配置的工作。但是我收到以下异常。一整天,我都在尝试让我的应用程序发送电子邮件。但是任何尝试都失败了。我以为你可以帮助我。 我很感激。

@OnApplicationStart
public class Bootstrap extends Job{
    @Override
    public void doJob() throws Exception {
    Properties props = play.libs.Mail.getSession().getProperties();
        props.setProperty("mail.transport.protocol","aws");
        props.setProperty("mail.smtp.host","email-smtp.eu-west-1.amazonaws.com");
        props.setProperty("mail.smtp.port","25");
        props.setProperty("mail.aws.user", "...");
        props.setProperty("mail.aws.password", "...");
        System.out.println("AMAZON SES-MAIL PROPERTIES SET SUCCESSFULY");
    }
}

错误

play.exceptions.MailException: Error while sending email
at play.libs.Mail$2.call(Mail.java:186)
at play.libs.Mail$2.call(Mail.java:178)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.commons.mail.EmailException: Sending the email to the following server failed : email-smtp.eu-west-1.amazonaws.com:25
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1242)
at org.apache.commons.mail.Email.send(Email.java:1267)
at play.libs.Mail$2.call(Mail.java:183)
    ... 6 more
Caused by: com.sun.mail.smtp.SMTPSendFailedException: 530 Authentication required

at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1368)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:886)
at javax.mail.Transport.send0(Transport.java:191)
at javax.mail.Transport.send(Transport.java:120)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1232)
    ... 8 more

最佳答案

我的问题没有得到回答。我发现了我的问题所在。我解释一下,以便其他有此类问题的人可以从中受益。 从一开始,我认为我的问题不是为安全组中的传出 SMTP 调用定义特定端口。 This是一篇你可以阅读的好文章。此外,无需在任何 Bootstrap 类中配置 AWS SES。我刚刚在 application.conf 中定义了它,如下所示。

mail.transport.protocol=aws
mail.smtp.host=<your aws smpt server name>
mail.smtp.port=587
mail.smtp.user=<your username>
mail.smtp.pass=<your password>
mail.smtp.channel=ssl

但是邮件进入了垃圾邮件文件夹,我找不到为什么会这样。如果有人对此有任何想法,请在此处发表评论,我将不胜感激:)

关于playframework - 如何使用 play framework 1.x 和 Amazon SES 发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22571501/

相关文章:

mysql - 使用另一个表值更新表

java - 由 : sun. security.provider.certpath.SunCertPathBuilderException 引起:无法找到请求目标的有效证书路径

jakarta-mail - 如何从pop3协议(protocol)的UID获取邮件

java - 在 Controller 外部获取 JPA 事务 - Play Framework

java - 使用 "in"在 Play Framework 1.x/JPA 中构建查询的更简单方法?

mongodb - Salat GRATER GLITCH ClassNotFoundException

playframework - sbt 中 Unresolved 依赖关系

scala - 在 play/scala 中以 post 方法发送多部分表单数据

Java Mail 从交换服务器获取带有 pop3 的邮件 => 线程 "main"javax.mail.MessagingException 中的异常

java - 将 playframework 1.2.5 与现有数据库结合使用