Blog - Title

June, 2009

Brijs Blogging... Looking Beyond the Obvious

  • Brijs Blogging... Looking Beyond the Obvious

    Unable to open Outlook item attached using Attachments.Add and using the olByReference flag on the Outlook 2007

    • 0 Comments

    One of our customer is sending Outlook item attached using Attachments.Add with olByReference Flag on Outlook 2007. If the recipient of the email tries to open the attached item

    will get “Microsoft Office Oulook could not complete the operation. One or more parameters values are not valid” exception.

    OlAttachErr

    To repro the issue we can use following sample VBA code snippet:

    NOTE: Following programming examples is for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This sample code assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures. This sample code is provided for the purpose of illustration only and is not intended to be used in a production environment.

    Sub SendCurrentItemAsAttach()
        Set currItem = Application.ActiveInspector.CurrentItem
        currItem.Save
        Set RequestItem = Application.CreateItem(0)
        RequestItem.Subject = "Please check attached mail"
        RequestItem.HTMLBody = "Please check attached mail" & Chr(13) 
        RequestItem.To = "test@domain.com" 
        Set myAttachments = RequestItem.Attachments
        myAttachments.Add currItem, 4 'olByReference(4)
        RequestItem.Send
        Set RequestItem = Nothing
    End Sub

    The above issue is happening because of the design changes in the Outlook 2007.

    One workaround to address the above issue is to include a hyperlink in the email using the Outlook:\\<ENTRYID> protocol to link to the existing item rather than attaching the item ByRef. So to avoid above issue we can use following VBA sample code snippet:

    Sub SendCurrentItemAsAttach()
        Set currItem = Application.ActiveInspector.CurrentItem
        currItem.Save
        Set RequestItem = Application.CreateItem(0)
        RequestItem.Subject = "Please check attached mail"
        RequestItem.HTMLBody = "Please click to open the requestl" & Chr(13) & "<a href=Outlook:\\" & currItem.EntryID & ">Click Mail</a>"
        RequestItem.To = "test@domain.com"
        RequestItem.Send
        Set RequestItem = Nothing
    End Sub

    IMP: using Outlook:EntryID approach but it would works ONLY in case of HTML/RTF mail.

    References:

Page 1 of 1 (1 items)