我在处理附件时遇到问题。场景如下,
- 我有一封电子邮件(邮件 A)有一个附件,
- 附加的电子邮件(邮件 B)还有 1 个附件(一些文件类型,如 pdf、doc、xls 等) 在 Outlook 中,我
- 打开附加的电子邮件(邮件 B),在 Outlook 功能区中,我有一个操作按钮。
- 当我单击操作按钮时,我正在检查附件是否是嵌入附件,然后将其从邮件正文中删除并将其保存到本地磁盘。前任。我都试过了
safeMailCopy.Attachments.Item(i).Delete();
和
safeMailCopy.Attachments.Remove(i);
....
safeMailCopy.SaveAs(Path.Combine(Settings.Instance.DocumentToAddDirectoryFullName,
messageFileName));
但是当我打开本地保存的副本时,我可以看到附件仍然存在于邮件中,它没有被删除。
但是,如果我有一封带有附件的常规电子邮件,那么我可以删除附件并将其保存在本地,没有任何问题。
问题是 Outlook
无法看到通过 MAPI 所做的更改,直到该项目被 Outlook 完全取消引用并重新打开。由于不会阻止删除附件,因此可以使用分配给 SafeMailItem.Item 属性的原始 Outlook 对象删除附件。