使用MsgKit创建的.msg文件无法发送,打开后显示已发送状态
问题:MsgKit创建的.msg文件打开显示已发送状态,无法编辑发送
我用MsgKit创建了一个.msg文件,打开后它显示为已发送状态,但我希望打开后能添加邮件正文并完成发送操作。
相关C#代码如下:
using (var email = new Email( new Sender("me@mail.com", "Me"), new Representing("me@mail.com", "Me"), messageSubject)) { if (to != null) { int t = 0; while (t < to.GetLength(0)) { if (!string.IsNullOrEmpty(to[t])) { email.Recipients.AddTo(to[t], to[t]); } t++; } } email.Subject = "SUBJECT"; email.Attachments.Add(@"c:\Temp\Cover Page_25.010398_2025515175.pdf"); email.Save(@"c:\Temp\email.msg"); var ps = new ProcessStartInfo(@"c:\Temp\Email.msg") { UseShellExecute = true, Verb = "open" }; Process.Start(ps); }
打开后的界面呈现已发送状态,无法编辑正文和执行发送操作。
解决方案
默认情况下,MsgKit创建的邮件会被标记为已发送状态,只需在保存邮件前添加一行代码,将邮件标记为未发送(草稿)状态即可:
在email.Save()之前添加:
email.MessageFlags = MessageFlags.MsgFlagUnsent;
修改后的完整代码:
using (var email = new Email( new Sender("me@mail.com", "Me"), new Representing("me@mail.com", "Me"), messageSubject)) { if (to != null) { int t = 0; while (t < to.GetLength(0)) { if (!string.IsNullOrEmpty(to[t])) { email.Recipients.AddTo(to[t], to[t]); } t++; } } email.Subject = "SUBJECT"; email.Attachments.Add(@"c:\Temp\Cover Page_25.010398_2025515175.pdf"); // 设置邮件为未发送(草稿)状态 email.MessageFlags = MessageFlags.MsgFlagUnsent; email.Save(@"c:\Temp\email.msg"); var ps = new ProcessStartInfo(@"c:\Temp\Email.msg") { UseShellExecute = true, Verb = "open" }; Process.Start(ps); }
添加该设置后,打开生成的.msg文件时会进入草稿编辑界面,可正常添加正文并发送。
内容的提问来源于stack exchange,提问作者Raging Hamster
相关产品推荐
相关产品推荐

