Event Sink в Exchange 2003

Все темы, касающиеся администрирования SQL Server, Exchange Server, BizTalk Server, Commerce Server и т.п.

Модератор: Sebas

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Event Sink в Exchange 2003

Сообщение Ruslan Demidow » 28.07.2006 (Пт) 14:41

Запарился уже экспериментировать с сабжем.
На сайте MS четко прописано как повесить обработчик на событие отправки. Повесил. Если в обработчике событий делать вывод просто в текстовик данных сообщения - то отрабатывает, но из 20 раз срабатывает 1-2 раза.
Если же делать отправку копии письма на определённый ящик - то вообще тогда идёт циклическое возрастание отправляемых писем и сервак ложится.
Отправляется оригинал. В обработчике события создаётся сообщение на другой адрес с данными оригинала. Новое сообщение отправляется. На это новое событие срабатывает опять обработчик. И опять по новой. В итоге за 15 минут очередь сервака забивается до краёв (до 8 000 сообщений) и приходится отключать сервак и убивать очередь сообщений.
Подскажите плиз, кто-нибудь, кто делал уже обработчики событий.

Скрипт, который вешается на событие onarrival SMTPMessCheck CDO.SS_SMTPOnArrivalSink прилагаю.

Заранее спасибо за помощь, други.

Код: Выделить всё

<SCRIPT LANGUAGE="VBScript">

Sub IEventIsCacheable_IsCacheable()
   'To implement the interface, and return S_OK implicitly
End Sub


Sub ISMTPOnArrival_OnArrival(ByVal objMessage, EventStatus)

   ' Initialize error checking
   On Error Resume Next

   ' Declare variables
   Dim strSender      ' As String
   Dim StrRecipient    ' As String
   Dim objFields      ' As ADODB.Fields
   Dim objEmail      
   Dim FSO, txt, Shell, oAttach, colAttach
   
   
   Set objFields = objMessage.EnvelopeFields'
   With objFields
      If instr(1,objMessage.From,"sekretariat@zz.local")>0 then
      'objmessage.BCC="rd@zz.local"
      'objmessage.datasource.save
      'set colAttach=   objMessage.Attachments
      'set fso=createobject("Scripting.FileSystemObject")
      'set txt=fso.createtextfile("C:\test.txt",true)
      'txt.writeline(objMessage.From)
      'txt.writeline(objMessage.To)
      'txt.writeline(objMessage.Subject)
      'txt.writeline(objMessage.TextBody)
      'txt.WriteLine("Вложения: ")
      'For Each oattach in colAttach
      '   txt.WriteLine(oAttach.filename)
      'next
      'txt.close
      
      'Set txt=Nothing
      'Set FSO=nothing
      Set objEmail = CreateObject("CDO.Message")'
      objEmail.From = "postmaster@zz.local"
      objEmail.To = "rd@zz.local"
      objEmail.Subject ="FORWARD: " & objmessage.subject
      objEmail.Textbody = objmessage.textbody
      set objemail.Attachments=objMessage.Attachments
      For Each oAttach In colAttach
         objEmail.AddAttachment oAttach
      next
      objEmail.Send
      Set objEmail= nothing
      End if
   End With
   Set objFields = Nothing

End Sub

</SCRIPT>


И может быть подскажет, кто-нибудь в каком порядке идёт применение правил обработки событий. Нужно ли каждый раз после изменения скрипта заново регистрировать обработчик событий и рестартовать виртуальный SMTP-сервер?
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 31.07.2006 (Пн) 23:47

В общем по поводу наплыва сообщений разобрался.
Но вот форвард сообщений приходит четыре раза с каждого оригинала. (Два smtp сервера, одно хранилище).
Плюс вместо аттача - идёт файлик *.dat размером в несколько сотен байт.
Может быть хоть с этим кто-то поможет?

хотя и не надеюсь уже... :(
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 01.08.2006 (Вт) 8:06

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

sebas<-@->mail.ru

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 01.08.2006 (Вт) 11:38

Sebas писал(а):Добавляй хидеры в сообщение перед отправкой, а привходе проверяй наличие хидера, если есть, то выскакивай... из процедуры.

Ок. Спасибо.
Попробую так.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 02.08.2006 (Ср) 9:48

также можно получать поток и сохранять в пикапе другого смтп сервера в котором твой синк не зареген. Ну это через одно место. Хтя в некоторых ситуациях очень удобно....
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 02.08.2006 (Ср) 13:02

Да, вот, вопросец тож есть:
Если письмо приходит не через SMTP (ну, например, Через офисный оутлук с эксчендж аккаутом), то оно в этот приёмник не попадает.
Какой интерфейс использовать для обработки всехсообщений проходящих через Exchange&?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 02.08.2006 (Ср) 17:24

Sebas писал(а):Да, вот, вопросец тож есть:
Если письмо приходит не через SMTP (ну, например, Через офисный оутлук с эксчендж аккаутом), то оно в этот приёмник не попадает.
Какой интерфейс использовать для обработки всехсообщений проходящих через Exchange&?

Так ведь у меня именно такая ситуация: подразумевалась внутрикорпоративная почта. Все пользователи подключены к Exchange-серверу. И именно сообщения на Exchange-сервере должны проходить через мой EventSink. Или ты имел ввиду что-то другое?
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 31.08.2006 (Чт) 8:16

Вдумайся в название интерфейса

ISMTPOnArrival,

SMTP!!!!!!!

Если у тебя оутлук подключается не через POP3 аккаунт, а как Exchange account. То при отсылки писем в эти синки ничего не попадёт. Так как SMTP тут не причём....
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 01.09.2006 (Пт) 18:26

Sebas писал(а):Вдумайся в название интерфейса

ISMTPOnArrival,

SMTP!!!!!!!

Если у тебя оутлук подключается не через POP3 аккаунт, а как Exchange account. То при отсылки писем в эти синки ничего не попадёт. Так как SMTP тут не причём....

Хм. Не думал...
Проверю в понедельник.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух


Вернуться в Enterprise Servers

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

    TopList  
cron