Почта

  • Автор темы ukr
  • Дата начала
U
#1
Всем доброго дня.
Необходимо перехватить письмо, еще до создания его в Почтовой Базе.
Возможно ли это сделать? Если да, то как?
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
как это ДО создания письма? в момент када у пользователя зародилась мысль надо её перехватить?
 
D

D!m@n

#3
Напишите точнее, в какой именно момент надо перехватить письмо. И о каком вообще письме речь - входящем или исходящем?
 
U
#5
Напишите точнее, в какой именно момент надо перехватить письмо. И о каком вообще письме речь - входящем или исходящем?
Суть в следующем.
На клиентском месте, в почтовой базе Lotus'a 7.02 не отрабатывают почтовые правила. Из-за этого приходит большое количество спама. Понятно, что это затрудняет работу людям. Задача в следующем, чтобы весь приходящий спам сыпался в папку "Нежелательная почта". Вот я и задался вопросом возможно ли отловить событие создания входящего письма в почтовой базе. Надеюсь сейчас картина стала более понятней.
 
D

D!m@n

#6
Суть в следующем.
На клиентском месте, в почтовой базе Lotus'a 7.02 не отрабатывают почтовые правила. Из-за этого приходит большое количество спама. Понятно, что это затрудняет работу людям. Задача в следующем, чтобы весь приходящий спам сыпался в папку "Нежелательная почта". Вот я и задался вопросом возможно ли отловить событие создания входящего письма в почтовой базе. Надеюсь сейчас картина стала более понятней.
Да, теперь понятнее. На Ваш вопрос уже ответил Medevic - надо писать агента на Before new mail arrives (в свойствах агента выбираете Trigger - On Event и в списке Before new mail arrives).

Пример кода агента:
Код:
@If(@Contains(Subject; "SPAM"); @AddToFolder("SpamFolder"; ""); @Success)
Хотя я бы еще занялся вопросом, почему не отрабатывают почтовые правила. Посмотрите серверный лог, может, там инфа будет.
 
U
#7
Все конечно хорошо. Но к сожалению событие Before new mail arrives не отрабатывает. Есть другие варианты решения данной проблемы?
 
D

D!m@n

#9
Все конечно хорошо. Но к сожалению событие Before new mail arrives не отрабатывает. Есть другие варианты решения данной проблемы?
Так не бывает. Скорее уж ошибка в агенте. Выложите код.
Или попробуйте переписать агента на LotusScript. Доступ к документу - через NotesSession.DocumentContext.
 
U
#10
Вот получается какая ситуация, при следующих параметрах агента:
Trigger -> On Event
из списка выбрал Action menu selection
Target -> All selected documents

Все отрабатывает нормально

При параметрах
Trigger -> On Event
из списка выбрал Before new mail arrives

Он не работает

Вот код:
Код:
Sub Initialize
Dim ss As New NotesSession
Dim doc As NotesDocument

Set doc = ss.DocumentContext

If doc.Subject(0) = "SPAM" Then
Call doc.PutInFolder("($JunkMail)")
End If

End Sub
 
D

D!m@n

#13
Попробуйте такой код:
Код:
Sub Initialize
Dim ss As New NotesSession
Dim doc As NotesDocument

Set doc = ss.DocumentContext

doc.Subject=doc.Subject(0) + "****"

Call doc.Save(1, 0)

End Sub
Если будет работать - бум копать дальше.
Кстати, а почтовая база лежит на сервере или на локалке?
 
U
#14
Почтовая база лежит на сервере.
Самое интересное какой код не пишу, даже добавление своего поля в документ ничего не происходит.
Событие Before new mail arrives не хочет отрабатывать.
И еще хочу внести конкретику. Проблема происходит с внешними почтовыми адресами. С внутренними все нормально отрабатывает, даже почтовые правила.
 
S

Sandr

#17
Попробуйте в этом агете проанализировать внешнее письмо, есть ли у него итем Subject и т.д... Тоесть в этом агенте накидайте мессаджбоксов и смотрите лог или консоль сервера при приходе почты...

Обратите еще внимание на авторс-ридерс поля, есть ли такие, возможно что агент попросту не иметт доступа именно к документу...
 
U
#18
Еще больше проясняю ситуацию. Почта находится на сервере.
Когда отправляешь почту она уходит через сервер.
Когда извне получешь почту она постпает через локал.
Поэтому log я не могу посмотреть на сервере.
 

morpheus

скриптописец
07.08.2006
3 915
1
#20
Еще больше проясняю ситуацию.
ну а почему нельза сразу дать детальное описание ситуации

Когда извне получешь почту она постпает через локал.
в любом случае смотрите лог агента (правая кл. мыши - LOG ) запускался ли он вообще. Папробуйте запустить вручную - какой будет результат

D!m@n
видимо напрямую с почтовика(не с Domino) тянеться