c#修改HTML内容
本文关键字:内容 HTML 修改 | 更新日期: 2023-09-27 18:05:04
我试图发送一封带有HTML正文的电子邮件,在我发送邮件之前,我想修改一些HTML。基本上就像你会在jquery,我需要改变div内的一些文本值与某些id。
我试图使用https://github.com/jamietre/CsQuery
,但我没有找到任何关于ID选择器的信息。
有人能推荐其他的解决方案吗?
这是我现在的sendEmail代码:
public static void sendEmail(String reciverMail, String Subject1, String Body1)
{
if (reciverMail.Contains('@') && reciverMail != "")
{
using (StreamReader reader = File.OpenText(HttpContext.Current.Server.MapPath("~/mail.htm")))
{
SmtpClient client = new SmtpClient();
client.UseDefaultCredentials = false;
client.Credentials = SmtpServerCredentials;
client.Host = SmtpServerAddress;
MailMessage mail = new MailMessage();
mail.From = new MailAddress(SenderAddress, SenderName1);
mail.To.Add(reciverMail);
mail.Subject = Subject1;
mail.IsBodyHtml = true;
mail.BodyEncoding = System.Text.Encoding.UTF8;
//mail.Body = Body1;
mail.Body = reader.ReadToEnd();
try
{
client.Send(mail);
}
catch (SmtpException ex)
{
string aaa = ex.Message;
}
}
}
}
你可以使用Html敏捷包:这是一个可爱的HTML解析器,通常被推荐用于这类工作。
你可以这样写:
HtmlDocument htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml("Your content");
string centralDiv = htmlDocument.DocumentNode.SelectSingleNode("//div[@id='centralDiv ']").InnerHtml;
如果这是一个c#网站(而不是桌面应用程序),你最好使用邮政(http://aboutcode.net/postal/)之类的东西来生成你的HTML模板。然后,你可以忘记DOM操作的复杂性,使用你知道的工具(使用Razor语法的视图等)。
如果你正在处理一个应用程序,Postal也支持在网站 (http://aboutcode.net/postal/outside-aspnet.html)之外工作,但该技术与生成MVC razor视图相同,因此你需要了解一点MVC/razor &观点。
你可以安装邮政免费通过NuGet。凭据将进入您的web。配置(sendgrid是一个非常好的健壮的,免费的选项,每月发送少于10,000封电子邮件)。
您的操作代码变得简单,如:
public static void sendEmail(String reciverMail, String Subject1, String Body1)
{
dynamic email = new Email("MyTemplate");
email.To = reciverMail;
email.Body1 = Body1; // Just make up your own properties to send in values!
email.Subject = Subject1;
email.Send();
}
你只需创建一个Razor视图作为模板:
。~ ' Views '电子邮件' MyTemplate.cshtml
To: @ViewBag.To
From: somewhere@mysite.com
Subject: @ViewBag.Subject
Hello,
<div>
@ViewBag.Body1
</div>
你可以看到它可以扩展到插入任意多的元素,在电子邮件的任何地方,在一个真正可读/可维护的格式。
Html,纯文本电子邮件:
Postal还支持发送您的电子邮件作为文本和 HTML版本通过提供每个电子邮件两个模板。http://aboutcode.net/postal/multi-part.html
我已经在几个项目中使用了Postal,并且发现仅维护的便利性就值得使用。对于像电子邮件模板这样简单的东西,您不应该摆弄DOM操作。您可能要求使用"DOM操作",但这是一种更实用的方法。