我想从outlook中保存嵌入的图像。在我的分析后,我发现用户可以嵌入图像,还有PDF文件等。但是在嵌入PDF或图像文件以外的情况下(在Outlook中使用“插入”菜单,然后使用“对象”选项),邮件项目附件对象也包含.mso文件(MSO文件与电子邮件附件一起发送,并包含允许在电子邮件中呈现附件的信息),我不确定是否需要保存它。
1)那么是否需要保存或处理mso文件,或者我可以忽略它并保存所有其他文件类型?
2)根据我的观察结果,即使用户嵌入pdf文件,它也会作为图像文件附加到Outlook收件箱中.png扩展名。那么我可以将所有这些图像转换为.gif,如下所示?在任何情况下都会失败吗?
if (item.Attachments.Count > 0)
{
for (int j = 1; j <= item.Attachments.Count; j++)
{
string value = item.Attachments[j].PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E");
if (!String.IsNullOrEmpty(value))
{
index++;
string tempFilename = "C:\\TestFileSave\\" + "inlineimg_" + index.ToString() + System.IO.Path.GetExtension(item.Attachments[j].FileName);
if (System.IO.Path.GetExtension(item.Attachments[j].FileName) == "mso")
{
continue;
}
item.Attachments[j].SaveAsFile(tempFilename);
string mimeType = MimeMapping.GetMimeMapping(tempFilename);
if (mimeType.Contains("image/"))
{
System.Drawing.Image Image1 = System.Drawing.Image.FromFile(tempFilename);
Image1.Save("C:\\TestFileSave\\" + "inlineimg_" + index.ToString() + ".gif", System.Drawing.Imaging.ImageFormat.Gif);
Image1.Dispose();
System.IO.File.Delete(tempFilename);
}
}
}
}