1

我的 Kentico 服务器无法发送电子邮件,所以我必须使用 MacroResolver 转换我的电子邮件,但使用其他方式发送。

var clients = new List<Client>();

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

var emailMessage = new EmailMessage { 
    From = "someone@somewhere.com", 
    Recipients = "otherone@somewhere.com", 
    Subject = "Whatever" 
};

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

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

换句话说,我想将 Kentico 用作模板引擎。有没有办法做到这一点?

4

1 回答 1

1

什么SendEmailWithTemplateText方法基本上是通过模板中的等效项填充消息的空字段并解析其中的宏值。如果您只关注邮件正文,则可以通过以下方式创建电子邮件:

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

对于大多数情况,最好告诉解析器对解析的值进行编码。你可以这样做:resolver.EncodeResolvedValues = true;

您还将整个“客户”集合传递给解析器。您可能需要逐一处理并循环生成电子邮件。

于 2013-09-30T15:36:42.323 回答