如何使用Play 2.0将HTML电子邮件重定向到客户端浏览器

时间:2013-02-10 13:07:33

标签: playframework-2.0

在我的Play应用程序中,我会在注册过程完成后发送欢迎电子邮件...我希望能够在客户端的Web浏览器中查看其内容。我尝试过这样的事情......

@(title: String)(content: Html)

...

<html>
    <head>
        <title>@title</title>

        ...

    </head>

    ...

    <p>Trouble viewing this email? <a href="@views.html.emails.email(title)(content)">View in Browser</p>

    ...

    <body>
        @content
    </body>
</html>

...但是这段代码总是以[StackOverflowError:null]结束:

In /home/j3d/Projects/test/app/views/mails/email.scala.html at line 8.

 5 <html>
 6 <head>
 7    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 8    <title>@title</title>
 9    <style type="text/css">
10        a { color: #4A72AF; }
11        body, #header h1, #header h2, p { margin: 0; padding: 0; }
12        #main { border: 1px solid #cfcece; }

任何帮助都会非常感激:-) 感谢。

2 个答案:

答案 0 :(得分:0)

显然你的@title为空,请确保在控制器中它的String有值或在视图中为它设置一些默认值:

@(title: String="Email was sent, check your mailbox")(content: Html)

答案 1 :(得分:0)

我认为您将电子邮件模板包含在a href=""中,而不是将链接放到此页面。

您显示views.html.emails.email视图,其中包含views.html.emails.email视图,其中包含views.html.emails.email视图...您已了解;)

解决方案是在a标记中添加真实链接(而不是内容)。这样的事情(我不知道你的控制器/路线):

<a href="@routes.Emails.showEmailAction(....)">