Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/86: Рейтинг темы: голосов - 86, средняя оценка - 4.91
BDmV
1

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

21.04.2010, 15:11. Показов 16495. Ответов 3
Метки нет (Все метки)

Есть агент, который из помеченных писем вытаскивает приатаченные файлы, расшифровывает их, снимает подпись и складывает в определённый каталог. (агент срабатывает при выборе пункта меню, т.е. пускается вручную)
Сам скрип работает как надо, но...
После перемещения обработанных писем в папку "Обработанные" у папки "Входящие" не меняется кол-во непрочитанных писем, и с самих писем не снимается пометка о прочтении. Метод NotesDocument.Save() тоже никакого эффекта не даёт.
Подскажите, плиз, где что в этом коде не так и куда и что прописать, чтоб статус "непрочитано" менялся на "прочтено".

Код
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 Nothyng Then
xx = Messagebox("Агент можно запустить только из папки Входящие" , 16, "Внимание!!!")
Exit Sub
End If
Set InBoxCollection = ViewU.Documents.Parent.UnprocessedDocuments
Set     docInboxFile = InBoxCollection .GetFirstDocument
получаем коллекцию документов
If (docInboxFile Is Nothyng) Then
Messagebox "Необходимо выбрать документыдля разбора."
Exit Sub
End If
While Not (docinboxfile Is Nothyng)
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 Nothyng Then Call ViewU.DeselectAll()

End Sub
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2010, 15:11
Ответы с готовыми решениями:

Добовлять пометку в тему письма
Добрый день. Есть Exchange 2003, настроена группа распространения в нее соответственно входят...

Подтверждение о прочтении отправленного письма по e-mail
Есть ли какой-то метод получения подтверждения о прочтении письма, отправленного из Access-а с...

Синхронизации отметки о прочтении письма в браузере и Outlook
Есть две машины, на обоих есть MS Outlook 2013, обе работают с одним почтовым ящиком. С этим же...

установить параметры по умолчанию нового письма
Добрый день,никто не подскажет как, например, для нового письма установить параметры по умолчанию...

3
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
21.04.2010, 15:21 2
У Save есть третий параметр.
0
0 / 0 / 0
Регистрация: 04.08.2008
Сообщений: 408
21.04.2010, 15:23 3
notesDocument.Save( force, createResponse [, markRead ] )
0
BDmV
21.04.2010, 15:34 4
Цитата Сообщение от xalet
notesDocument.Save( force, createResponse [, markRead ] )
Пробывал.
docInboxFile.Save(False, False, True) тоже не помогает. Такое ощущение, что атачи вытаскиваются без открытия письма и поэтому Save ничего и не сохранияет. Хотя я могу и ошибаться, т.к. в Лотусовском скриптоводстве я полный лох. И в данном случае я просто взял чужой скрипт и доделал его так, чтоб атачи проходили через КриптоАрм.
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2010, 15:34

Сделать пометку на удаление документа
Всем привет! Как программно сделать пометку на удаление документа? запросом получил нужные...

Как не отсылать оповещения о прочтении
Доброго времени суток! Как сделать так чтобы лотус не отсылал сообщения о прочтении юзерам,...

Сделать недоступным пометку удаления документа
Здравствуйте! Чуток с горем по полам разобрались. Нельзя отменять редактирование, проводить, И...

Автоматически добавить в таблицу пометку в зависимости от формы
Суть работы в следущем. Сушествуют в реале 4 журнала в которые заносятся практически одинаковые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru