Saving only the REAL attachments of an Outlook MailItem

后端 未结 3 1205
悲哀的现实
悲哀的现实 2021-02-08 14:10

I\'m currently developing an Outlook Addin which saves MailItems and Attachments in my MSSQL Database.

I got a method where I save the MailItem with all it\'s attachment

相关标签:
3条回答
  • 2021-02-08 14:26

    This worked for me:

    var test = attachments[i].PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E");
    if (string.IsNullOrEmpty((string)test))
    {
           //attachment
    }
    else
    {
           //embedded image
    }
    
    0 讨论(0)
  • 2021-02-08 14:28

    Use this code answered here :

    if (mailItem.Attachments.Count > 0)
            {
                // get attachments
                foreach (Attachment attachment in mailItem.Attachments)
                {
                    var flags = attachment.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x37140003");
    
                    //To ignore embedded attachments -
                    if (flags != 4)
                    {
                        // As per present understanding - If rtF mail attachment comes here - and the embeded image is treated as attachment then Type value is 6 and ignore it
                        if ((int)attachment.Type != 6)
                        {
    
                            MailAttachment mailAttachment = new MailAttachment { Name = attachment.FileName };
                            mail.Attachments.Add(mailAttachment);
                        }
    
                    }
    
                }
            }
    
    0 讨论(0)
  • 2021-02-08 14:29

    Depends on how you define 'real' or 'proper' attachments. I'm going to assume you want to disregard all images that are embedded in the email. These are also attachments but are referenced in the actual body of the html email.

    See this answer for an explanation on how attachments are embedded. The key is to disregard attachments that have a Content-ID value that is referenced by an image tag within the body of the email itself.

    0 讨论(0)
提交回复
热议问题