C# 电子邮件中的xml格式
我正试图发送一封带有C代码的电子邮件。电子邮件正文包含xml和html标记。已成功发送和接收电子邮件。所有HTML标记都已正确呈现和显示 然而,xml正在失去格式。这就是我用来修饰xml的代码C# 电子邮件中的xml格式,c#,html,xml,mailmessage,C#,Html,Xml,Mailmessage,我正试图发送一封带有C代码的电子邮件。电子邮件正文包含xml和html标记。已成功发送和接收电子邮件。所有HTML标记都已正确呈现和显示 然而,xml正在失去格式。这就是我用来修饰xml的代码 static string PrettyXml(string xml){ var stringBuilder = new StringBuilder(); var element = XElement.Parse(xml); var settings = new XmlWriterSettings();
static string PrettyXml(string xml){
var stringBuilder = new StringBuilder();
var element = XElement.Parse(xml);
var settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.Indent = true;
//settings.NewLineHandling = NewLineHandling.NewLineOnAttributes = true;
using (var xmlWriter = XmlWriter.Create(stringBuilder, settings))
{
element.Save(xmlWriter);
}
return stringBuilder.ToString();
}
这就是我发送电子邮件的方式
MailMessage mm = new MailMessage(fromField, toField, subject, emailBody);
mm.BodyEncoding = Encoding.UTF8;
//
if (cc != string.Empty)
{
MailAddress copy = new MailAddress(cc);
mm.CC.Add(copy);
}
//
mm.IsBodyHtml = bodyHTML;
mm.Priority = MailPriority.High;
//
SmtpClient client = new SmtpClient();
client.ServicePoint.MaxIdleTime = 1000;
client.EnableSsl = enableSsl;
client.Send(mm);
下面是我如何转义xml的
private static string XMLEscape(string inputXML){
string outXML = "";
string ampersand = inputXML.Replace("&", "&");
string lessThan = ampersand.Replace("<", "<");
string greaterThan = lessThan.Replace(">", ">");
string quote = greaterThan.Replace(@"""", """);
outXML = quote.Replace("'", "'");
return outXML;
}
私有静态字符串XMLEscape(字符串inputXML){
字符串outXML=“”;
字符串与=inputXML.Replace(“&”、“&;”);
字符串lessThan=ampersand.Replace(“,”);
字符串引号=大于。替换(@“”,“”);
outXML=quote.Replace(“”,“&apos;”);
返回outXML;
}
非常感谢您的帮助您是如何在HTML中转义xml标记的?很抱歉,我忘了将其包括在内。描述是用转义xml代码更新的,我将使用它,而不是尝试滚动您的own@RonBeyer我试过了,但没用失败是什么?HtmlEncode会解决标签问题。肯定还有其他问题。可以肯定吗xml字符串将添加到电子邮件正文中。