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

Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
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.
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 StringDim HTMLDisclaimer As StringImplements IEventIsCacheableImplements CDO.ISMTPOnArrivalPrivate Sub IEventIsCacheable_IsCacheable()    'Just returns S_OK.End SubPrivate 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 SubPrivate 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 = cdoRunNextSinkEnd 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):

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

ID do Artigo: 317327 - Última Revisão: 12/07/2015 08:51:36 - Revisão: 8.4

  • 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
  • kbnosurvey kbarchive kbhowtomaster KB317327
Esta informação foi útil?