Cómo trabajar con la actualización de seguridad para correo electrónico de Outlook en una base de datos de Access


Usuario inexperto: se requieren conocimientos de la interfaz de usuario en equipos de usuario único.

Este artículo se aplica a un archivo de base de datos de Microsoft Access .mdb o .accdb, y a un archivo de proyecto de Microsoft Access .adp.

Síntomas


Al utilizar la acción de macro SendObject o el método SendObject de Microsoft Visual Basic para Aplicaciones (VBA), si el argumento EditMessage se establece en No, puede recibir un mensaje similar al siguiente:
Un programa está intentando enviar correo electrónico automáticamente en su nombre.
¿Desea permitirlo?
Si esto es inesperado, puede que sea un virus y debería elegir "No".
Nota: en Outlook 2007, puede recibir un mensaje similar al siguiente:
Un programa intenta enviar correo en su nombre. Si no lo espera, haga clic en Denegar y compruebe si el programa antivirus está actualizado. Para más detalles sobre seguridad del correo electrónico y cómo evitar esta advertencia, haga clic en Ayuda.
El botón del cuadro de diálogo se deshabilita durante varios segundos y, a continuación, puede hacer clic en . Si hace clic en , el mensaje de correo electrónico se envía. Si hace clic en No, el mensaje no se envía y, a continuación, puede recibir uno de los mensajes de error siguientes.

Nota En Outlook 2007, puede hacer clic en Permitir en lugar de en y puede hacer clic en Denegar en lugar de en No.

Mensajes de error que se reciben con la acción de macro SendObject

Mensaje de error 1
Microsoft Access no puede enviar un mensaje por la razón de la alerta anterior.

Resuelva el problema y, a continuación, envíe de nuevo el mensaje.
Mensaje de error 2
Microsoft Office Access no puede enviar este mensaje de correo electrónico. Antes de intentar enviar un mensaje de correo electrónico desde Microsoft Office Access, resuelva el problema identificado en el mensaje anterior o configure el equipo para enviar y recibir mensajes de correo electrónico.

Mensaje de error que se recibe con el método SendObject de VBA

Mensaje de error de Access 2003:
Error en tiempo de ejecución '2293':

Microsoft Access no puede enviar un mensaje por la razón de la alerta anterior.
Mensaje de error para Access 2007:
Error en tiempo de ejecución '2293':

Microsoft Office Access no puede enviar este mensaje de correo electrónico.

Causa


Cuando aplica la actualización de seguridad para el correo electrónico de Microsoft Outlook, ésta proporciona niveles adicionales de protección contra los mensajes de correo electrónico malintencionados. Esta actualización de seguridad cambia la manera en que Outlook trata los datos adjuntos y la forma en que Outlook se puede controlar mediante programación.

Nota: la actualización de seguridad para correo electrónico de Outlook se incluye con Microsoft Outlook 2002, Microsoft Office Outlook 2003 y Microsoft Office Outlook 2007.

Solución


Para evitar este problema, puede personalizar el comportamiento de la actualización de seguridad para correo electrónico de Outlook. Sólo puede personalizar el comportamiento si está ejecutando Outlook en un entorno de Microsoft Exchange Server, y sus mensajes de correo electrónico se entregan en un buzón basado en servidor.

Nota: si el correo se entrega en un archivo de carpetas personales (.pst), no puede establecer la configuración de la actualización.

Para obtener más información acerca de esta actualización de seguridad, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

262631 Información acerca de la actualización de seguridad para correo electrónico de Outlook



No puede omitir o evitar esta característica de seguridad si usa código con el Modelo de objetos de Outlook, Collaboration Data Objects 1.21 y Simple MAPI. Para evitar los mensajes de seguridad, puede utilizar los métodos siguientes que no utilizan los componentes que se han mencionado previamente:
  • Administre la configuración del servidor siguiendo los pasos del artículo de Microsoft Knowledge Base siguiente:
    290499 Información del administrador acerca de las funciones de seguridad de correo electrónico


    290500 Descripción de las características de seguridad del correo electrónico para desarrolladores en Outlook 2002

  • Si no tiene control sobre los entornos de cliente, puede utilizar CDO para Windows (CDOSYS) que se instala con Windows 2000 y Windows XP.
    Para obtener más información al respecto, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

    286431 Cómo enviar correo con formato HTML utilizando CDO para Windows 2000 y un servicio SMTP remoto


    286430 Cómo enviar correo con formato HTML utilizando CDO para Windows 2000 y el directorio de recogida local

  • Puede utilizar MAPI extendido para enviar el correo y tener acceso a los datos. Sin embargo, el lenguaje y la API son más complejas que usar Visual Basic con el Modelo de objetos de Outlook.
  • Crear un complemento COM para Outlook
    Para obtener más información, haga clic en el número de artículo siguiente de Microsoft Knowledge Base:

    316983 Complemento COM de ejemplo que utiliza la plantilla de complemento de Visual Basic 6.0


    240768 Cómo hacer referencia mediante programación a un complemento COM

Más información


Pasos para reproducir el problema

  1. Aplique la actualización de seguridad para correo electrónico de Outlook en un equipo que ejecute Microsoft Access 2000 y Outlook 2000.
  2. Abra la base de datos de ejemplo Northwind.mdb (Neptuno.mdb).
  3. En la ventana Base de datos, haga clic en Macros y, después, en Nuevo.
  4. Cree una macro nueva que tenga las acciones siguientes:

    Macro name Action
    -----------------------
    TestSend SendObject


    TestSend action arguments
    -------------------------------
    SendObject
    Object Type: Report
    Object Name: Catalog
    Output Format: Rich Text Format
    To: <email address>
    Edit Message: No
  5. En el menú Archivo, haga clic en Guardar.
  6. En el menú Ejecutar, haga clic en Ejecutar.

    Observe que aparecerá el mensaje de error siguiente que se menciona en la sección "Síntomas" de este artículo:
    Un programa está intentando enviar correo electrónico automáticamente en su nombre.
    ¿Desea permitirlo?
    Si esto es inesperado, puede que sea un virus y debería elegir "No".
    Si hace clic en , el mensaje de correo electrónico se envía. Si hace clic en No, puede que reciba el siguiente mensaje de error:
    Microsoft Access no puede enviar un mensaje por la razón de la alerta anterior.

    Resuelva el problema y, a continuación, envíe de nuevo el mensaje.
  7. Cierre la macro.
  8. En el menú Insertar, haga clic en Módulo.
  9. En el nuevo módulo, agregue el siguiente código:
    Sub VBATestSend()
    DoCmd.SendObject acReport, "Catalog", "RichTextFormat(*.rtf)", _
    "<email address>", "", "", "This is a test.", "", False, ""
    End Sub
  10. En la ventana Inmediato, agregue el código siguiente y presione ENTRAR:
    VBATestSend
    Observe que aparecerá el mensaje de error siguiente que se menciona en la sección "Síntomas" de este artículo:
    Un programa está intentando enviar correo electrónico automáticamente en su nombre.
    ¿Desea permitirlo?
    Si esto es inesperado, puede que sea un virus y debería elegir "No".
    Si hace clic en , el mensaje de correo electrónico se envía. Si hace clic en No, aparecerá el siguiente mensaje de error:
    Error en tiempo de ejecución '2293':

    Microsoft Access no puede enviar un mensaje por la razón de la alerta anterior.

Referencias


Para obtener más información sobre cómo puede afectar la actualización de seguridad para correo electrónico de Outlook a otros productos de Microsoft Office, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:

290499 Información del administrador acerca de las funciones de seguridad de correo electrónico

262634 Descripción de los problemas conocidos con la actualización de seguridad para correo electrónico de Outlook 2000

262618 Problemas conocidos con la actualización de seguridad para correo electrónico de Outlook