C# 获取outlook中附件的outlookItem类型

C# 获取outlook中附件的outlookItem类型,c#,email,outlook,C#,Email,Outlook,我正在从outlook邮件中获取附件。c#在这方面有一些陷阱,但大多数都是通过一些丑陋的黑客破解的。但有一个问题我无法解决 如果我将附件添加为文件,则保存整个文件名,包括文件扩展名。因此,当我稍后将文件保存到光盘时,它已正确保存,因此我只能dblclick文件,并在正确的应用程序中打开它 但是,如果使用“附加项目”->“添加outlook项目”添加附加项目,则添加的邮件/日历/联系人不带文件扩展名。因此,如果我使用此功能将邮件添加到邮件中,则.msg文件扩展名不是文件名的一部分,当尝试将其保存到

我正在从outlook邮件中获取附件。c#在这方面有一些陷阱,但大多数都是通过一些丑陋的黑客破解的。但有一个问题我无法解决

如果我将附件添加为文件,则保存整个文件名,包括文件扩展名。因此,当我稍后将文件保存到光盘时,它已正确保存,因此我只能dblclick文件,并在正确的应用程序中打开它

但是,如果使用“附加项目”->“添加outlook项目”添加附加项目,则添加的邮件/日历/联系人不带文件扩展名。因此,如果我使用此功能将邮件添加到邮件中,则.msg文件扩展名不是文件名的一部分,当尝试将其保存到光盘时,会将其识别为outlook邮件

但是,如果我签入outlook,我可以看到为该附件添加了正确的图标,因此outlook可以知道它是否是邮件/联系人/日历项,因此信息应该在某个位置


有人知道如何找到附件中的.msg吗?

当您将Outlook项目传递给Attachments.Add时,您可以添加并创建一个嵌入邮件附件(attachment.Type=olEmbeddeditem),而不是常规的olByValue附件


顺便说一句,文件名(Attachment.filename)将始终包含.msg扩展名。当文件不存在时会出现什么情况?

您可以查找将读取文件前256个字节的代码,并查找其MIME类型。以下是一些可能有帮助的代码: