Uso de Automation para enviar un mensaje de Microsoft Outlook mediante Access 2000

Este artículo se aplica a una base de datos de Microsoft Access (.mdb) y a un proyecto de Microsoft Access (.adp).

Resumen

En este artículo se muestra cómo usar Automation para crear y enviar un mensaje de Microsoft Outlook en Microsoft Access 2000.

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía, ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Se considera que está familiarizado con el lenguaje de programación que se muestra y con las herramientas para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos adaptados a sus necesidades específicas.

Nota:

Es posible que el código siguiente no funcione correctamente si ha instalado la actualización de seguridad de correo electrónico de Outlook.

Puede usar el SendObject método para enviar un mensaje de correo MAPI mediante programación en Microsoft Access. Sin embargo, el SendObject método no proporciona acceso a una funcionalidad de correo completa, como la capacidad de adjuntar un archivo externo o establecer la importancia del mensaje. En el ejemplo siguiente se usa Automation para crear y enviar un mensaje de correo que puede usar para aprovechar muchas características de Microsoft Outlook que no están disponibles con el SendObject método .

Hay seis pasos principales para enviar un mensaje de correo de Microsoft Outlook mediante Automation, como se indica a continuación:

  1. Inicialice la sesión de Outlook.
  2. Cree un nuevo mensaje.
  3. Agregue los destinatarios (A, CC y BCC) y resuelva sus nombres.
  4. Establezca propiedades válidas, como Subject, Body e Importance.
  5. Agregue datos adjuntos (si los hubiera).
  6. Mostrar o enviar el mensaje.

Envío de un mensaje de correo de Microsoft Outlook mediante programación

  1. Cree un archivo de texto de ejemplo denominado Customers.txt en la carpeta C:\Mis documentos.

  2. Inicie Microsoft Access y abra la Northwind.mdb de base de datos de ejemplo.

  3. Cree un módulo y escriba la siguiente línea en la sección Declaraciones si aún no está allí:

    Option Explicit

  4. En el menú Herramientas , seleccione Referencias.

  5. En el cuadro Referencias , seleccione la Biblioteca de objetos de Microsoft Outlook 9.0 y, a continuación, seleccione Aceptar.

    Nota:

    Si la biblioteca de objetos de Microsoft Outlook 9.0 no aparece en el cuadro Referencias disponibles , busque el archivo Msoutl9.olb en el disco duro. Si no puede encontrar este archivo, debe ejecutar el programa de instalación de Microsoft Outlook para instalarlo antes de continuar con este ejemplo.

  6. Escriba el procedimiento siguiente en el nuevo módulo:

    Sub SendMessage(Optional AttachmentPath)
        Dim objOutlook As Outlook.Application
        Dim objOutlookMsg As Outlook.MailItem
        Dim objOutlookRecip As Outlook.Recipient
        Dim objOutlookAttach As Outlook.Attachment
    
        ' Create the Outlook session.
        Set objOutlook = CreateObject("Outlook.Application")' Create the message.
        Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
    
        With objOutlookMsg
        ' Add the To recipient(s) to the message.
        Set objOutlookRecip = .Recipients.Add("Nancy Davolio")
        objOutlookRecip.Type = olTo
    
        ' Add the CC recipient(s) to the message.
        Set objOutlookRecip = .Recipients.Add("Andrew Fuller")
        objOutlookRecip.Type = olCC
    
        ' Set the Subject, Body, and Importance of the message.
        .Subject = "This is an Automation test with Microsoft Outlook"
        .Body = "Last test - I promise." & vbCrLf & vbCrLf
        .Importance = olImportanceHigh 'High importance
    
        ' Add attachments to the message.
        If Not IsMissing(AttachmentPath) Then
        Set objOutlookAttach = .Attachments.Add(AttachmentPath)
        End If
    
        ' Resolve each Recipient's name.
        For Each objOutlookRecip In .Recipients
        objOutlookRecip.Resolve
        If Not objOutlookRecip.Resolve Then
        objOutlookMsg.Display
        End If
        Next
        .Send
    
        End With
        Set objOutlookMsg = Nothing
        Set objOutlook = Nothing
    End Sub
    
  7. Para probar este procedimiento, escriba la línea siguiente en la ventana Inmediato y presione ENTRAR:

    SendMessage "C:\My Documents\Customers.txt"

    Para enviar el mensaje sin especificar datos adjuntos, omita el argumento al llamar al procedimiento, como se indica a continuación:

    SendMessage