保存Outlook中的嵌入式图像和文件

时间:2017-01-19 11:21:27

标签: c# email outlook

我想从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);
            }
        }
    }
}   

0 个答案:

没有答案