COMMENT FAIRE : Ajout d'une exclusion de responsabilité à des messages SMTP sortants dans Visual Basic

Pour obtenir la version script Microsoft Visual Basic de cet article, consultez l'article 317680 .

Contenu de cette tâche

Résumé

Cet article explique en détail la procédure d'utilisation d'un récepteur d'événements de transport SMTP pour ajouter une exclusion de responsabilité à des messages SMTP sortants.


Création du récepteur d'événements

  1. Créez un nouveau fichier DLL ActiveX Microsoft Visual Basic. Nommez le projet SMTPEventSink et nommez le module Exclusion.
  2. Dans les références du projet, ajoutez Bibliothèque Microsoft CDO pour Exchange 2000 et Bibliothèque Server Extension Objects COM.
  3. Collez le code suivant dans le module :
    Dim TextDisclaimer As String
    Dim HTMLDisclaimer As String

    Implements IEventIsCacheable
    Implements CDO.ISMTPOnArrival

    Private Sub IEventIsCacheable_IsCacheable()
    ' Renvoie uniquement S_OK.
    End Sub

    Private Sub Class_Initialize()
    'A FAIRE : remplacez l'exemple de texte d'exclusion de responsabilité par votre propre texte.
    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

    'Recherchez la balise "</body>" et insérez notre exclusion de responsabilité avant cette balise.
    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

    'Validez les modifications apportées au contenu dans l'objet de transport ADO Stream.
    Msg.DataSource.Save
    EventStatus = cdoRunNextSink
    End Sub
  4. Remplacez l'exemple de texte d'exclusion de responsabilité par votre propre texte, puis créez la DLL.

Inscription du récepteur d'événements

Pour inscrire votre récepteur d'événements, utilisez le fichier Smtpreg.vbs, lequel est installé avec le Kit de développement Microsoft Exchange (SDK). À partir d'une invite de commande, recherchez le dossier « ...\Exchange SDK\SDK\Support\CDO\Scripts » et tapez la commande suivante :
cscript smtpreg.vbs /add 1 OnArrival SMTPDisclaimer SMTPEventSink.Disclaimer "mail from=*"
Si cette commande réussit, vous recevez un message généré par le script qui signale la réussite.


Pour annuler l'inscription de cet événement, tapez la commande suivante :
cscript smtpreg.vbs /remove 1 OnArrival SMTPDisclaimer
Pour plus d'informations sur l'inscription d'événements à l'aide de Smtpreg.vbs, consultez la rubrique « Managing Event Bindings » sur la gestion de la liaison d'événements du site Web MSDN à l'adresse suivante :

Test du récepteur d'événements

Pour tester votre récepteur d'événements, envoyez un message électronique à un destinataire SMTP qui est externe à votre organisation. Le destinataire doit recevoir un message modifié dans lequel l'exclusion de responsabilité est ajoutée à la fin du message.


Remarque : Si vous utilisez un client MAPI tel que Microsoft Outlook pour envoyer le message électronique, le destinataire ne reçoit pas un message modifié. En effet, les messages soumis par le biais de MAPI ne sont pas au format SMTP lorsque le message déclenche l'événement de transport SMTP. Par conséquent, les modifications apportées par le code de l'événement ne sont pas conservées.


Propriétés

ID d'article : 317327 - Dernière mise à jour : 23 août 2005 - Révision : 1

Commentaires