播放邮件程序是SMTP服务器吗

时间:2018-08-30 20:16:05

标签: playframework-2.6

我需要从Play 2.6.x服务器发送电子邮件的功能。我发现我可以使用play-mailerhttps://github.com/playframework/play-mailer#usage

问题1-我需要单独的smtp服务器还是play-mailer本身就是smtp服务器?

问题2-目前,我正在localhost上运行该应用程序,但最终将对其进行部署。如果我仅在以下配置中使用localhost,我的应用程序就能正常工作吗?

play.mailer {
  host = localhost // (mandatory)
  port = 25 // (defaults to 25)
  ssl = no // (defaults to no)
  tls = no // (defaults to no)
  tlsRequired = no // (defaults to no)
  user = null // (optional)
  password = null // (optional)
  debug = no // (defaults to no, to take effect you also need to set the log level to "DEBUG" for the application logger)
  timeout = null // (defaults to 60s in milliseconds)
  connectiontimeout = null // (defaults to 60s in milliseconds)
  mock = true// (defaults to no, will only log all the email properties instead of sending an email)
}

问题3-将应用程序部署到云中(例如AWS)后,是否只需在上述配置中更改host即可使其正常工作?

问题4-我想在play.mailer配置中传递用户名和密码。考虑到我对application.conf进行版本控制,在文件中输入用户名和密码是否安全?

1 个答案:

答案 0 :(得分:0)

答案1: 您将需要一个smtp服务器来连接play.mailer。通常,这就是您要在生产中放入主机的内容。

答案2:

是的,它应该像这样工作,但我认为您必须设置mock = yes

答案3:

如果您决定使用aws(https://aws.amazon.com/ses/),则您的conf将如下所示。

play.mailer {
  host = "email-smtp.us-east-1.amazonaws.com" // (mandatory) - url from amazon
  port = 465 // (defaults to 25)
  ssl = yes // (defaults to no)
  tls = no // (defaults to no)
  tlsRequired = no // (defaults to no)
  user = "id_from_amazon"
  password = "password_from_amazon"
  debug = no // (defaults to no)
  timeout = null // (defaults to 60s in milliseconds)
  connectiontimeout = null // (defaults to 60s in milliseconds)
  mock = no // for actually sending emails. set it to yes if you want to mock.
}

答案4:

因此,安全性方面取决于您在哪个环境中使用播放服务器。如果某人可能看到application.conf,则可以使用环境变量,而不用将其写入application.conf

password = ${APP_MAILER_PASSWORD}

,然后将APP_MAILER_PASSWORD设置为环境变量。再说一次,如果有人可以访问您服务器的控制台,这是不安全的-但那时还不多。