2013-09-25 44 views
1

我的Kentico服務器無法發送電子郵件,所以我必須使用MacroResolver轉換我的電子郵件,但使用其他方式發送它。如何轉換Kentico電子郵件模板而不發送?

var clients = new List<Client>(); 

var macroResolver = MacroResolver.GetInstance(); 
macroResolver.AddDynamicParameter("clients", clients); 

var emailMessage = new EmailMessage { 
    From = "[email protected]", 
    Recipients = "[email protected]", 
    Subject = "Whatever" 
}; 

var template = EmailTemplateProvider.GetEmailTemplate(templateName, siteName); 

EmailSender.SendEmailWithTemplateText(siteName, emailMessage, template, macroResolver, true); 

換句話說,我想使用Kentico只是一個模板引擎。無論如何要實現這一目標?

回答

1

什麼SendEmailWithTemplateText方法基本上是做的是它填充消息的空白字段相當於從模板和解決它的宏值。如果您是郵件正文後只,那麼你可以通過創建電子郵件消息:

emailMessage.Body = macroResolver.ResolveMacros(emailMessage.Body); 
emailMessage.PlainTextBody = macroResolver.ResolveMacros(emailMessage.PlainTextBody); 

對於大多數情況下它也能更好地告訴解析器來編碼解析的值。你可以這樣做:resolver.EncodeResolvedValues = true;

此外,你正在將整個「客戶」集合傳遞給解析器。你可能需要一個接一個地在循環中生成電子郵件。

相關問題