Differenciate or distinguish between outlook attachment and embedded image/signature using property accessor in C#.NET

These days, outlook emails are composed in three formats; plain text, html and rtf (rich text format). If an email is in rtf and it has attachments, as well as, embedded image or signature, it poses a problem in outlook automation. When you are reading attachments in an outlook automation program, your program will recognize the embedded image/signature as an attachment. Although, it is not an attachment from the sender. So, you need to apply some sort of filtering in your loop. Here it is……

using System;
using System.Collections.Generic;
using Outlook = Microsoft.Office.Interop.Outlook;
using System.IO;

            Outlook.MailItem item = null;
            Outlook.PropertyAccessor prop;

           // intialize item to a mail item
            foreach (Outlook.Attachment atmt in item.Attachments)
            {
                            prop = atmt.PropertyAccessor;

                            string contentID = (string)prop.GetProperty(“http://schemas.microsoft.com/mapi/proptag/0x3712001E“);

                            if (contentID != “”)
                                continue;

                            else

                                   //do something

                            ; 

        }

If the ContentID is not found, it is not an actual attachment, rather an embedded image/signature.

 

posted @ 2019-04-04 15:28  -Ward-  阅读(135)  评论(0编辑  收藏  举报