Play Framework 2.4 发送邮件

Play Framework 2.4 sending email

我是 Scala 新手,发送电子邮件时卡住了...

我正在使用 Play! 2.4 并且必须遵循 build.scala

"com.typesafe.play" %% "play-mailer" % "3.0.1"

在application.conf以下:

play.mailer {
    host=smtp.gmail.com
    port=587 
    ssl=true
    tls=true
    user="testme@gmail.com"
    password=abracadabra
    debug=true

}

我想做的是向用户发送电子邮件,例如 user_1,当其他用户 user_2 从 user_1 借书时。

在我的图书控制器中,我有以下方法:

def sendEmail(email_user: String, subject: String, msg: String): Unit = { 

    val email = Email(
      subject,
      "FROM <testme@gmail.com>",
      Seq("TO <"+email_user+">"),

      bodyText = Some(msg)
    )

}

在下一个方法中,如果 user_2 从 user_1

借了一本书,我将调用 sendEmail 方法
  def borrowBook(id_book: Long) = Action { implicit request =>
     val nr = Book.checkBook(id_book)
     val date = new Date()      

     if(nr > 0)
     {
        val list = Book.getCarte(id_book)
        val no = Friend.isFriend(list.id_user, userInfo.id.get)
        if(no == 1){ 
         Borrow.insert(Borrow(id_book, userInfo.id.get, date))

         sendEmail(userInfo.email, "Borrow book", "Your book has been borrowed")
         Ok(views.html.borrowBook())
         }else Ok(views.html.warningBorrow())
     }
     else Ok(views.html.failBorrow())

 }

问题是我没有收到任何错误或类似的东西,我不知道我做错了什么。

谁能帮帮我?

非常感谢!

我不相信你真的在发送电子邮件。 sendEmail 方法只是创建电子邮件 class,但它没有做任何其他事情,也没有 return。这实际上并没有发送电子邮件。

根据:https://github.com/playframework/play-mailer 您应该通过调用 MailerClient

来发送电子邮件

链接的示例显示的代码基本上将邮件客户端配置为通过特定服务器发送,然后调用 mailerClient.send(email)

在示例中,使用的 MailerClient 在构造时注入到控制器中。

这是对您关于端口的最新评论(还没有足够的代表发表评论)的回答:尝试端口 465,因为您同时启用了 SSL 和 TLS。也尝试关闭调试模式(只需删除它的行)。使用我自己的 google 帐户使用适当的发送方法检查了您的代码,它工作正常。