我正在尝试将XElement附加到我正在发送的SMTP邮件中。
我的代码如下所示:
XElement xmlMsg = new XElement("Test",new XElement("TestSon", "DummyValue"),new XElement("TestSon2","DummyValue"));
using (MemoryStream memoryStream = new MemoryStream())
{
byte[] contentAsBytes = Encoding.Default.GetBytes(xmlMsg.ToString());
memoryStream.Write(contentAsBytes, 0, contentAsBytes.Length);
// Set the position to the beginning of the stream.
memoryStream.Seek(0, SeekOrigin.Begin);
// Create attachment
ContentType contentType = new ContentType();
contentType.MediaType = MediaTypeNames.Text.Plain;
contentType.Name = "Conversation.xml";
Attachment attachment = new Attachment(memoryStream, contentType);
mail.Attachments.Add(attachment);
Server.Send(mail);
}
但是,我收到的电子邮件是在最后剪切的XML文件,没有最后2个字符......
我在这里错过了什么吗?
由于
答案 0 :(得分:0)
您系统上的Encoding.Default
编码是什么?
如果是UTF-16,我希望这两个字节是一个BOM(由于某种原因)不包含在字节数中。
建议:
xmlMsg.ToString()
放入局部变量,并在调试器中进行检查。memoryStream
IE中。使用尽可能少的自动重新解释(例如,由XML查看器)检查每个步骤。