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

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 317327 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Wersja tego artykułu dla programu Misrosoft Visual Basic .NET: 317680.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

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 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: 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 Sub
    
    Private 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 = cdoRunNextSink
    End 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:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/7406817f-b48f-4b62-86af-bd6703fca4f6.asp

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

Numer ID artykułu: 317327 - Ostatnia weryfikacja: 26 listopada 2007 - Weryfikacja: 8.3
Informacje zawarte w tym artykule dotyczą:
  • 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 na następujących platformach
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows 2000 Standard Edition
Słowa kluczowe: 
kbhowtomaster KB317327

Przekaż opinię

 

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