Como adicionar um aviso de isenção para as mensagens SMTP de saída no Visual Basic

Traduções deste artigo Traduções deste artigo
ID do artigo: 317327 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi publicado anteriormente em BR317327
Para obter uma versão deste artigo para o Microsoft Visual Basic Scripting Edition, consulte 317680.
Expandir tudo | Recolher tudo

Neste artigo

INTRODUÇÃO

Esse artigo descreve detalhadamente como usar um coletor de evento de transporte SMTP para adicionar um aviso de isenção em emails SMTP de saída.

Criar o coletor de eventos

  1. Crie uma nova DLL do Microsoft Visual Basic ActiveX. Nomeie o projeto SMTPEventSink e o módulo Aviso de isenção.
  2. Em Project References, adicione o Microsoft CDO para o Exchange 2000 Library e adicione Server Extension Objects COM Library.
  3. Coloque o seguinte código no módulo:
    Dim TextDisclaimer As String
    Dim 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. Substitua o exemplo de texto do aviso de isenção pelo seu próprio texto e construa a DLL.

Registrar o coletor de eventos

Para registrar o coletor de eventos, use o arquivo Smtpreg.vbs, instalado com o kit de desenvolvimento de software do Exchange (SDK).
  1. Em um prompt de comando, localize a pasta \Exchange SDK\SDK\Support\CDO\Scripts e digite o seguinte: cscript smtpreg.vbs /add 1 OnArrival SMTPDisclaimer SMTPEventSink.Disclaimer "mail from=*@your-domain-here.com"

    Se esse comando tiver êxito, uma mensagem de êxito gerada pelo script será exibida.
  2. Para desfazer o registro desse evento, digite o seguinte: cscript smtpreg.vbs /remove 1 OnArrival SMTPDisclaimer
Para obter informações adicionais sobre o gerenciamento de ligação de eventos, visite o seguinte site da Microsoft Developer Network (MSDN) (em inglês):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/7406817f-b48f-4b62-86af-bd6703fca4f6.asp

Testar o coletor de eventos

Para testar o coletor de eventos, envie um email para um destinatário SMTP externo à sua organização. O destinatário deve receber uma mensagem modificada com o texto do aviso de isenção adicionado ao final da mensagem.

Observação Se você usa um cliente MAPI como o Microsoft Outlook para enviar o email, o destinatário poderá não receber um email modificado. Isso porque o email enviado usando MAPI não está em um formato SMTP quando o email dispara o evento de transporte SMTP. Por isso, as alterações feitas pelo código do evento não são persistentes.

Referências

Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de Dados do Conhecimento da Microsoft:
273233 Não é possível alterar o conteúdo de uma mensagem MAPI em um coletor de eventos SMTP CDO

Propriedades

ID do artigo: 317327 - Última revisão: segunda-feira, 26 de novembro de 2007 - Revisão: 8.3
A informação contida neste artigo aplica-se a:
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange 2000 Server Standard Edition
  • Collaboration Data Objects for Exchange 2000 6.0
  • Microsoft Collaboration Data Objects 2.0 nas seguintes plataformas
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows 2000 Standard Edition
Palavras-chave: 
kbhowtomaster KB317327

Submeter comentários

 

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