Como adicionar uma exclusão de responsabilidade a mensagens SMTP a enviar no Visual Basic

Traduções de Artigos Traduções de Artigos
Artigo: 317327 - Ver produtos para os quais este artigo se aplica.
Este artigo poderá conter hiperligações para conteúdo em inglês (ainda não traduzido).

Para obter uma versão deste artigo referente ao Microsoft Visual Basic Scripting Edition, consulte 317680.
Expandir tudo | Reduzir tudo

Nesta página

INTRODUÇÃO

Este artigo passo a passo descreve como utilizar um receptor de eventos de transporte de SMTP para adicionar uma exclusão de responsabilidade a mensagens de correio SMTP a enviar.

Criar o receptor de eventos

  1. Crie uma nova DLL de ActiveX do Microsoft Visual Basic. Atribua o nome SMTPEventSink ao projecto e Disclaimer ao módulo.
  2. Em Project References, adicione Microsoft CDO for Exchange 2000 Library e adicione Server Extension Objects COM Library.
  3. Cole 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 texto de exemplo de exclusão de responsabilidade pelo seu próprio texto e compile a DLL.

Registar o receptor de eventos

Para registar o receptor de eventos, utilize o ficheiro Smtpreg.vbs instalado com o Exchange Software Development Kit (SDK).
  1. Numa linha de comandos, localize a pasta \Exchange SDK\SDK\Support\CDO\Scripts e escreva o seguinte: cscript smtpreg.vbs /add 1 OnArrival SMTPDisclaimer SMTPEventSink.Disclaimer "mail from=*@seu-domínio.com"

    Se este comando tiver êxito, receberá uma mensagem de êxito gerada pelo script.
  2. Para anular o registo deste evento, escreva o seguinte: cscript smtpreg.vbs /remove 1 OnArrival SMTPDisclaimer
Para obter informações adicionais sobre como gerir ligações de eventos, visite o seguinte Web site da MSDN (Microsoft Developer Network):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/7406817f-b48f-4b62-86af-bd6703fca4f6.asp

Testar o receptor de eventos

Para testar o receptor de eventos, envie uma mensagem de correio electrónico para um destinatário SMTP externo à organização. O destinatário recebe uma mensagem modificada com o texto de exclusão de responsabilidade adicionado ao final da mensagem.

Nota: se utilizar um cliente MAPI, como o Microsoft Outlook, para enviar a mensagem de correio electrónico, o destinatário não recebe a mensagem de correio electrónico modificada. Isto acontece porque a mensagem de correio electrónico submetida através de MAPI não tem um formato de SMTP quando a mensagem de correio electrónico acciona o evento de transporte de SMTP. Assim, as alterações efectuadas pelo código do evento não são permanentes.

Referências

Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
273233 Cannot change MAPI message contents in a CDO SMTP event sink

Propriedades

Artigo: 317327 - Última revisão: 26 de novembro de 2007 - Revisão: 8.4
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 para Exchange 2000
  • Microsoft Collaboration Data Objects 2.0 nas seguintes plataformas
    • Microsoft Windows Server 2003 Standard Edition
    • 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