Cómo agregar una renuncia a los mensajes SMTP salientes en Visual Basic

Para obtener una versión de Microsoft Visual Basic Scripting Edition de este artículo, consulte 317680 .

INTRODUCCIÓN

En este artículo paso a paso se describe cómo utilizar un receptor de eventos de transporte SMTP para agregar una renuncia a los mensajes de correo electrónico SMTP salientes.

Crear el receptor de eventos

  1. Crear una nueva DLL ActiveX de Visual Basic de Microsoft. Denomine el proyecto SMTPEventSink y, a continuación, nombre el módulo renuncia.
  2. En Referencias del proyecto, agregar Microsoft CDO para Exchange 2000 Library y, a continuación, agregue la biblioteca de COM de objetos de extensión de servidor.
  3. Coloque el código siguiente en el módulo:
    Dim TextDisclaimer As StringDim HTMLDisclaimer As String

    Implements IEventIsCacheable
    Implements CDO.ISMTPOnArrival

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

    Private Sub Class_Initialize()
    'TODO: Replace the sample disclaimer text with your own text.
    TextDisclaimer = vbCrLf & "DISCLAIMER:" & vbCrLf & "Sample Disclaimer Text."
    HTMLDisclaimer = "<p></p><p>DISCLAIMER:<br>Sample Disclaimer Text"
    End Sub

    Private Sub ISMTPOnArrival_OnArrival(ByVal Msg As CDO.IMessage, EventStatus As CDO.CdoEventStatus)
    If Msg.HTMLBody <> "" Then
    Dim szPartI As String
    Dim szPartII As String
    Dim pos As Integer

    'Search for the "</body>" tag and insert the disclaimer before that tag.
    pos = InStr(1, Msg.HTMLBody, "</body>", vbTextCompare)
    szPartI = Left(Msg.HTMLBody, pos - 1)
    szPartII = Right(Msg.HTMLBody, Len(Msg.HTMLBody) - (pos - 1))
    Msg.HTMLBody = szPartI + HTMLDisclaimer + szPartII
    End If

    If Msg.TextBody <> "" Then
    Msg.TextBody = Msg.TextBody & vbCrLf & TextDisclaimer & vbCrLf
    End If

    'Commit the content changes to the transport ADO Stream object.
    Msg.DataSource.Save
    EventStatus = cdoRunNextSink
    End Sub

  4. Reemplazar el texto de renuncia de ejemplo con su propio texto de descargo de responsabilidad y, a continuación, generar el archivo DLL.

Registrar el receptor de eventos

Para registrar el receptor de eventos, utilice el archivo Smtpreg.vbs que se instala con el kit de desarrollo de software (SDK) de Exchange.
  1. En el símbolo del sistema, busque la carpeta \Exchange SDK\SDK\Support\CDO\Scripts y, a continuación, escriba lo siguiente: smtpreg.vbs cscript / agregar 1 OnArrival SMTPDisclaimer SMTPEventSink.Disclaimer "mail from=*@your-domain-here.com"

    Si este comando se ejecuta correctamente, aparecerá un mensaje de confirmación generado por la secuencia de comandos.
  2. Para anular el registro de este evento, escriba lo siguiente: smtpreg.vbs cscript/quitar 1 SMTPDisclaimer OnArrival
Para obtener información adicional acerca de cómo administrar enlaces de eventos, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):

Probar el receptor de eventos

Para probar el receptor de eventos, envíe un mensaje de correo electrónico a un destinatario SMTP externo a su organización. El destinatario recibe un mensaje modificado con el texto de renuncia que se agrega al final del mensaje.

Nota: Si utiliza a un cliente MAPI, como Microsoft Outlook, para enviar el mensaje de correo electrónico, el destinatario no recibe un mensaje de correo electrónico modificado. Esto es porque el mensaje de correo electrónico que se envía mediante MAPI no está en un formato SMTP cuando el mensaje de correo electrónico desencadena el evento de transporte SMTP. Por lo tanto, no se conservan los cambios realizados por el código del evento.

Referencias

Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

273233 no se puede cambiar el contenido del mensaje MAPI en un receptor de sucesos SMTP de CDO

Propiedades

Id. de artículo: 317327 - Última revisión: 17 ene. 2017 - Revisión: 2

Comentarios