HOW TO: Aggiungere una dichiarazione di non responsabilità nei messaggi SMTP in uscita in Visual Basic

Per la versione di questo articolo relativa a Microsoft Visual Basic Script vedere:
317680 (il contenuto potrebbe essere in inglese).

CONTENUTO DELL'ATTIVITÀ

Sommario

In questo articolo viene illustrato come utilizzare un evento sink di trasporto SMTP per aggiungere una dichiarazione di non responsabilità ai messaggi di posta elettronica SMTP in uscita.

Creazione dell'evento sink

  1. Creare una nuova DLL ActiveX in Microsoft Visual Basic. Denominare il progetto SMTPEventSink e assegnare al modulo il nome Disclaimer.
  2. Nei riferimenti del progetto aggiungere Microsoft CDO for Exchange 2000 Library e Server Extension Objects COM Library.
  3. Incollare il codice seguente nel modulo:
    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 Discliamer 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 our discliamer 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

    Msg.TextBody = Msg.TextBody & vbCrLf & TextDisclaimer & vbCrLf
    Else
    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. Sostituire il testo di esempio della dichiarazione di non responsabilità con il proprio testo e generare la DLL.

Registrazione dell'evento sink

Per registrare l'evento sink, utilizzare il file Smtpreg.vbs, installato con l'SDK di Exchange. Da un prompt dei comandi passare alla cartella "...\Exchange SDK\SDK\Support\CDO\Scripts" e digitare quanto segue:
cscript smtpreg.vbs /add 1 OnArrival SMTPDisclaimer SMTPEventSink.Disclaimer "mail from=*@nomedominio.com"
Se il comando viene eseguito, si riceverà un messaggio di conferma generato dallo script.

Per annullare la registrazione dell'evento, digitare quanto segue:
cscript smtpreg.vbs /remove 1 OnArrival SMTPDisclaimer
Per ulteriori informazioni sulla registrazioni di eventi con Smtpreg.vbs, vedere l'argomento "Managing Event Bindings" nel seguente sito Web MSDN (informazioni in lingua inglese):

Verifica dell'evento sink

Per verificare il sink, inviare un messaggio di posta elettronica a un destinatario SMTP esterno alla propria organizzazione. Il destinatario dovrebbe ricevere un messaggio a cui è stata aggiunta una dichiarazione di non responsabilità.

NOTA: se per inviare il messaggio si utilizza un client MAPI come Microsoft Outlook, il destinatario non riceverà il messaggio modificato. Ciò avviene perché i messaggi inviati mediante MAPI non sono in formato SMTP quando il messaggio di posta elettronica genera l'evento di trasporto SMTP. Per tale motivo le modifiche apportate dal codice dell'evento non vengono conservate.

Riferimenti

Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito (il contenuto potrebbe essere in inglese):
273233 PRB: CDOEX: Impossibile modificare i contenuti dei messaggi MAPI in un evento sink SMTP CDO
Proprietà

ID articolo: 317327 - Ultima revisione: 24 ago 2005 - Revisione: 1

Feedback