1

我正在使用 Play Framework (2.0.4),我想知道创建带有用于发送电子邮件的表单的页面的最佳方法是什么。我知道有一个用于发送电子邮件的插件,所以这不是问题 - 我可以使用发送电子邮件的方法编写控制器。

我的问题更多是关于我应该提供的操作(在路线文件中)。我应该创建一个接受参数(发件人姓名、发件人电子邮件、主题、正文)的 POST 操作吗?或者我应该以某种方式创建一个模型对象,该对象将填写在表单中并传递给控制器​​中的操作?最佳做法是什么?以及如何正确粘合它(动作在路由文件中应该如何显示,视图应该如何显示)?

4

1 回答 1

0

您需要两个视图 - 一个带有表单(我们称之为mailForm),第二个 - 带有邮件的正文 ( bodyHtml)。bodyTxt(如果您想发送 HTML 和 TXT 版本,您可以选择创建。

专用模型将是很好的帮手,因为它将帮助您使用 Play 的Form<T>,如果需要,您还可以将发送的消息存储在 DB 中。无论如何,您也可以在字符串的地图上进行操作 - 特别是如果您计划制作许多动态表单(具有未知数量的字段)。

填写表单后,它将转到示例sendEmail()操作,您需要填写表单(bindFromRequest)最终创建对象并保存到数据库,最后作为参数传递给 bodyHtml 视图。当然,您应该将其与 toString 一起使用,而不是将呈现的视图作为操作的结果返回 - 与邮件程序一起发送。该操作应将重定向返回到某个“谢谢”页面。就这样。

注意:写得很快,如果有不清楚的地方,请告诉我......

于 2013-03-12T19:40:14.443 回答