Jesteś obecnie w trybie offline. Czekamy na ponowne połączenie z Internetem.

Dodawanie zastrzeżenia do wychodzących wiadomości SMTP w języku Visual Basic

Wersja tego artykułu dla programu Misrosoft Visual Basic .NET: 317680.
WPROWADZENIE
W tym artykule opisano krok po kroku, jak dodawać zastrzeżenia do wychodzących wiadomości e-mail protokołu SMTP za pomocą modelu event sink protokołu SMTP.

Tworzenie modelu event sink

  1. Utwórz nową bibliotekę ActiveX DLL języka Microsoft Visual Basic. Nadaj projektowi nazwę SMTPEventSink, a modułowi Disclaimer.
  2. W obszarze Project References dodaj pozycję Microsoft CDO for Exchange 2000 Library, a następnie pozycję Server Extension Objects COM Library.
  3. Dodaj następujący kod do modułu:
    Dim TextDisclaimer As StringDim HTMLDisclaimer As StringImplements IEventIsCacheableImplements CDO.ISMTPOnArrivalPrivate Sub IEventIsCacheable_IsCacheable()    'Just returns S_OK.End SubPrivate Sub Class_Initialize()  'TODO: Zastąp przykładowy tekst zastrzeżenia własnym tekstem.  TextDisclaimer = vbCrLf & "DISCLAIMER:" & vbCrLf & "Przykładowy tekst zastrzeżenia."  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 szPartI As String        Dim pos As Integer                'Wyszukiwanie taga "</body>" i wstawienie zastrzeżenia przed tagiem.        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        'Zatwierdzenie zmian zawartości w obiekcie transportowym ADO Stream.    Msg.DataSource.Save    EventStatus = cdoRunNextSinkEnd Sub					
  4. Zastąp przykładowy tekst zastrzeżenia własnym tekstem i skonstruuj bibliotekę DLL.

Rejestrowanie modelu event sink

Aby zarejestrować model event sink, użyj pliku Smtpreg.vbs, który jest instalowany razem z zestawem Exchange SDK.
  1. W wierszu polecenia zlokalizuj folder \Exchange SDK\SDK\Support\CDO\Scripts folder i wpisz: cscript smtpreg.vbs /add 1 OnArrival SMTPDisclaimer SMTPEventSink.Disclaimer "mail from=*@your-domain-here.com"

    Jeśli polecenie zostanie wykonane pomyślnie, skrypt wygeneruje komunikat o powodzeniu.
  2. Aby wyrejestrować to zdarzenie, wpisz następujący kod: cscript smtpreg.vbs /remove 1 OnArrival SMTPDisclaimer
Aby uzyskać dodatkowe informacje dotyczące zarządzania powiązaniami wydarzeń, odwiedź następującą witrynę Microsoft Developer Network (MSDN) w sieci Web:

Testowanie modelu event sink

Aby przetestować model event sink, wyślij wiadomość e-mail do odbiorcy używającego protokołu SMTP spoza organizacji. Odbiorca powinien otrzymać wiadomość zmodyfikowaną, tj. zawierającą na końcu dodane zastrzeżenie.

Uwaga: Jeśli wiadomość e-mail zostanie wysłana za pomocą klienckiego interfejsu MAPI, na przykład programu Microsoft Outlook, odbiorca nie otrzyma wiadomości zmodyfikowanej. Stanie się tak, ponieważ w momencie wywoływania zdarzenia transportu protokołu SMTP wiadomości e-mail przesyłane za pomocą interfejsu MAPI nie mają formatu protokołu SMTP. Z tego powodu zmiany wprowadzone przez kod zdarzenia nie są zachowywane.
Materiały referencyjne
Aby uzyskać dodatkowe informacje, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
273233 Cannot change MAPI message contents in a CDO SMTP event sink
Właściwości

Identyfikator artykułu: 317327 — ostatni przegląd: 11/26/2007 01:44:00 — zmiana: 8.3

  • 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
  • kbhowtomaster KB317327
Opinia