我正尝试通过电子邮件发送XML文件,但是当我在收件箱中收到邮件时,xml声明中会弹出“ 3D”。
这是我的XML文件序列化后的样子
<?xml version="1.0"?>
<PositionOpeningNL xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"></<PositionOpeningNL>
这就是它在我的邮件中显示的方式
From: db6faa544039df <********-ef6b15@inbox.mailtrap.io>
Date: Fri, 15 Mar 2019 10:01:20 +0100
Subject: XML
Message-Id: <****************@DESKTOP-*********>
To: Mo <e-mail>
MIME-Version: 1.0
Content-Type: text/xml; name=debug.xml
Content-Disposition: attachment; filename=debug.xml
Content-Transfer-Encoding: quoted-printable
<?xml version=3D"1.0"?>
<PositionOpeningNL xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-insta=
nce" xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema">
</PositionOpeningNL>
我正在使用mailtrap作为邮件服务器。我不知道这是服务添加到我的XML文件中的东西,还是我需要在代码中更改的东西。
这是我序列化XML文件并发送它的方式。我正在使用MailKit:https://github.com/jstedfast/MailKit
using System;
using System.Xml.Serialization;
using System.IO;
using System.Data.SqlClient;
using MailKit;
using MailKit.Net.Smtp;
using MimeKit;
public class PositionOpeningNL
{
}
var convert = new PositionOpeningNL();
var serializer = new XmlSerializer(convert.GetType());
//serializer.Serialize(Console.Out, convert);
using (FileStream fs = new FileStream(Environment.CurrentDirectory + "//debug.xml",
FileMode.Create, FileAccess.Write))
{
serializer.Serialize(fs, convert);
//MessageBox.Show("Created");
}
var message = new MimeMessage();
var builder = new BodyBuilder();
message.From.Add(new MailboxAddress("db6faa544039df", "******-ef6b15@inbox.mailtrap.io"));
message.To.Add(new MailboxAddress("Mo", "e-mail"));
message.Subject = "XML";
builder.Attachments.Add(Environment.CurrentDirectory + "//debug.xml");
message.Body = builder.ToMessageBody();
//message.Attachments = ser;
using (var client = new SmtpClient())
{
client.ServerCertificateValidationCallback = (s, c, h, f) => true;
client.Connect("smtp.mailtrap.io", 465, false);
client.Authenticate("username", "password");
client.Send(message);
client.Disconnect(true);
}
答案 0 :(得分:0)
问题出在我正在使用的服务上。我用office365替换了邮件陷阱,并且字符不再显示。我还注意到,这两种服务的附件都没有错。邮件的原始输出可能使它看起来像文件本身中的字符。