На сайте 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-сервер?




