有沒有辦法掛鉤到grails Mail plugin的sendMail
方法並修改正文文本?我需要在使用該插件發送的每封電子郵件中插入類似簽名的內容。Grails Mail插件sendMail鉤子
我想我可以添加包括gsp到每個電子郵件模板,但...唉:) 有沒有另一種(懶惰)的方式來做到這一點?
謝謝
有沒有辦法掛鉤到grails Mail plugin的sendMail
方法並修改正文文本?我需要在使用該插件發送的每封電子郵件中插入類似簽名的內容。Grails Mail插件sendMail鉤子
我想我可以添加包括gsp到每個電子郵件模板,但...唉:) 有沒有另一種(懶惰)的方式來做到這一點?
謝謝
爲什麼你需要一個鉤?爲什麼不創建自己的textParsing方案,並允許它向郵件文本添加簽名,並且您可以擁有儘可能多的解析實例。它與郵件無關。
基本字符串操作和代碼可重用性技術應該做必要的。
編輯: 你雖然回答自己,即通過使用gsp模板或任何模板api像thymleaf或sitemesh。
另一個更基本的技術可能是解析一些文本,說你想添加一個簽名和用戶名。
例如
Hello #username#
mail_content
#signature#
現在,在這裏你可以使用String.replaceAll並與所需的值替換。
但肯定java郵件API默認情況下不提供這樣的鉤子。
如果您熟悉春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應該可以幫到你
如果你在發送郵件的服務中封裝了一個方法,你可以在郵件正文中附加簽名。
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()
}
}
我想攔截電子郵件,然後離開系統並添加一些文本。真的不想解析現有的文本。但即使我想這樣做,我該怎麼做呢? – aldrin
看到我上面的修改。 –
要小心Spring的問題,因爲切入點要非常明智地使用和選擇。 –