我想在添加一些评论后转发电子邮件。原始电子邮件另存为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#),重发的参数是做什么用的?如果我将它们设置为我对转发电子邮件的评论未设置?并清楚地重寄了该电子邮件,没有任何更改?
答案 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}}属性。