Проблема извлечения аттача из письма

Тема в разделе "Lotus - Программирование", создана пользователем tired, 16 май 2007.

  1. tired

    tired Гость

    Я в лотусе новичек, мне поставили простенькую задачку, извлекать вложенные архивы из приходящих писем, в хелпе нашел похожий скрипт

    Dim doc As NotesDocument
    Dim rtitem As Variant
    Dim fileCount As Integer
    Const MAX = 100
    fileCount = 0

    Set rtitem = doc.GetFirstItem( "Body" )
    If ( rtitem.Type = RICHTEXT ) Then
    Forall o In rtitem.EmbeddedObjects
    If ( o.Type = EMBED_ATTACHMENT ) _
    And ( o.FileSize > MAX ) Then
    fileCount = fileCount + 1
    Call o.ExtractFile _
    ( "c:\reports\newfile" & Cstr(fileCount) )
    Call o.Remove
    Call doc.Save( True, True )
    End If
    End Forall
    End If

    Когда пытаюсь его проверить на выполнение появляется ошибка Object variable not set
    Как правильно объявить Set doc= ???
     
  2. Fossil Code

    Fossil Code Гость

    См. Accessing documents in LotusScript classes в хепле дизайнера.
     
  3. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    1. Получить коллекцию документов
    2. В цикле обработать каждый документ в отдельности

    Схема следующая:
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim dc As NotesDocumentCollection
    Dim doc As NotesDocument

    Set db = session.CurrentDatabase
    Set dc = db.UnporoccesedDocuments 'документы для обработки, переданные агенту
    Set doc = dc.GetFirstDocument

    while not(doc Is Nothing)
    'ваш код по обработке документа doc
    ....................
    Set doc = dc.GetNextDocument(doc)
    wend
     
  4. johny

    johny Гость

    функция по сохранению файлов из писем


    Sub myFileSave( doc As NotesDocument, folder As String, flag As Integer )
    Dim strFile As String
    Dim rtitem As Variant
    Dim direct As Variant
    Dim str_1 As String
    Dim str_2 As String
    Dim itemType As Integer
    Dim fileName As String
    Set wrdObj = CreateObject("Word.Application") 'создание
    If Isnull(wrdObj) Then ' если не удалось получить объект - завершение процедуры
    Messagebox "Не удается создать 'документ'."
    Exit Sub
    End If
    wrdObj.Documents.Add
    str_1 = Cstr(doc.PostedDate( 0 )) + "_" + Cstr(doc.SendTo(0)) + "_" + Cstr(doc.Subject( 0 ))
    str_2= Replace (str_1 , ":", "_")
    fileName= Replace (str_2, "/", "_") & ".doc"
    Set rtitem = doc.GetFirstItem("Body")
    Set wordDoc = wrdObj.ActiveDocument
    Set table1= wordDoc.Tables.Add(wordDoc.Range(0,0),4,1)
    table1.cell(1,1).Range.Text = "Текст письма"
    table1.cell(2,1).Range.Text = rtitem.Text
    table1.cell(3,1).Range.Text = "Прикрепленные файлы"
    If doc.HasEmbedded Then
    Forall o In rtitem.EmbeddedObjects
    If flag=0 Then
    Mkdir folder & "\" & "attachment"
    End If
    strFile = folder & "\" & "attachment" & "\"& o.name' & ".tt"
    Call o.ExtractFile(strFile )
    Call table1.cell(4,1).Range.InlineShapes.AddOLEObject( "", strFile ,False,True, "" , 0,o.Name)
    End Forall
    End If
    wrdObj.ChangeFileOpenDirectory (folder & "\")
    Call wordDoc.SaveAs( fileName, wdFormatDocument, False, "", True, "", False, False, False, False, False )
    wrdObj.Documents(fileName).close(wdSaveChanges)
    Call wrdObj.Quit()
    End Sub
     
  5. tired

    tired Гость

    Всем СПАСИБО !!!
    разобрался
     
  6. IsAvailable

    IsAvailable Гость

    Из почтовой базы агентом извлекаю(пытаюсь) файлы таким образом:

    Код (Text):
    Set rtitem = doc.GetFirstItem("Body")
    Forall obj In rtitem.EmbeddedObjects
    If Isobject(obj) And Not obj Is Nothing Then
    If obj.Type = EMBED_ATTACHMENT Then
    obj.ExtractFile(path & obj.source)
    End If
    End If
    End Forall
    где doc - это текущее открытое письмо (NotesDocument)
    path - строка типа "<диск>:\<папка>\"

    Собственно, проблем нет, если письма нешифрованные. Если шифрованные, то вываливается сообщение: You must supply the bulk decription key in order to extract this file object
    Агент запускается по нажатию на кнопке в письме, от имени владельца базы.

    В чем может быть загвоздка?
     
Загрузка...
Похожие Темы - Проблема извлечения аттача
  1. c0de3r
    Ответов:
    5
    Просмотров:
    119
  2. DobermannTT
    Ответов:
    10
    Просмотров:
    134
  3. SoulPaladin
    Ответов:
    4
    Просмотров:
    128
  4. Artael
    Ответов:
    1
    Просмотров:
    110
  5. ENSLER
    Ответов:
    0
    Просмотров:
    102

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