Utilizar automatización para enviar un mensaje de Microsoft Exchange

Seleccione idioma Seleccione idioma
Id. de artículo: 153311 - Ver los productos a los que se aplica este artículo
Avanzado: Requiere codificación experto, interoperabilidad, conocimientos y multiusuario.

Expandir todo | Contraer todo

Resumen

Este artículo describe cómo puede utilizar automatización para crear y enviar un mensaje de Microsoft Exchange.

Este artículo se supone que está familiarizado con Visual Basic para aplicaciones y que puede crear aplicaciones de Microsoft Access mediante las herramientas de programación que se proporcionan con Microsoft Access. Para obtener más información acerca de Visual Basic para aplicaciones, vea la versión del manual "Creación de aplicaciones con Microsoft Access".

Nota : este artículo utiliza Microsoft Exchange, un producto que se debe adquirir y instalarse por separado. El componente Microsoft Exchange que se incluye con Windows 95 no funciona con este artículo.

Más información

Nota: El código siguiente no funcionen correctamente si ha instalado la actualización de seguridad de correo electrónico de Microsoft Outlook. Para obtener información adicional acerca de esta actualización, dependiendo de la versión de Outlook que tenga, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
262631OL2000: Información acerca de la actualización de seguridad correo electrónico de Outlook
262617OL98: Información acerca de la actualización de seguridad de correo electrónico de Outlook
Puede enviar un mensaje de correo MAPI con el método SendObject de Microsoft Access. Sin embargo, no se puede adjuntar archivos externos o establecer determinadas propiedades de mensaje, como importancia del mensaje, al utilizar el método SendObject .

En enviar un mensaje MAPI a través de automatización, hay cinco pasos principales:
  • Inicializar y iniciar sesión en la sesión MAPI.
  • Crear un nuevo mensaje y agregue el mensaje a la Bandeja de salida.
  • Agregue a los destinatarios (para, CC y CCO) y, a continuación, resolver los nombres.
  • Establecer las propiedades válidas, tales como texto, asunto e importancia.
  • Enviar el mensaje.
Para enviar mediante programación un mensaje de Microsoft Exchange, siga estos pasos:
  1. Cree una carpeta en la unidad C que se denomina ejemplos.
  2. Cree un archivo de texto ejemplo que se denomina Customers.txt en la carpeta ejemplos.
  3. Cree un módulo y, a continuación, escriba la línea siguiente en la sección Declaraciones si no está ya allí:

    Option Explicit
  4. En el menú Herramientas , haga clic en referencias .
  5. En el cuadro referencias , haga clic en para seleccionar Biblioteca de objetos de mensajería OLE 1.0 y, a continuación, haga clic en Aceptar .

    Nota : esta biblioteca de objeto no está disponible en las referencias lista, haga clic en Examinar y busque la carpeta Windows\System para el archivo Mdisp32.tlb.
  6. Escriba el siguiente procedimiento:
     '--------------------------------------------------------------------
        ' This procedure sets an object variable to the MAPI Session object
        ' using the CreateObject() function. Then, it logs on to the session
        ' using a predefined profile. As soon as you are logged on,
        ' the procedure creates
        ' a new message and adds it to the Messages collection of the Outbox
        ' of the user. Then, it creates two recipients (one on the TO: line and
        ' one on the CC: line) and then adds both to the Recipients collection
        ' of the message. Next, it resolves the names of all recipients.
        ' Then, it attaches a sample file before filling in the Subject,
        ' Text, and Importance attributes of the message.
        '--------------------------------------------------------------------
         Sub SendMAPIMessage()
            Dim MapiSession As Object
            Dim MapiMessage As Object
            Dim MapiRecipient As Object
            Dim MapiAttachment As Object
            Dim Recpt
            Dim errObj As Long
            Dim errMsg
    
            On Error GoTo MAPITrap
            ' Create the MAPI Session.
            Set MapiSession = CreateObject("Mapi.Session")
    
            ' Log on to the session. If the ProfileName argument is omitted,
            ' Microsoft Exchange prompts you for the profile to use. If the
            ' profile name is incorrect, you receive a runtime error.
             MapiSession.Logon profilename:="Steven Buchanan"
    
            ' Add a message to the Outbox.
            Set MapiMessage = MapiSession.Outbox.Messages.Add
    
            ' Add the recipients of the message. Note, each recipient must be
            ' added separately to the Recipients collection of the Message
            ' object.
    
            With MapiMessage
                Set MapiRecipient = MapiMessage.Recipients.Add
                MapiRecipient.Name = "Nancy Davolio"
                MapiRecipient.Type = mapiTo
                Set MapiRecipient = MapiMessage.Recipients.Add
                MapiRecipient.Name = "Andrew Fuller"
                MapiRecipient.Type = mapiCc
                Set MapiRecipient = MapiMessage.Recipients.Add
                MapiRecipient.Name = "Michael Suyama"
                MapiRecipient.Type = mapiBcc
    
                ' Resolve each recipient's e-mail name.
                ' Starting with Outlook version 8.03 (ref. Q172623) 
                ' OLE Messaging 1.0 was replaced with Active Messaging 1.1.
                ' Outlook 98 (version 8.5) replaced Active Messaging
                ' with Microsoft CDO (Collaborative Data Objects) 1.21.
                ' OLE Messaging 1.0 uses a zero-based Recipients collection;
                ' Active Messaging 1.1 and Microsoft CDO 1.21 are 1-based.
                For Recpt = 1 To .Recipients.Count
                   .Recipients(Recpt).Resolve showdialog:=False
                Next
    
                ' Attach a file to the message.
                Set MapiAttachment = MapiMessage.Attachments.Add
                With MapiAttachment
                    .Name = "Customers.txt"
                    .Type = mapiFileData
                    .Source = "C:\Examples\Customers.txt"
                    .ReadFromFile filename:="C:\Examples\Customers.txt"
                    .position = 2880
                End With
    
                ' Assign the text, subject, and importance of the message.
                .subject = "My Subject"
                .Text = "This is the text of my message." & vbCrLf & vbCrLf
                .importance = mapiHigh
    
                ' View the message in Microsoft Exchange before sending. Set
                ' the ShowDialog argument to False if you want to send the
                ' message without viewing it in Microsoft Exchange.
                .Send showdialog:=True
            End With
            Set MapiSession = Nothing  ' Clear the object variable.
    
         MAPIExit:
            Exit Sub
    
         MAPITrap:
            errObj = Err - vbObjectError  ' Strip out the OLE automation error.
            Select Case errObj
                Case 275                  ' User cancelled sending of message.
                    Resume MAPIExit
                Case Else
                    errMsg = MsgBox("Error " & errObj & " was returned.")
                    Resume MAPIExit
                End Select
         End Sub
    					
  7. Asegúrese de reemplazar el nombreDePerfil mapisession.Login y la MapiRecipient.name con nombres de correo electrónico válida.
  8. Para probar este procedimiento, escriba la línea siguiente en la ventana Depuración y, a continuación, presione ENTRAR:

    SendMAPIMessage

    Tenga en cuenta que Microsoft Exchange se invoca con el mensaje de ejemplo listo para enviar.

Referencias

Para obtener más información acerca de automatización, busque automatización en el índice de Ayuda o pregunte al Ayudante de Office de Microsoft Access 97.

Para obtener más información acerca de hacer referencia a bibliotecas de objetos, busque el índice para bibliotecas de objeto de la Ayuda o pregunte al Ayudante de Office de Microsoft Access 97.

Propiedades

Id. de artículo: 153311 - Última revisión: viernes, 19 de enero de 2007 - Versión: 3.3
La información de este artículo se refiere a:
  • Microsoft Access 97 Standard Edition
  • Microsoft Access 95 Standard Edition
Palabras clave: 
kbmt kbhowto kbinterop kbprogramming KB153311 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 153311
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com