Saving only the REAL attachments of an Outlook MailItem

attachment, c#, outlook

Solution

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);
                    }

                }

            }
        }

Problem

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 attachments. But if I save all attachments the embedded images in the MailItem are also saved. Does anyone know how to save all real attachments?? I mean like the attachments in the picture below: and not the embbeded images that are in the mail body. Here is the code that I use to loop through all attachments of a MailItem and then save it: ``` foreach (Outlook.Attachment att in mailItem.Attachments) { try { att.SaveAsFile(Path.GetTempPath() + att.FileName); var fi = new FileInfo(Path.GetTempPath() + att.FileName); //Saving attachment to DB var attachment = Attachment.NieuwAttachment(att.FileName, SelectedMap.DossierNr.ToString( CultureInfo.InvariantCulture), -1, Convert.ToInt32(SelectedMap.Tag), fi); if (!Attachment.InlezenAttachment(attachment)) continue; OutlookCategories.AddAttachmentCategory(mailItem); } catch (Exception ex) { var dmsEx = new DmsException("Er is een fout opgetreden bij het opslaan van een bijlage.", ex.Message, ex); ExceptionLogger.LogError(dmsEx); } } ``` Thanks! ----------- EDIT ------------ I also posted this question on the Microsoft TechNet and I just received an answer to the question (See link below) Outlook 2007 & 2010: Save all attachments except the embedded attachments C# ----------- EDIT ------------ My problem is still not fixed, the help I got from Microsoft is useless.. So Please I really need this to be fixed!

Original source

Related problems