C# 在内存中而不是在文件系统中将MailItem转换为MSG

C# 在内存中而不是在文件系统中将MailItem转换为MSG,c#,.net,outlook,ms-office,msg,C#,.net,Outlook,Ms Office,Msg,目前,我正在base64编码一个mailItem,方法是使用以下命令将mailItem写入MSG文件: mailItem.SaveAs(@"c:\path\to\save\mail.msg", Outlook.OlSaveAsType.olMSG); FileStream fs = new FileStream( fullPath, FileMode.Open, FileAccess.Read ); byte[] filebytes = new byte[fs.Length]; fs.R

目前,我正在base64编码一个mailItem,方法是使用以下命令将mailItem写入MSG文件:

 mailItem.SaveAs(@"c:\path\to\save\mail.msg", Outlook.OlSaveAsType.olMSG);
 FileStream fs = new FileStream( fullPath, FileMode.Open, FileAccess.Read );
 byte[] filebytes = new byte[fs.Length];
 fs.Read( filebytes, 0, Convert.ToInt32( fs.Length ) );
 string encodedData = Convert.ToBase64String( filebytes, 
 Base64FormattingOptions.InsertLineBreaks );
我已经找了很长时间,没有找到一种方法来做到这一点,而不写味精到硬盘驱动器

有没有一种方法可以在不需要写入硬盘的情况下执行此操作

谢谢

Per(强调):

Outlook.MailItem对象实际上是一个COM对象,无法动态保存/加载。要实现所需的保存/加载功能,首先需要将Outlook.MailItem对象转换为.MSG文件

这是我也想做的事情,但由于上述限制,我无法做到。我当前正在将文件写入临时位置,传递路径,转换为Base64字符串,并在成功后删除文件。

Per(强调his):

Outlook.MailItem对象实际上是一个COM对象,无法动态保存/加载。要实现所需的保存/加载功能,首先需要将Outlook.MailItem对象转换为.MSG文件


这是我也想做的事情,但由于上述限制,我无法做到。我当前正在将文件写入临时位置,传递路径,转换为Base64字符串,并在成功后删除文件。

否,不使用OOM。这在扩展MAPI(C++或Delphi)中是可能的。

否,不使用OOM。这在扩展MAPI(C++或Delphi)中是可能的