Добавление отказа к исходящим сообщениям SMTP с помощью Visual Basic

Переводы статьи Переводы статьи
Код статьи: 317327 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Введение

В данной статье содержатся подробные указания по использованию обработчика событий протокола SMTP для добавления отказа к исходящим электронным сообщениям SMTP.

Создание обработчика событий

  1. Создайте новую библиотеку Microsoft Visual Basic ActiveX DLL. Задайте для проекта имя SMTPEventSink, а для модуля — имя Disclaimer.
  2. В разделе Project References добавьте библиотеки Microsoft CDO for Exchange 2000 Library и Server Extension Objects COM Library.
  3. Введите в модуле следующий код:
    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 Disclaimer 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 the disclaimer 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
        End If
    
        If Msg.TextBody <> "" Then
            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. Замените образец текста отказа на свой текст отказа и соберите библиотеку DDL.

Регистрация обработчика событий

Чтобы зарегистрировать обработчик событий, используйте файл Smtpreg.vbs, установленный вместе с пакетом Exchange Software Development Kit (SDK).
  1. В командной строке перейдите к папке \Exchange SDK\SDK\Support\CDO\Scripts и введите: cscript smtpreg.vbs /add 1 OnArrival SMTPDisclaimer SMTPEventSink.Disclaimer "mail from=*@your-domain-here.com"

    В случае успешного выполнения этой команды будет выведено сообщение, созданное данным сценарием.
  2. Чтобы отменить регистрацию этого события, введите: cscript smtpreg.vbs /remove 1 OnArrival SMTPDisclaimer
Дополнительные сведения об управлении привязками событий см. на веб-узле MSDN (Microsoft Developer Network) по следующему адресу:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_managing_event_bindings.asp

Тестирование обработчика событий

Для проверки обработчика событий отправьте электронное сообщение получателю сообщений SMTP, находящемуся за пределами организации. К получателю придет измененное сообщение с текстом отказа в конце сообщения.

Примечание. При использовании для отправки электронных сообщений клиента MAPI (такого как Microsoft Outlook) получателю будет доставлено сообщение без изменений. Это связано с тем, что электронное сообщение, отправляемое с использованием MAPI, в момент срабатывания обработчика событий транспорта SMTP имеет формат, отличный от SMTP. В результате изменения, вносимые программным кодом события, не сохраняются.

Ссылки

Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
273233 Не удается изменить содержание сообщения в формате MAPI в обработчике событий CDO SMTP

Свойства

Код статьи: 317327 - Последний отзыв: 26 ноября 2007 г. - Revision: 6.5
Информация в данной статье относится к следующим продуктам.
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange 2000 Server Standard Edition
  • Collaboration Data Objects for Exchange 2000
  • Microsoft Collaboration Data Objects 2.0 на следующих платформах
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows 2000 Standard Edition
Ключевые слова: 
kbhowtomaster KB317327

Отправить отзыв

 

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