Share via


How to: Programmatically attach files to Outlook email items

Applies to: yesVisual Studio noVisual Studio for Mac

Note

This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

This example attaches a file to a new mail item and sends it to Armando Pinto. The example assumes a person named Armando Pinto exists as the recipient.

Applies to: The information in this topic applies to VSTO Add-in projects for Outlook. For more information, see Features available by Office application and project type.

Example

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    AddAttachment();
}

private void AddAttachment()
{
    Outlook.MailItem mail =
        this.Application.CreateItem
        (Outlook.OlItemType.olMailItem)
        as Outlook.MailItem;

    mail.Subject = "An attachment for you!";

    OpenFileDialog attachment = new OpenFileDialog();

    attachment.Title = "Select a file to send";
    attachment.ShowDialog();

    if (attachment.FileName.Length > 0)
    {
        mail.Attachments.Add(
            attachment.FileName,
            Outlook.OlAttachmentType.olByValue,
            1,
            attachment.FileName);
        mail.Recipients.Add("Armando Pinto ");
        ((Outlook._MailItem)mail).Send();
    }
}
Private Sub ThisAddIn_Startup(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles Me.Startup
    AddAttachment()
End Sub

Private Sub AddAttachment()
    Dim mail As Outlook.MailItem = _
    TryCast(Me.Application.CreateItem _
    (Outlook.OlItemType.olMailItem),  _
    Outlook.MailItem)

    mail.Subject = "An attachment for you!"

    Dim attachment As OpenFileDialog = _
        New OpenFileDialog()

    attachment.Title = "Select a file to send"
    attachment.ShowDialog()

    If attachment.FileName.Length > 0 Then
        mail.Attachments.Add( _
            attachment.FileName, _
            Outlook.OlAttachmentType.olByValue, _
            1, _
            attachment.FileName)
        mail.Recipients.Add("Armando Pinto")
        mail.Send()
    End If
End Sub

See also