发送邮件没有这样的属性g

时间:2014-07-03 12:16:55

标签: grails

我收到此错误消息:

No such property: g for class: grails.plugin.mail.MailMessageBuilder

代码是:

mailService.sendMail {
                to "ddd@dd.com" 
                from "dd.dd@dd.com" 
                subject "Welcdome to d "
                body "jjj"
                html g.render(template: "/email/mailll",
            model: [remark: "OLAA PEOPLE!", yourname: user.firstName, yourmail: user.username])
            }

3 个答案:

答案 0 :(得分:3)

您不应该同时使用htmlbody,只需使用其中一个。 body调用可以通过viewmodel参数自行执行模板渲染,您无需使用g.render(如果您需要,则不能使用mailService.sendMail { to "ddd@dd.com" from "dd.dd@dd.com" subject "Welcdome to d " body(view:"/email/_mailll", model: [remark: "OLAA PEOPLE!", yourname: user.firstName, yourmail: user.username]) } 重新服务而不是控制器。)

view

请注意,{{1}}参数不对模板名称进行下划线转换,因此如果要渲染的GSP包含下划线,则必须自己包含下划线。

答案 1 :(得分:2)

此代码仅在ControllerTagLib中有效时才有效。 g - Taglib对象在任何其他Grails文物中都不可用,例如Service

如果要从服务呈现电子邮件正文,则必须使用groovy的SimpleTemplateEngine

答案 2 :(得分:1)

上一个问题:您正在服务并且在服务中无法访问taglib,因此在您的问题中发送需要groovyPageRenderer {{1}}的模板。