【发布时间】:2011-04-04 22:10:43
【问题描述】:
您好,您可以使用 mailMessage 类将 .htm 文件作为 html 模板发送吗?我似乎不知道该怎么做?
【问题讨论】:
标签: c# asp.net mailmessage
您好,您可以使用 mailMessage 类将 .htm 文件作为 html 模板发送吗?我似乎不知道该怎么做?
【问题讨论】:
标签: c# asp.net mailmessage
我建议您使用 String 或 StringBuilder 类并制作您自己的模板子系统。我的意思是,只需将模板内容分配给字符串,并将出现的标记替换为实际值。
如果您想要一个示例,请查看 Drupal 如何提供变量,如 !username 等。如果您需要代码示例,请不要犹豫在此处发表评论。
希望这会有所帮助,
【讨论】:
假设您创建了一个带有标记的 html 模板(例如 [[[FROM]]]),那么您需要使用 StringBuilder。例如:
public static string GetEmailTemplateContent(string path)
{
string emailHtmlTemplate = "";
StreamReader rdr = null;
try
{
rdr = new StreamReader(path);
emailHtmlTemplate = rdr.ReadToEnd();
}
catch (IOException ex)
{
throw new Exception(ex.Message.ToString());
}
finally
{
if (rdr != null)
{
rdr.Close();
rdr.Dispose();
}
}
return emailHtmlTemplate;
}
然后,您只需替换标记并将电子邮件正文填充到更改后的模板即可。
string emailTemplate = GetEmailTemplateContent("C:\\somepath");
emailTemplate = emailTemplate.Replace("[[[FROM]]]", from);
MailMessage email = new MailMessage();
email.Body = emailText;
【讨论】: