我有一个用c#编写的小应用程序作为我想用来发送电子邮件的控制台应用程序。我计划将电子邮件存储在xml文件中,以及邮件需要的其他信息,如主题。但是,似乎存在问题,因为XML文件不喜欢</br>
个字符。
我想知道为了存储html电子邮件我应该做些什么我只需要在单独的html文件中使用html,然后将每行读入StreamReader对象?
答案 0 :(得分:13)
最简单的方法是将HTML内容存储在CDATA section:
中<mail>
<subject>Test</subject>
<body>
<![CDATA[
<html>
...
</html>
]]>
</body>
</mail>
答案 1 :(得分:4)
使用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>
答案 2 :(得分:3)
您可以在XML中使用CDATA部分 - here,您可以阅读它。
答案 3 :(得分:3)
您可以将HTML存储为CDATA。
但是看看你想要做什么,你可能希望看一下System.Web.UI.WebControls.MailDefinition类,因为它已经包含了使用邮件模板的合理方式。
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);
}