【问题标题】:Mailkit MimeKit.MimeMessage error: Unknown initialization parameter: System.Byte[]Mailkit MimeKit.MimeMessage 错误:未知初始化参数:System.Byte []
【发布时间】:2019-03-30 10:21:55
【问题描述】:

我想在添加一些评论后转发一封电子邮件。原始电子邮件保存为 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#),重新发送参数的用途是什么?如果我设置他们我对转发电子邮件的评论未设置?并且那封邮件没有任何变化就清楚地重新发送了?

【问题讨论】:

    标签: c# asp.net email mailkit


    【解决方案1】:

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

    这意味着没有采用byte[] 参数的MimeMessage 构造函数。

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

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

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

    var orgMessage = MimeMessage.Load ("sample.eml");
    

    第二次我阅读了这个很棒的答案 Forward email using MailKit (C#) 以及什么是重新发送参数?如果我设置他们我对转发电子邮件的评论未设置?并且那封邮件没有任何变化就清楚地重新发送了?

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

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

    如果您要附加原始消息(就像您正在做的那样),那么您不应该使用 MimeMessageResent 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-05
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      相关资源
      最近更新 更多