CÓMO: Reenviar a un único buzón de correo todo el correo que contenga destinatarios sin resolver

Resumen

En este artículo paso a paso se describe cómo reenviar a un único buzón de correo todo el correo que contenga destinatarios sin resolver.

En Exchange 2000 es posible configurar cualquier servidor virtual del Protocolo simple de transferencia de correo (SMTP) para reenviar a un único host todo el correo que contenga destinatarios sin resolver, pero no es posible enviar todo ese correo a un único buzón.

Sin embargo, para evitar esta limitación es posible crear un servidor virtual SMTP adicional, reenviar a él todo el correo que contenga destinatarios sin resolver y, a continuación, utilizar un receptor de eventos en el servidor para rescribir la dirección del destinatario.

Crear y configurar el servidor virtual SMTP adicional

Para crear y configurar el servidor virtual SMTP adicional:
  1. Cree un servidor virtual SMTP adicional.Para obtener información adicional acerca de cómo crear un servidor virtual SMTP adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    303707 CÓMO: Crear servidores virtuales SMTP adicionales
  2. Configure el servidor virtual SMTP predeterminado para reenviar al nuevo servidor virtual todo el correo que contenga destinatarios sin resolver:
    1. En el Administrador del sistema de Exchange, haga clic en el servidor virtual SMTP predeterminado.
    2. En el menú Acción, haga clic en Propiedades.
    3. Haga clic en la ficha Mensajes y escriba en el cuadro Reenviar a este host el correo con destinatarios sin resolver la dirección IP entre corchetes ([]) .
    4. Haga clic en Aceptar o Aplicar para guardar la configuración.
Es posible que la función de reenvío no funcione hasta que aplique el último Service Pack de Exchange 2000 Server.
Para obtener información adicional acerca de este problema, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
278529 XFOR: La característica "Reenviar el correo con destinatarios sin resolver" no funciona en todos los hosts
Para obtener información adicional acerca de las opciones generales de configuración del servidor virtual SMTP, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
266686 XCON: Cómo configurar un servidor virtual SMTP (parte 1)

Utilizar el Asistente para nuevo proyecto con el fin de crear el archivo DLL ActiveX de Microsoft Visual Basic

Para utilizar el Asistente para nuevo proyecto con el fin de crear el archivo DLL ActiveX de Microsoft Visual Basic:
  1. Inicie Microsoft Visual Basic 6.0.
  2. En el menú Archivo, haga clic en Nuevo proyecto, en DLL ActiveX y, después, en Aceptar.
  3. En el menú Proyecto, haga clic en Propiedades de Project1. Cambie el valor de Nombre de proyecto a Q315631, cambie el nombre del módulo Clase a Rewrite y, a continuación, haga clic en Aceptar.
  4. Pegue el siguiente código en el módulo:
    Option Explicit

    Implements IEventIsCacheable
    Implements ISMTPOnArrival

    Private Sub IEventIsCacheable_IsCacheable()
    ' Only returns S_OK.
    End Sub

    Public Sub ISMTPOnArrival_OnArrival(ByVal iMsg As CDO.Message, EventStatus As CdoEventStatus)
    Dim Flds As ADODB.Fields
    Dim RecipListFld As ADODB.Field
    Dim strRecipList As String

    ' Get Current Recipient List.
    '
    ' Because this has come to this second virtual server, this should only be "unresolved" recipients.

    Set Flds = iMsg.EnvelopeFields
    Set RecipListFld = Flds("http://schemas.microsoft.com/cdo/smtpenvelope/recipientlist")

    ' Update the recipient list to be the user who you want.
    '
    ' The recommendation here is to create a mailbox that is called "unresolved@domainname.com", and then give the appropriate
    ' user permissions on the mailbox.

    RecipListFld.Value = "SMTP:unresolved@domainname.com;"
    Flds.Update

    ' Note that the content of the message does not change. Doing so would require that a determination
    ' be made about the type of message (plain text, HTML, or TNEF), and then the appropriate action would have to be taken.
    ' This can be difficult, and potentially problematic if certain fields do not exist.

    End Sub
  5. Sustituya el valor de la cadena "RecipListFld.Value" por la dirección del buzón al que desea reenviar los mensajes de correo electrónico.
  6. En el menú Proyecto, haga clic en Referencias. Asegúrese de que estén activadas las siguientes referencias:

    • Biblioteca Microsoft CDO para Exchange 2000
    • Biblioteca de objetos de datos de Microsoft ActiveX 2.5
    • Biblioteca COM de objetos de extensiones de servidor
    Haga clic en Aceptarpara cerrar el cuadro de diálogo.
  7. Guarde el proyecto.
  8. En el menú Archivo, haga clic en Crear Q315631.dll y, después, haga clic en Aceptar.
  9. Copie el archivo Q315631.dll en el servidor Exchange 2000.
  10. Escriba regsvr32 q315631.dll en el símbolo del sistema para registrar el archivo DLL.

Registrar el receptor de eventos en el nuevo servidor virtual SMTP

Para registrar el receptor, necesita el archivo Smtpreg.vbs del Kit de desarrollo de software de Exchange. Abra una ventana de símbolo del sistema, busque la carpeta \Exchsrvr\SDK\Support\CDO\Scripts y escriba lo siguiente (donde X es el número del servidor virtual donde se registrará el receptor):
cscript smtpreg.vbs /add X OnArrival Q315631 Q315631.Rewrite "mail from=*"
Asegúrese de que recibe un mensaje de la secuencia de comandos que indica que el registro se realizó correctamente.

Probar el receptor de eventos

Para probar el receptor, inicie una sesión de Telnet con la instancia del nuevo servidor virtual SMTP y envíe un mensaje a una dirección SMPT arbitraria. El buzón especificado en el código del programa debería recibir el mensaje de prueba.
Para obtener información adicional acerca de cómo utilizar Telnet en el puerto 25, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
153119 XFOR: Iniciar una sesión de Telnet en el puerto 25 para comprobar una comunicación SMTP
Tenga en cuenta que es posible que el evento no se desencadene con los mensajes enviados por un cliente de Interfaz de programación de aplicaciones de mensajería(MAPI), como Microsoft Outlook. Por eso es necesario utilizar una sesión Telnet para probar el receptor.
Para obtener más información al respecto, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
273233 PRB: CDOEX: No puede modificar los mensajes MAPI interceptados en un receptor de eventos de un transporte SMTP

Anular el registro del receptor de eventos

Para anular el registro del receptor de eventos, ejecute el comando siguiente en un símbolo del sistema (donde X es el número del servidor virtual donde está registrado el receptor):
cscript smtpreg.vbs /remove X OnArrival Q315631
Para obtener información adicional acerca de cómo registrar eventos con Smtpreg.vbs, visite el siguiente sitio web de Microsoft: Busque "smtpreg.vbs". Si ejecuta Smtpreg.vbs sin parámetros se mostrará la Ayuda con todos los parámetros disponibles.

Propiedades

Id. de artículo: 315631 - Última revisión: 22 may. 2007 - Revisión: 1

Comentarios