如何在没有第三方邮件帐户的情况下通过播放框架应用程序发送邮件?

时间:2014-12-11 16:54:47

标签: playframework playframework-2.2 ubuntu-14.04 playframework-2.3

我正在开发一个播放应用程序,该应用程序托管在Ubuntu 14.04服务器上,并希望系统发送邮件(用于密码检索)。使用Play Mailer plugin,我只是将配置留空

# mail
mailers.from=""
smtp.host=localhost
#smtp.port=
#smtp.ssl=
#smtp.tls=
#smtp.user=""
#smtp.password=""

但这会导致异常

play.api.Application$$anon$1: Execution exception[[RuntimeException: org.apache.commons.mail.EmailException: Sending the email to the following server failed : localhost:25]]
    at play.api.Application$class.handleError(Application.scala:293) ~[play_2.10.jar:2.2.3]
    at play.api.DefaultApplication.handleError(Application.scala:399) [play_2.10.jar:2.2.3]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:264) [play_2.10.jar:2.2.3]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:264) [play_2.10.jar:2.2.3]
    at scala.Option.map(Option.scala:145) [scala-library.jar:na]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3.applyOrElse(PlayDefaultUpstreamHandler.scala:264) [play_2.10.jar:2.2.3]

虽然它可以与Google Mail帐户配合使用,但我不认为有工作帐户的必要性。有没有办法在没有第三方帐户的情况下发送邮件? documentation将其声明为可选。

1 个答案:

答案 0 :(得分:1)

Play框架和提到的Mailer插件都没有任何内置的SMTP服务器,因此您需要一个外部服务器才能发送邮件。这就是Mailer插件需要SMTP主机的原因。

  

smtp.host(必填)

认证凭据在文档中标记为可选的原因是您可以将SMTP服务器配置为接受未经身份验证的连接。

例如,如果您的Play应用程序和SMPT服务器位于同一本地网络中且服务器无法公开访问,那么您可能认为不需要进行身份验证,因为它仅针对该特定应用程序而设计。

简而言之,如果您希望能够在没有任何第三方帐户的情况下发送邮件,则需要本地SMTP服务器。