Почта

Тема в разделе "Lotus - Программирование", создана пользователем ukr, 23 мар 2008.

  1. ukr

    ukr Гость

    Всем доброго дня.
    Необходимо перехватить письмо, еще до создания его в Почтовой Базе.
    Возможно ли это сделать? Если да, то как?
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    как это ДО создания письма? в момент када у пользователя зародилась мысль надо её перехватить?
     
  3. D!m@n

    D!m@n Гость

    Напишите точнее, в какой именно момент надо перехватить письмо. И о каком вообще письме речь - входящем или исходящем?
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Наверное, входящие.
    Агентом "Before new mail arrives".
     
  5. ukr

    ukr Гость

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

    D!m@n Гость

    Да, теперь понятнее. На Ваш вопрос уже ответил Medevic - надо писать агента на Before new mail arrives (в свойствах агента выбираете Trigger - On Event и в списке Before new mail arrives).

    Пример кода агента:
    Код (Text):
    @If(@Contains(Subject; "SPAM"); @AddToFolder("SpamFolder"; ""); @Success)
    Хотя я бы еще занялся вопросом, почему не отрабатывают почтовые правила. Посмотрите серверный лог, может, там инфа будет.
     
  7. ukr

    ukr Гость

    Все конечно хорошо. Но к сожалению событие Before new mail arrives не отрабатывает. Есть другие варианты решения данной проблемы?
     
  8. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    отчего такие выводы? Это читали?

    какие варианты Вас ещё интересуют?
     
  9. D!m@n

    D!m@n Гость

    Так не бывает. Скорее уж ошибка в агенте. Выложите код.
    Или попробуйте переписать агента на LotusScript. Доступ к документу - через NotesSession.DocumentContext.
     
  10. ukr

    ukr Гость

    Вот получается какая ситуация, при следующих параметрах агента:
    Trigger -> On Event
    из списка выбрал Action menu selection
    Target -> All selected documents

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

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

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

    Вот код:
    Код (Text):
    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
     
  11. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Повторюсь, ЭТО читали?
     
  12. ukr

    ukr Гость

    Читали не помогает.
    Тем более там настройки для того чтобы агент отрабатывал по расписанию. А здесь рассматривается случай на обработку события "Прехода новой почты".
     
  13. D!m@n

    D!m@n Гость

    Попробуйте такой код:
    Код (Text):
    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
    Если будет работать - бум копать дальше.
    Кстати, а почтовая база лежит на сервере или на локалке?
     
  14. ukr

    ukr Гость

    Почтовая база лежит на сервере.
    Самое интересное какой код не пишу, даже добавление своего поля в документ ничего не происходит.
    Событие Before new mail arrives не хочет отрабатывать.
    И еще хочу внести конкретику. Проблема происходит с внешними почтовыми адресами. С внутренними все нормально отрабатывает, даже почтовые правила.
     
  15. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    так может просто нет прав на запуск агента на сервере?
     
  16. ukr

    ukr Гость

    Права есть. С этим все нормально
     
  17. Sandr

    Sandr Гость

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

    Обратите еще внимание на авторс-ридерс поля, есть ли такие, возможно что агент попросту не иметт доступа именно к документу...
     
  18. ukr

    ukr Гость

    Еще больше проясняю ситуацию. Почта находится на сервере.
    Когда отправляешь почту она уходит через сервер.
    Когда извне получешь почту она постпает через локал.
    Поэтому log я не могу посмотреть на сервере.
     
  19. D!m@n

    D!m@n Гость

    Это как? Можно поподробнее?
     
  20. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    ну а почему нельза сразу дать детальное описание ситуации

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

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

Поделиться этой страницей