我怎样才能发送电子邮件与布局

gquia 发布于 2019-04-15 grails 最后更新 2019-04-15 22:59 14 浏览

我正在使用grails邮件插件。当我提交我的表单时,它会发送一封电子邮件到aaa@example.com到textField name =“email成功,但我怎样才能发送一封带有布局的电子邮件......不是像这张图片http://www.4shared.com/photo/uT2YUCfo/Capture_2.html或者一些CSS .. 形成

<g:form action="send">
<table style="width:500px">
<tbody>
<tr>
   <td>Your Email Address  </td>
       <td><g:textField style="width:250px" name = "email"/></td>
</tr>
<tr>
   <td>Your Name</td>
       <td><g:textField style="width:250px" name = "user"/></td>
</tr>
<tr>
   <td><input type="submit"/></td>
</tr>
</tbody>
</table>
</g:form>
MAIL CLOSURE
def send = {
        sendMail {
            to params.email
            from "aaa@yahoo.com"
            subject "Test Reset Password"
            body(view:"/user/layoutmail",model:[name:params.user])
        }
        render "Email Terkirim"
    }
已邀请:

ab_non

赞同来自:

那么你实际上可以使用电子邮件的布局,类似于如何使用视图页面的布局。您要做的是为您的电子邮件正文内容创建一个新布局和一个视图文件。 布局:例如。 ../views/layouts/emailLayout.gsp

<%@ page contentType="text/html" %>
<html>
<head>
   <meta name="viewport" content="width=device-width" />
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   <style>
       a {color: #348eda;}
   </style>
 </head>
 <body>
    <g:layoutBody/>
 </body>
</html>
查看例如。 ../views/emails/welcomeEmail.gsp
<%@ page contentType="text/html" %>
<g:applyLayout name="emailLayout">
<html>
<body
   <a href="${welcome.url}">Your Welcome ${welcome.username}</a>
</body>
</html>
</g:applyLayout>
并发送邮件继承人的一个例子
def sendWelcomeMail(User user, String url){
    def rtn = [success:false]
    if(user) {
        def fooBar = [
                username: user.username,
                email: user.email,
                url: url
        ]
        sendMail {
            async true
            to fooBar.email.trim()
            subject "Welcome Email"
            body(view: '/emails/welcomeEmail', model: [welcome: fooBar])
        }
        rtn.success = true
    }
    return rtn
}

dnulla

赞同来自:

它不会采用grails布局。你真的不想要它。您应该以一种独立的网页方式构建您的电子邮件,而不是其他依赖项。所有使用的静态资源都应该可以通过公共URL访问。