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

时间:2018-10-25 18:01:58

标签: 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 MimeKit.BodyBuilder();
builder.TextBody = "user comment";
builder.Attachments.Add(new MimeKit.MessagePart { Message = orgMessage });
mail.Body = builder.ToMessageBody();

首先在第3行中出现此错误: 未知的初始化参数:System.Byte []

第二,我读了一个很好的答案Forward email using MailKit (C#),重发的参数是做什么用的?如果我将它们设置为我对转发电子邮件的评论未设置?并清楚地重寄了该电子邮件,没有任何更改?

1 个答案:

答案 0 :(得分:1)

  

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

这意味着没有[(141.09530289033592, f: 141.09530289033592), (390.0514031446352, f: 390.0514031446352), (484.8315227978057, f: 484.8315227978057)] 构造函数带有MimeMessage参数。

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

byte[]

从文件加载消息的正确方法是:

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

第二,我读了这个很棒的答案使用MailKit(C#)转发电子邮件,重发参数是什么?如果我将它们设置为我对转发电子邮件的评论未设置?并清楚地重寄了该电子邮件,没有任何更改?

var orgMessage = MimeMessage.Load ("sample.eml"); 属性仅在转发邮件而不将其附加到新邮件时使用。

您只需在链接的我的答案中选择3个解决方案之一。

如果您要附加原始消息(如您​​所做的那样),则不应使用MimeMessage.Resent*的{​​{1}}属性。