有没有办法挂钩grails Mail plugin的$PATH
方法并修改正文?我需要在使用插件发送的每封电子邮件中插入类似签名的内容。
我想我可以在每个电子邮件模板中添加一个include gsp但是......呃:) 还有另一种(懒惰的)方法吗?
由于
答案 0 :(得分:1)
你为什么需要一个钩子?为什么不创建自己的textParsing方案并允许它为您的邮件文本添加签名,并且您可以拥有所需数量的解析实例。它与邮件无关。
基本字符串操作和代码可重用性技术应该是必要的。
编辑: 你虽然回答了自己,即使用gsp模板或任何模板api,如thymleaf或sitemesh。
另一种更基本的技术可能是解析一些文本,说你要添加签名和用户名。
示例强>
Hello #username#
mail_content
#signature#
现在,您可以使用String.replaceAll并替换为必需的值。
但是肯定java mail api默认不提供这样的钩子。
如果你熟悉spring和AOP那么
最终解决方案可能是: to use Spring Aspect Oriented Programming for intercepting any method and perform some tasks before/after or around it. I believe spring aspects should definitely help you out.
我从未尝试过使用grails的方面。 This应该帮助你
答案 1 :(得分:1)
如果将方法封装在用于发送邮件的服务中,则可以将签名附加到电子邮件正文。
public send(String emailTo, String emailSubject, String emailBody, String emailFrom, String customSignature = "") {
String signature = customSignature?: "<p>Default signature</p>"
try {
mailService.sendMail {
from emailFrom
to emailTo
subject emailSubject
html (emailBody + signature)
}
} catch (Exception e) {
log.error('There was an error sending the email')
log.error e.getMessage()
}
}