Как установить пометку о прочтении письма?

Тема в разделе "Lotus - Программирование", создана пользователем BDmV, 22 апр 2010.

  1. BDmV

    BDmV Гость

    Есть агент, который из помеченных писем вытаскивает приатаченные файлы, расшифровывает их, снимает подпись и складывает в определённый каталог. (агент срабатывает при выборе пункта меню, т.е. пускается вручную)
    Сам скрип работает как надо, но...
    После перемещения обработанных писем в папку "Обработанные" у папки "Входящие" не меняется кол-во непрочитанных писем, и с самих писем не снимается пометка о прочтении. Метод NotesDocument.Save() тоже никакого эффекта не даёт.
    Подскажите, плиз, где что в этом коде не так и куда и что прописать, чтоб статус "непрочитано" менялся на "прочтено".
    Код (Text):
    Sub Initialize
    Const inbox$ = "($Inbox)"  
    Const Done$ = "Обработанные"
    Dim o As Notesembeddedobject   
    Dim InBoxCollection As NotesDocumentCollection 
    Dim docInboxFile As NotesDocument
    Dim docInboxFilene As NotesDocument
    Dim file As String
    Dim filename As String
    Dim tmp As String
    Dim path As String
    Dim dc As Variant
    Dim m As Variant
    Dim m1 As Variant
    Dim m2 As Variant
    Dim leng As Integer
    Dim wks As New NotesUIworkspace
    Dim ViewU As NotesUIView
    Dim xx As Integer
    Dim Session As New NotesSession
    Dim tmpd As String*256

    Set ViewU = wks.currentview
    Set dc=CreateObject("DigtCrypto.PKCS7Message")

    leng = GetTempPath(256, tmpd)
    tmp$ = Left$(tmpd, leng)

    path$ =""        ' Куда складывать файлы после обработки
    path = Session.GetEnvironmentString("detachpathMF", True)
    If path$="" Then
    Messagebox "Не существует записи в notes.ini, поэтому файлы буду складывать в" & tmp$
    path$=tmp$
    End If

    If ViewU Is Nothing Then
    xx = Messagebox("Агент можно запустить только из папки 'Входящие'" , 16, "Внимание!!!")
    Exit Sub
    End If
    Set InBoxCollection = ViewU.Documents.Parent.UnprocessedDocuments
    Set     docInboxFile = InBoxCollection .GetFirstDocument    
    'получаем коллекцию документов
    If (docInboxFile Is Nothing) Then
    Messagebox "Необходимо выбрать документыдля разбора."
    Exit Sub
    End If 
    While Not (docinboxfile Is Nothing)
    Set docInboxFilene= InBoxCollection.GetNextDocument(docInboxFile)
    If docInboxFile.HasEmbedded Then
    Forall DocItem In docInboxFile.Items
    If docitem.name = "$FILE" Then
    Set o = docInboxFile.GetAttachment(docitem.values(0))
    If ((Mid$(DocItem.Values(0),1,3) <> "ATT") And (Mid$(DocItem.Values(0),1,3) <>"FILESEG")) Then
    file$ = path$ +"\"+ DocItem.Values(0)
    filename$ = Dir$(file,0)
    If Ucase(filename) = Ucase(DocItem.Values(0)) Then
    Messagebox("Файл " & file & " уже существует")
    Else
    Call o.ExtractFile(tmp + DocItem.Values(0))
    m=dc.Load(3, tmp+ DocItem.Values(0))     ' Загрузка шифрованного файла в поток              
    Set m1 =dc.Decrypt()     ' Расшифровка файла в потоке
    m2=dc.Save(0, 0, path$+"\"+ DocItem.Values(0)) 'Сохранение файла из потока со снятием подписи
    End If
    End If
    End If
    End Forall
    docInboxFile.Save(False, False)  ' НИ КАКОГО ЭФФЕКТА
    docInboxFile.RemoveFromFolder(Inbox$)
    docInboxFile.PutInFolder(Done$)
    ViewU.View.Refresh
    Else
    Messagebox "Прикреплённые файлы отсутствуют."
    End If
    Set     docInboxFile = docInboxFilene
    Wend
    If Not ViewU Is Nothing Then Call ViewU.DeselectAll()  

    End Sub
     
  2. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    У Save есть третий параметр.
     
  3. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    notesDocument.Save( force, createResponse [, markRead ] )
     
  4. BDmV

    BDmV Гость

    Пробывал.
    docInboxFile.Save(False, False, True) тоже не помогает. :) Такое ощущение, что атачи вытаскиваются без открытия письма и поэтому Save ничего и не сохранияет. Хотя я могу и ошибаться, т.к. в Лотусовском скриптоводстве я полный лох. И в данном случае я просто взял чужой скрипт и доделал его так, чтоб атачи проходили через КриптоАрм.
     
Загрузка...

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