vbaoutlookcdo.messageoutlook-object-model

How to add an embedded image to an HTML message in Outlook 2010


I have Office 2003 VBA code that uses the technique described here to embed an image in an HTML message using undocumented MAPI properties and CDO 1.21.

CDO 1.21 is no longer supported, but according to MSDN, most of its functionality is now incorporated into the Outlook 2010 object model.

Where can I find a sample that embeds images in an Outlook 2010 message using the Outlook 2010 object model?


Solution

  • Found the answer here.

    The key bits being:

    Const PR_ATTACH_MIME_TAG = "http://schemas.microsoft.com/mapi/proptag/0x370E001E"        
    Const PR_ATTACH_CONTENT_ID = "http://schemas.microsoft.com/mapi/proptag/0x3712001E"        
    Const PR_ATTACHMENT_HIDDEN = "http://schemas.microsoft.com/mapi/proptag/0x7FFE000B" 
    
    ...
    
    Set colAttach = l_Msg.Attachments        
    For x = 1 To Items.Count            
        Set l_Attach = colAttach.Add(Items.Item(x))            
        Set oPA = l_Attach.PropertyAccessor            
        oPA.SetProperty PR_ATTACH_MIME_TAG, ItemTypes.Item(x)            
        oPA.SetProperty PR_ATTACH_CONTENT_ID, "item" & x            
        oPA.SetProperty PR_ATTACHMENT_HIDDEN, True        
    Next