我为html电子邮件模板设置了一个宏,如下所示:
message = message.Replace("\n", "<br>"); //tried with and without
message = Server.HtmlEncode(message); //tried with and without
MacroContext.GlobalResolver.SetNamedSourceData("Message", message);
但是电子邮件只是将<br>
标签呈现为文本。
我绝对会收到html电子邮件,而不是纯文本电子邮件。
如果我不处理文本并保留\n
完整地检查文本,并检查发送队列中的电子邮件,它将按原样显示!
如何将换行符添加到电子邮件模板?
答案 0 :(得分:1)
这是发送电子邮件并为我工作的示例代码:
var emailTemplate = EmailTemplateProvider.GetEmailTemplate(EmailName, SiteContext.CurrentSiteID);
var message = "<br/>";
MacroResolver resolver = MacroResolver.GetInstance();
resolver.SetNamedSourceData("Message", message);
EmailMessage message = new EmailMessage();
message.From = resolver.ResolveMacros(emailTemplate.TemplateFrom);
message.Recipients = user.Email;
message.Body = resolver.ResolveMacros(emailTemplate.TemplateText);
message.Subject = resolver.ResolveMacros(emailTemplate.TemplateSubject);
EmailSender.SendEmail(SiteContext.CurrentSiteName, message, emailTemplate.TemplateName, resolver,
false);
电子邮件模板中的宏:
{%Message%}
答案 1 :(得分:0)
HtmlEncode
会让您的<br>
看起来像文本。至少您需要反转第一行和第二行。