在play 2.0中发送电子邮件异常

时间:2013-01-22 10:36:36

标签: java playframework playframework-2.0

我正在使用Play 2.0进行项目,我正在尝试向用户发送电子邮件。我使用这个插件[https://github.com/typesafehub/play-plugins/tree/master/mailer]。

在我的Build.scala中,我添加了

 "com.typesafe" %% "play-plugins-mailer" % "2.0.4" 

并在conf / play.plugins

 1500:com.typesafe.plugin.CommonsMailerPlugin

在我的conf / application.conf中,我有设置

 smtp.host=smtp.gmail.com
 smtp.port=25
 smtp.ssl=true
 smtp.tls=false
 smtp.username="test@gmail.com"
 smtp.password="xxxxxxx"

我的控制器操作是

 public static Result sendEmail(String recipt, String title, String sender ){
    MailerAPI mail = play.Play.application().plugin(MailerPlugin.class).email();
      mail.setSubject(SUBJECT);
      mail.addRecipient(recipt);
      mail.addFrom(sender);
      String body = views.html.teams.mailBody.render(recipt, title, sender).body();
      mail.sendHtml(body);
      return ok();
 }

我收到以下错误

[EmailException: Sending the email to the following server failed : smtp.gmail.com:25]

我做错了什么。任何帮助将受到高度赞赏。

谢谢

2 个答案:

答案 0 :(得分:8)

Gmail的SMTP配置不同(在端口587上启用了TLS保护)。

尝试使用此配置:

smtp.host=smtp.gmail.com
smtp.port=587
smtp.ssl=true
smtp.tls=true
smtp.username="test@gmail.com"
smtp.password="xxxxxxx"

答案 1 :(得分:4)

浪费了一个小时,这很有效:

smtp.user="test@gmail.com"
smtp.password="xxxxxxx"

smtp.user而不是smtp.username