Visual Basic'te giden SMTP iletilerine bir vazgeçme belgesi nasıl eklenir

Bu makalenin Microsoft Visual Basic Scripting Edition sürümü için bkz: 317680 .

GİRİŞ

Bu adım adım makalede, giden SMTP e-posta iletilerine bir vazgeçme belgesi eklemek için bir SMTP aktarım olay havuzunun nasıl kullanılacağı anlatılmaktadır.

Olay havuzunu oluşturma

  1. Yeni bir Microsoft Visual Basic ActiveX DLL dosyası oluşturun. Projeyi SMTPEventSink olarak ve modulü de VazgeçmeBelgesi olarak adlandırın.
  2. Project References altında, Microsoft CDO for Exchange 2000 Library ve ardından Server Extension Objects COM Library'yi ekleyin.
  3. Aşağıdaki kodu modüle ekleyin:
    Dim TextDisclaimer As String
    Dim HTMLDisclaimer As String

    Implements IEventIsCacheable
    Implements CDO.ISMTPOnArrival

    Private Sub IEventIsCacheable_IsCacheable()
    'Yalnızca S_OK döndürür.
    End Sub

    Private Sub Class_Initialize()
    'YAPILACAK: Örnek vazgeçme metnini kendi metninizle değiştirin.
    TextDisclaimer = vbCrLf & "VAZGEÇME:" & vbCrLf & "Örnek Vazgeçme Metni."
    HTMLDisclaimer = "<p></p><p>VAZGEÇME:<br>Örnek Vazgeçme Metni"
    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

    '"</body>" etiketini ara ve bu etiketten önce vazgeçme metnini ekle.
    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

    'İçerik değişikliklerini ADO Akışı nesnesi aktarımına kaydet.
    Msg.DataSource.Save
    EventStatus = cdoRunNextSink
    End Sub
  4. Örnek vazgeçme metni yerine kendi vazgeçme metninizi koyun ve DLL dosyasını oluşturun.

Olay havuzunu kaydetme

Olay havuzunu kaydetmek için, Exchange yazılım geliştirme paketiyle (SDK) birlikte yüklenen Smtpreg.vbs dosyasını kullanın.
  1. Komut istemine \Exchange SDK\SDK\Support\CDO\Scripts klasörünü bulun ve aşağıdaki komutu yazın: cscript smtpreg.vbs /add 1 OnArrival SMTPDisclaimer SMTPEventSink.VazgeçmeBelgesi "mail from=*@etki-alanınız.com"

    Bu komut başarılı olursa, komut dosyası tarafından oluşturulan bir başarı iletisi alırsınız.
  2. Bu olayın kaydını kaldırmak için şunu yazın: cscript smtpreg.vbs /remove 1 OnArrival SMTPDisclaimer
Olay bağlantılarını yönetme hakkında ek bilgi için, aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:

Olay havuzunu sınama

Olay havuzunu sınamak için, kuruluşunuz dışındaki bir SMTP alıcısına bir e-posta iletisi gönderin. Alıcı, iletinin sonuna vazgeçme belgesi eklenmiş olarak değiştirilmiş bir ileti alır.

Not E-postayı göndermek için Microsoft Outlook gibi bir MAPI istemci kullanırsanız, alıcı değiştirilmiş bir e-posta iletisi almaz. Bunun nedeni, e-posta SMTP aktarım olayını tetiklediğinde MAPI kullanılarak gönderilen iletinin SMTP biçiminde olmamasıdır. Bu nedenle, olayın kodu tarafından yapılan değişiklikler kalıcı olmaz.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:

273233 CDO SMTP olay havuzunda MAPI ileti içeriği değiştirilemiyor (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir.)

Özellikler

Makale No: 317327 - Son İnceleme: 19 Oca 2008 - Düzeltme: 1

Geri bildirim