C# 如何将html页面存储在xml文件中?
我有一个用c#编写的小应用程序,作为我想用来发送电子邮件的控制台应用程序。我曾计划将电子邮件存储在一个xml文件中,以及邮件需要的其他信息,如主题。但是,似乎存在一个问题,因为XML文件不喜欢C# 如何将html页面存储在xml文件中?,c#,html,xml,email,C#,Html,Xml,Email,我有一个用c#编写的小应用程序,作为我想用来发送电子邮件的控制台应用程序。我曾计划将电子邮件存储在一个xml文件中,以及邮件需要的其他信息,如主题。但是,似乎存在一个问题,因为XML文件不喜欢字符 我想知道我应该怎么做才能存储一封html电子邮件?我是否只需要将正文html保存在一个单独的html文件中,然后将每一行读入StreamReader对象?最简单的方法是将html内容存储在: 试验 ... ]]> 您可以在XML中使用CDATA部分-您可以阅读相关内容。使用CDATA部分,该部分将包
字符
我想知道我应该怎么做才能存储一封html电子邮件?我是否只需要将正文html保存在一个单独的html文件中,然后将每一行读入StreamReader对象?最简单的方法是将html内容存储在:
试验
...
]]>
您可以在XML中使用CDATA部分-您可以阅读相关内容。使用CDATA部分,该部分将包含您的电子邮件HTML代码:
<?xml version="1.0"?>
<myDocument>
<email>
<![CDATA[
<html>
<head><title>My title</title></head>
<body><p>Hello world</p></body>
</html>
]]>
</email>
</myDocument>
我的头衔
你好,世界
]]>
您可以将HTML存储在XML中
但是,看看您正在尝试做什么,您可能希望看看这个类,因为它已经包含了一种合理的使用邮件模板的方法
msdn文档致力于在WinForms应用程序中使用它,但您可以简单地使用ListDictionary来填充替换内容
这里是一个简单的例子,为了说明如何使用MailDefinition,我将不详细介绍,因为它有点超出了原始问题的范围
protected MailMessage GetNewUserMailMessage(string email, string username, string password, string loginUrl)
{
MailDefinition mailDefinition = new MailDefinition();
mailDefinition.BodyFileName = "~/mailtemplates/newuser.txt";
ListDictionary replacements = new ListDictionary();
replacements.Add("<%username%>", username);
replacements.Add("<%password%>", password);
replacements.Add("<%loginUrl%>", loginUrl);
return mailDefinition.CreateMailMessage(email, replacements, this);
}
protected MailMessage GetNewUserMailMessage(字符串电子邮件、字符串用户名、字符串密码、字符串登录)
{
MailDefinition MailDefinition=新的MailDefinition();
mailDefinition.BodyFileName=“~/mailtemplates/newuser.txt”;
ListDictionary replacements=新建ListDictionary();
替换。添加(“,用户名);
替换。添加(“,密码);
替换。添加(“,loginUrl);
返回mailDefinition.CreateMailMessage(电子邮件、替换、此);
}
XML不喜欢哪些字符?我认为这不是一个好主意。它不将主体存储在对象中,而是存储在一个单独的文件中。Hi@Daniel Hilgarth true它确实意味着将主体保存在一个单独的文件中,但它确实是一个非常方便的实现。我将用一个例子来编辑我的答案。我看不出将正文的数据存储在单独的文件中是多么方便。此外,这与OP关于将电子邮件的所有数据存储在一个xml文件中的问题如何匹配?更多:它甚至支持HTML吗?这是一个有用的类,但我可能会坚持使用1个xml文件,在那里我可以放置所有东西。这在某些情况下会很好,谢谢@Pete2k,不用担心,嗯,我想知道邮件定义是否可以扩展到存储在xml文件中。。。。也许再过一天:-)
protected MailMessage GetNewUserMailMessage(string email, string username, string password, string loginUrl)
{
MailDefinition mailDefinition = new MailDefinition();
mailDefinition.BodyFileName = "~/mailtemplates/newuser.txt";
ListDictionary replacements = new ListDictionary();
replacements.Add("<%username%>", username);
replacements.Add("<%password%>", password);
replacements.Add("<%loginUrl%>", loginUrl);
return mailDefinition.CreateMailMessage(email, replacements, this);
}