我想将完整的HTML文件分配给电子邮件正文,我想将此文件分配给邮件正文,我把:
message.IsBodyHtml = true;
我可以用它来逐行分配
"Welcome to our system",
"<b>Thanks to join to our system !<br /><br />",
但是有没有办法将完整的HTML文件分配给正文?我有一个包含电子邮件正文设计的HTML文件。
希望清楚。 在此先感谢
答案 0 :(得分:1)
您应该创建EmailTemplate
。
EmailTemplates
EmailTemplates
文件夹,例如EmailTemplate.txt
EmailTemplate.txt
然后在代码中:
string AppPath = Request.PhysicalApplicationPath;
StreamReader sr = new StreamReader(AppPath + "EmailTemplates/EmailTemplate.txt");
message.IsBodyHtml = true;
message.Body = sr.ReadToEnd();
sr.Close();
答案 1 :(得分:0)
只需将文件添加到项目资源中:
项目属性&gt;资源&gt;添加现有文件
在代码中使用:Resources.ResourceName
答案 2 :(得分:0)
我最喜欢的方式是使用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正文/文本正文),因为: