Как написать Агент для считывания почты

Тема в разделе "Lotus - Программирование", создана пользователем Guest_, 18 янв 2005.

Статус темы:
Закрыта.
  1. Guest_

    Guest_ Гость

    Как написать Агент для считывания почты и выклад. нужную инф. на сайт из писем.
    Вот!?
    У меня ступор. Помогите пожалуйста кто чем может
    pool9@nm.ru
     
  2. Guest_

    Guest_ Гость

    Ещё не могу найти такую штуку в нете: Domino Import Service
    И такую: Domino Design components
    :(
     
  3. nor

    nor Гость

    Уважаемый, Guest_Юрий
    Не будете ли вы так любезны предоставить сообществу продвинутых программистов под Лотус, явным и неявным образом тусующихся на этом форуме, более внятную и содержательную постановку задачи.
    Что служит критерием отбора писем?
    Что служит критерием отбора контекста в отобранных письмах?
    На какой сайт?
    На чем и каким образом работает сайт?
    Вам нужно агент сей целиком написать или рассказать каким именно образом пишутся агенты вообще?
     
  4. Guest_

    Guest_ Гость

    Спасибо за ответ. Извиняюсь за неясность. С lotus'ом познакомился всего неделю назад. Передо мной стоит задача на сайт www.natie.ru/fleetview.html, что на сервере domino работает, поставить следующий скрипт (программу): Из писем, приходящих пользователям отбирать только от определённого адресата. Далее идёт считывание контекста и отбирается информация, примерно так: после "1)" копировать (отобрать) первые два слова; после "2)" копировать семь цифр, слеш (/) и следующие пять цифр; после "3)" копировать первые пять слов и следующие 3 цифры. Затем полученные данные вставляются в страничку, типа:
    (Позиции на 12.01.05: А. Виноградов - приход два - 5418209/41261 - погрузка завершена в срок 542).
    Причём, информация должна обновляться ежедневно по поступлению писем. Напрмер: от 16281@mail.ru для А. Виноградов от 16.01.05, для Tamara от 16.01.05, от 16281@mail.ru для А Виноградов от 17.01.05.
    Вот! А агент конечно лучше целиком. Спасибо!
     
  5. Guest_

    Guest_ Гость

    Ну или хотябы чтоб всталялся весь контекст. Главное - ежедневное обновление по поступлению корреспонденции.
    Пожалуйста, помогите. :)
     
  6. nor

    nor Гость

    Guest_Юрий
    Для начала тебе необходимо ознакомится со следующими статьями в хэлпе дизайнера и администратора:
    - Creating a database that receives mailings
    - Reserved fields that control mailing options
    - Setting server mail rules

    Чтобы заработал агент необходимо выполнить следующее:
    1. Создать правило, по которому бы приходящая корреспонденция фильтровалась по определенному адресату:
    из приложения администратора: <почтовый сервер Domino> - configuration - server - configurations - router/smtp
    - restrictions and controls - rules - new rule

    там указываешь:
    specify conditions:
    sender contains mailforme@km.ru (где mailforme@km.ru - адресат, по которому будет фильтроваться входящая почта, взят мною в качестве примера и отладки)

    specify actions:
    move to database mailintest.nsf (где mailintest.nsf - бд, куда будет перенаправляться входящая корреспонденция, создана мною в качестве примера в корневой директории почтового сервера Domino)

    Сохраняешь и закрываешь конфигурационный документ.

    2. Создаешь в директории почтового сервера следующую бд, которая содержит:

    1. форму документов, для отображения перенаправленных почтовых сообщений, со следующими полями:
    Form = "Memo"
    SendTo (text field type)
    From (text field type)
    Subject (text field type)
    Body (rich text field type)
    2. представление документов "all" с формулой отбора: SELECT @All
    3. агент "MailInDocumentsProccess", обрабатывающий поступившие в бд перенаправленные почтовые сообщения:
    runtime: trigger on event after new mail has arrived

    Код (Text):
    Sub Initialize 
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc_collection As NotesDocumentCollection
    Dim note As NotesDocument
    Dim rtitem As NotesRichTextItem
    Dim message As String
    Dim two_words As String
    Dim numeric_value As String
    Dim five_words As String
    Dim three_numeric As String

    Set db = session.CurrentDatabase   
    Set doc_collection = db.UnprocessedDocuments  ' новые почтовые сообщения, поступившие в бд с последнего запуска текущего агента
    Set note = doc_collection.GetFirstDocument
    While Not note Is Nothing
     Set rtitem = note.GetFirstItem("Body")
     message  = rtitem.GetUnformattedText  ' текст почтового сообщения как plain text
     ' получим первые два слова сообщения
     two_words = Strleft(message, " ")
     For i = 2 To 2
       message = Trim(Strright(message, " "))
       two_words = two_words + " " + Strleft(message, " ")
     Next  
     message = Trim(Strright(message, " "))
     ' получим цифровые значения: цифры до слэша и цифры после слэша
     numeric_value = Strleft(message, "/")
     message = Trim(Strright(message, "/"))
     numeric_value = numeric_value + "/" + Strleft(message, " ")
     message = Trim(Strright(message, " "))
     ' получим следующие пять слов
     five_words = Strleft(message, " ")
     For i = 2 To 5    
       message = Trim(Strright(message, " "))
       five_words = five_words + " " +Strleft(message, " ")
     Next
     message = Trim(Strright(message, " "))
     ' получим следующие 3 цифры
     three_numeric = Left(message, 3)
     ' далее полученной информацие пользуемся на свое усмотрение: копируем в новые документы в другие бд (странички для web), рассылаем по почте и т.д.  
     '......
     
     Set note = doc_collection.GetNextDocument(note)
    Wend


    End Sub

    Агент срабатывает каждый раз, когда на почтовый сервер поступает входящий документ определенного адресата и начинает обрабатывать его, таким образом соблюдается актуальность. В качестве примера агент обработал следующее входящее письмо:
    "Приход два 5418209/41261 погрузка завершена точно в срок 542 другой текст...." и получил на выходе следующее:


    two_words = "Приход два"
    numeric_value = "5418209/41261"
    five_words = "погрузка завершена точно в срок"
    three_numeric = "542"
    __________________________
    Программа отлажена и проверена на работоспособность.
     
  7. Guest_

    Guest_ Гость

    Господи! Есть ещё герои на земле! Спасибо вам большое. Уже открываю справку.
    Дай вам бог здоровья!
    :) :) :)
     
  8. neverbeen

    neverbeen Гость

    А один хой не че у меня так и не запахало. Млин, ну и ламер же я :(
     
Загрузка...
Статус темы:
Закрыта.

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