目前,我通过将mailItem编写为MSG文件来编码mailItem,其中包含:
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 );
我看起来很长很难,没有把MSG写到硬盘上就找不到办法。
我是否有办法在不需要写入硬盘的情况下执行此操作?
谢谢!
答案 0 :(得分:0)
Per Justin Cooney(强调他的):
Outlook.MailItem 对象实际上是 COM 对象,无法动态保存/加载。要实现所需的保存/加载功能,Outlook
首先需要转换为 .MSG 文件。
这也是我想做的事情,但由于上述限制,唉不能。我目前正在将文件写入临时位置,传递路径,转换为Base64字符串并在成功后删除该文件。
答案 1 :(得分:0)
不,不使用OOM。它可以在扩展MAPI(C ++或Delphi)中使用。