Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将html页面存储在xml文件中?_C#_Html_Xml_Email - Fatal编程技术网

C# 如何将html页面存储在xml文件中?

C# 如何将html页面存储在xml文件中?,c#,html,xml,email,C#,Html,Xml,Email,我有一个用c#编写的小应用程序,作为我想用来发送电子邮件的控制台应用程序。我曾计划将电子邮件存储在一个xml文件中,以及邮件需要的其他信息,如主题。但是,似乎存在一个问题,因为XML文件不喜欢字符 我想知道我应该怎么做才能存储一封html电子邮件?我是否只需要将正文html保存在一个单独的html文件中,然后将每一行读入StreamReader对象?最简单的方法是将html内容存储在: 试验 ... ]]> 您可以在XML中使用CDATA部分-您可以阅读相关内容。使用CDATA部分,该部分将包

我有一个用c#编写的小应用程序,作为我想用来发送电子邮件的控制台应用程序。我曾计划将电子邮件存储在一个xml文件中,以及邮件需要的其他信息,如主题。但是,似乎存在一个问题,因为XML文件不喜欢

字符


我想知道我应该怎么做才能存储一封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);



    }