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

  • Автор темы Guest_
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_

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

Guest_

#2
Ещё не могу найти такую штуку в нете: Domino Import Service
И такую: Domino Design components
:(
 
N
#3
Уважаемый, Guest_Юрий
Не будете ли вы так любезны предоставить сообществу продвинутых программистов под Лотус, явным и неявным образом тусующихся на этом форуме, более внятную и содержательную постановку задачи.
Что служит критерием отбора писем?
Что служит критерием отбора контекста в отобранных письмах?
На какой сайт?
На чем и каким образом работает сайт?
Вам нужно агент сей целиком написать или рассказать каким именно образом пишутся агенты вообще?
 
G

Guest_

#4
Спасибо за ответ. Извиняюсь за неясность. С 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.
Вот! А агент конечно лучше целиком. Спасибо!
 
G

Guest_

#5
Ну или хотябы чтоб всталялся весь контекст. Главное - ежедневное обновление по поступлению корреспонденции.
Пожалуйста, помогите. :)
 
N
#6
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

Код:
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"
__________________________
Программа отлажена и проверена на работоспособность.
 
G

Guest_

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

neverbeen

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