我正在使用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);
答案 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文章中了解有关该内容的更多信息。