C# 电子邮件中的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();

我正试图发送一封带有C代码的电子邮件。电子邮件正文包含xml和html标记。已成功发送和接收电子邮件。所有HTML标记都已正确呈现和显示

然而,xml正在失去格式。这就是我用来修饰xml的代码

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("<", "&lt;");
    string greaterThan = lessThan.Replace(">", "&gt;");
    string quote = greaterThan.Replace(@"""", "&quot;");
    outXML = quote.Replace("'", "&apos;");
    return outXML;
    }
私有静态字符串XMLEscape(字符串inputXML){
字符串outXML=“”;
字符串与=inputXML.Replace(“&”、“&;”);
字符串lessThan=ampersand.Replace(“,”);
字符串引号=大于。替换(@“”,“”);
outXML=quote.Replace(“”,“&apos;”);
返回outXML;
}

非常感谢您的帮助

您是如何在HTML中转义xml标记的?很抱歉,我忘了将其包括在内。描述是用转义xml代码更新的,我将使用它,而不是尝试滚动您的own@RonBeyer我试过了,但没用失败是什么?HtmlEncode会解决标签问题。肯定还有其他问题。可以肯定吗xml字符串将添加到电子邮件正文中。