我收到此错误消息:
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])
}
答案 0 :(得分:3)
您不应该同时使用html
和body
,只需使用其中一个。 body
调用可以通过view
和model
参数自行执行模板渲染,您无需使用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)
此代码仅在Controller
或TagLib
中有效时才有效。 g
- Taglib对象在任何其他Grails文物中都不可用,例如Service
。
如果要从服务呈现电子邮件正文,则必须使用groovy的SimpleTemplateEngine
答案 2 :(得分:1)
上一个问题:您正在服务并且在服务中无法访问taglib,因此在您的问题中发送需要groovyPageRenderer
{{1}}的模板。