我已经制作了程序,其中一个目的是打开OutLook客户端,用户可以在其中写下他的电子邮件,添加附件等。发送后我想获取添加到电子邮件中的所有附件,以及我的所有电子邮件程序。 我试图处理关闭事件
((Microsoft.Office.Interop.Outlook.ItemEvents_10_Event)email.oMsg).Close += new Microsoft.Office.Interop.Outlook.ItemEvents_10_CloseEventHandler(GetAttachmentsInfo);
然后
if (email.oMsg.Attachments.Count > 0)
{
foreach (Microsoft.Office.Interop.Outlook.Attachment at in email.oMsg.Attachments )
{ attachments.Add(at); }
}
email is OutlookEMail
oMsg is Email Item
attachments is List<Attachment>
但是当我关闭客户端时,附件会抛出无法找到对象的异常。以及列表中的这些。
我知道Microsoft.Office.Interop.Outlook.Attachment不是一个文件,只是类似于包含它名称和大小的文件的路径。 所以问题:在我的程序中关闭客户端之后是否可以保存附件? (不使用Email.SaveAttachments os SaveEmail方法,因为它使用时间和计算机空间)?
答案 0 :(得分:0)
您可以尝试以下两个选项:
Folder.ItemAdd
收听MailItem
文件夹的SentItems
次添加内容。Outlook.Folder sentItems = Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail) as Outlook.Folder;
sentItems.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(GetAttachmentsInfo);
MailItem.Send
事件。((Outlook.ItemEvents_10_Event)MailItem).Send += new Outlook.ItemEvents_10_SendEventHandler(GetAttachmentsInfo);