我需要从Play 2.6.x
服务器发送电子邮件的功能。我发现我可以使用play-mailer
(https://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
进行版本控制,在文件中输入用户名和密码是否安全?
答案 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设置为环境变量。再说一次,如果有人可以访问您服务器的控制台,这是不安全的-但那时还不多。