C# Mailkit MimeKit.MimeMessage错误:未知初始化参数:System.Byte[]

C# Mailkit MimeKit.MimeMessage错误:未知初始化参数:System.Byte[],c#,asp.net,email,mailkit,C#,Asp.net,Email,Mailkit,我想在添加一些评论后转发一封电子邮件。原始电子邮件保存为eml文件,所以首先我加载该文件,然后将我的评论添加到正文或附加一些新文件,然后将电子邮件重新发送到新的电子邮件地址 var mail = new MimeKit.MimeMessage(); var file = System.IO.File.ReadAllBytes("sample.eml")); var orgMessage = new MimeKit.MimeMessage(file); var builder = new Mim

我想在添加一些评论后转发一封电子邮件。原始电子邮件保存为eml文件,所以首先我加载该文件,然后将我的评论添加到正文或附加一些新文件,然后将电子邮件重新发送到新的电子邮件地址

var mail = new MimeKit.MimeMessage();
var file = System.IO.File.ReadAllBytes("sample.eml"));
var orgMessage = new MimeKit.MimeMessage(file);

var builder = new MimeKit.BodyBuilder();
builder.TextBody = "user comment";
builder.Attachments.Add(new MimeKit.MessagePart { Message = orgMessage });
mail.Body = builder.ToMessageBody();
首先,在第3行中,我得到了以下错误: 未知的初始化参数:System.Byte[]

第二,我读了这个伟大的答案和什么是resent参数?如果我设置了他们,我对转发电子邮件的评论是否未设置?那封邮件会毫无变化地清晰地转发吗

未知的初始化参数:System.Byte[]

这意味着不存在接受
字节[]
参数的
MimeMessage
构造函数

换句话说,你不能这样做:

var file = System.IO.File.ReadAllBytes("sample.eml"));
var orgMessage = new MimeKit.MimeMessage(file);
从文件加载消息的正确方法是:

var orgMessage = MimeMessage.Load ("sample.eml");
第二,我阅读了这封使用MailKit(C#)转发邮件的伟大答案,以及resent参数的用途是什么?如果我设置了他们,我对转发电子邮件的评论是否未设置?那封邮件会毫无变化地清晰地转发吗

MimeMessage.Resent*
属性仅在转发邮件而不将其附加到新邮件时使用

你只需要在我的答案中选择你链接到的3个解决方案中的1个


如果您要附加原始邮件(就像您正在做的那样),那么您不应该使用
MimeMessage
Resent
属性,非常感谢