将HTML文件分配给Message.c#的主体
本文关键字:主体 Message HTML 文件分配 | 更新日期: 2023-09-27 18:11:04
我想给邮件主体分配一个完整的HTML文件,我想把这个文件分配给消息主体,我输入:
消息。isbody = true;
我可以用它来逐行赋值
"Welcome to our system",
"<b>Thanks to join to our system !<br /><br />",
但是有没有一种方法来分配完整的HTML文件的主体?我有一个HTML文件,包含设计的电子邮件正文。
希望清楚。
您应该创建一个EmailTemplate
。
- 添加新文件夹到项目中,例如
EmailTemplates
- 添加新的文本文件到
EmailTemplates
文件夹,例如EmailTemplate.txt
- 在
EmailTemplate.txt
中编写HTML模板 然后在代码中:
string AppPath = Request.PhysicalApplicationPath; StreamReader sr = new StreamReader(AppPath + "EmailTemplates/EmailTemplate.txt"); message.IsBodyHtml = true; message.Body = sr.ReadToEnd(); sr.Close();
直接将文件添加到您的项目资源中:
项目属性>资源>添加现有文件
代码中使用:Resources。ResourceName
我最喜欢的方法是使用T4模板
创建T4模板文件
<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ parameter name="Email" type="System.String" #>
<p>Here is text for <#= Email #></p>
可以在发送邮件前处理模板:
MyTemplate template = new MyTemplate
{
Session = new Dictionary<string, object>
{
{ "Email", "some@email.com" }
}
};
template.Initialize();
string body = template.TransformText();
最后用html正文发送电子邮件:
MailMessage message = new MailMessage(this.emailConfiguration.SmtpUser, email)
{
IsBodyHtml = true,
Body = body,
Subject = "Your email subject"
};
我更喜欢这个解决方案(html主体/文本主体)的情况,因为:
- 模板干净,作为解决方案 的一部分
- 你可以添加自定义变量到模板