Outlook未显示附件

时间:2015-05-06 09:49:53

标签: c# outlook

我正在使用Outlook.Application和Outlook.MailItem对象在我的C#桌面应用程序中打开Outlook。我的展望并没有显示附件,但是当我向自己发送邮件时,我会收到带附件的邮件。但是在发送邮件之前它没有显示(当outlook打开时)。我正在使用Outlook 2007.以下是我的代码:

Outlook.Application oApp = new Outlook.Application();
Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
// Log on by using a dialog box to choose the profile.
oNS.Logon(Missing.Value, Missing.Value, true, true);


 // Create a new mail item.
        Outlook.MailItem oMsg =         (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
......
 //Check if we need to add attachments
if (_files.Count > 0)
{
   foreach (string attachment in _files)
   {
             oMsg.Attachments.Add(attachment,Outlook.OlAttachmentType.olByValue,null,null);
   }
}   

 oMsg.Save();
 oMsg.Display(false);

1 个答案:

答案 0 :(得分:0)

当然,Type.Missing用于省略参数并使用COM加载项中的默认值。

此外,我建议打破调用链并在单独的代码行上声明每个属性或方法调用。它将允许立即释放每个底层COM对象。

完成使用后,使用System.Runtime.InteropServices.Marshal.ReleaseComObject释放Outlook对象。如果您的加载项尝试枚举存储在Microsoft Exchange Server上的集合中超过256个Outlook项目,这一点尤为重要。如果您未及时发布这些对象,则可以达到Exchange对任何时候打开的最大项目数的限制。然后在Visual Basic中将变量设置为Nothing(C#中为null)以释放对该对象的引用。您可以在MSDN中的Systematically Releasing Objects文章中了解有关该内容的更多信息。