C# Outlook附件包含一些未知图像“;image00001";如果我加上「;“展望项目”;通过链接的附件或共享文档的类型

C# Outlook附件包含一些未知图像“;image00001";如果我加上「;“展望项目”;通过链接的附件或共享文档的类型,c#,outlook,outlook-addin,C#,Outlook,Outlook Addin,我的目标是检查电子邮件中的所有附件,并显示一条消息,建议将文件上传到云端,并通过链接共享文件,即使其中一个文件位于PC上 目前,如果我从PC添加一些文件,在这种情况下 item.Attachments.Count=1; att.Type=Outlook.OlAttachmentType.olByValue; 我可以这样检查 public bool IsAttachmentLocal(Outlook项目) { foreach(Outlook.Attachment在item.Attachments

我的目标是检查电子邮件中的所有附件,并显示一条消息,建议将文件上传到云端,并通过链接共享文件,即使其中一个文件位于PC上

目前,如果我从PC添加一些文件,在这种情况下

item.Attachments.Count=1;
att.Type=Outlook.OlAttachmentType.olByValue;
我可以这样检查

public bool IsAttachmentLocal(Outlook项目)
{
foreach(Outlook.Attachment在item.Attachments中)
{ 
if(att.Type==Outlook.OlAttachmentType.olByValue&&null==att.PathName)
返回true;
}
}
但如果我通过云位置添加了一些“outlookitem”(消息)或文件,则Item.Attachments.Cout=5。 此数组的第一个元素是类型为olEmbeddeditem或7的文件(对于云位置文件)。 接下来的四个元素是一些名为“image00001”的未知图像,它们具有

att.Type=Outlook.OlAttachmentType.olByValue;
通过了我的检查

我怀疑它可能是缩略图


在这种情况下,如何检查文件位置?我可以通过某种方式传递这些图像吗?

似乎您只需要在Outlook中检测嵌入的图像。以下是用于添加此类图像的示例代码:

Attachment attachment = newMail.Attachments.Add(@"E:\Pictures\image001.jpg"
    , OlAttachmentType.olEmbeddeditem, null, "Some image display name");

string imageCid = "image001.jpg@123";   

attachment.PropertyAccessor.SetProperty(
 "http://schemas.microsoft.com/mapi/proptag/0x3712001E", imageCid);

newMail.HTMLBody = String.Format("<body><img src=\"cid:{0}\"></body>", imageCid);

7是“通过WEB附加”。附件本身必须是*.url文件。其格式如下所示

[InternetShortcut]
URL=http://www.mysite.demo/myfile.ext

这很有趣,因为当我将文件拖放到outlook日历时,我会得到这种类型(7)。我不能直接从VBA本身添加它。outlook在拖放本地文件时是否生成Internet快捷方式?
[InternetShortcut]
URL=http://www.mysite.demo/myfile.ext