Как использовать AppleScript для получения адресов электронной почты, информации об учетной записи из Lotus Notes? - PullRequest
0 голосов
/ 02 июня 2011

У нас есть почтовый ящик, содержащий примерно 60 000 электронных писем, и мне было поручено извлечь имена, номера счетов и адреса электронной почты из тела каждого и экспортировать его в удобный для работы с таблицами формат.

Я думал об использовании AppleScript и Notes 8.5, но не могу найти никакой документации о том, как взаимодействовать с отдельными сообщениями в Notes.

Может кто-нибудь помочь?

1 Ответ

1 голос
/ 02 июня 2011

Если вы знакомы с языками сценариев, я предлагаю вместо этого использовать LotusScript.Он дает вам прямой доступ к объектам Notes, а не к Applescript и API Notes C * .

Вы можете создать агент Notes в почтовом ящике с помощью приложения Notes Designer.Код примерно такой:

Dim s as New NotesSession
Dim db as NotesDatabase
Dim dc as NotesDocumentCollection
Dim doc as NotesDocument

Set db = s.CurrentDatabase
Set dc = db.Search(|Form="Memo"|, Nothing, 0)
Set doc = dc.GetFirstDocument

While Not (doc Is Nothing)

    'Process each document here...

    Set doc = dc.GetNextDocument(doc)
End While

Вопрос в том, как адреса электронной почты, номера счетов и имена хранятся в теле каждого письма?

Вы можете вытащить весь текст из электронных писем, возможно, в большой текстовый файл, а затем обработать этот с помощью Applescript, если вам это более удобно.

fileNum = Freefile()
pathname = "C:\path\to\file"
Open pathname For Output As fileNum
While Not (doc Is Nothing)

    Set rtitem = doc.GetFirstItem( "Body" )
    Write #fileNum, rtitem.GetFormattedText(False, 0)

    Set doc = dc.GetNextDocument(doc)
End While
Close fileNum

Или вы можете использовать методы NotesRichTextItem для навигации и извлечения определенных данных из тела.Это может быть полезно, возможно, если данные хранятся в таблицах в теле письма, так как методы NotesRichTextItem позволяют найти элемент таблицы и перемещаться по ячейкам (хотя это довольно сложно и может стоить опубликовать второй вопрос).в StackOverflow, чтобы получить помощь в этом).

Если вы хотите получить адрес электронной почты и имена в полях «Кому:» или «От»: вы можете сделать это более просто, открыв свойстваNotesDocument для каждого письма.Поля могут быть извлечены так:

Dim ToEmail as String
Dim FromEmail as String

ToEmail = doc.SendTo(0)   'a document's item properties are zero-based arrays
FromEmail = doc.From(0)  
...