Автор темы
Нужен скрипт удалаяющий из почтовой базы каждого пользователя одно письмо с определенной темой, если таковое есть в почтовой базе,
базы находятса на сервере в директории mail
базы находятса на сервере в директории mail
Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.
Ключевые ответы обсуждения и их оценка появятся здесь.
Участники с сильными ответами в этой теме появятся здесь.
Вижу примерно так:
1. Агент подписанный сервером (что был доступ к mail базам)
2. NotesDbDirectory (перебор баз)
3. Search или какой-нибудь GetDocumentByKey (для поиска)
4. Собственно удаление
Dim NotesDir As New NotesDbDirectory(MailServerName)
Dim TmpDb As NotesDatabase
Set TmpDb = NotesDir.GetFirstDatabase(TEMPLATE_CANDIDATE)
While Not TmpDb Is Nothing
'тут делаем проверку путей, поиск и прочее
Set TmpDb = NotesDir.GetNextDatabase
Wend
Хорошо буду на "ты". Я не знаю как сделать чтобы проверял только папку mail котрая на сервере. Ведь TEMPLATE_CANDIDATE - любая база, которая может быть шаблоном. Т.е. он все подряд убдет проверять....Как сделать чтобы он только по указанной мною папке пробегался...???off: давай на "ты"Код:Dim NotesDir As New NotesDbDirectory(MailServerName) Dim TmpDb As NotesDatabase Set TmpDb = NotesDir.GetFirstDatabase(TEMPLATE_CANDIDATE) While Not TmpDb Is Nothing 'тут делаем проверку путей, поиск и прочее Set TmpDb = NotesDir.GetNextDatabase Wend
if Lcase(Left(TmpDb.Filepath, 4)) = "mail" then
'тра-ля-ля
end if
Dim Dc As NotesDocumentCollection
Set Dc = TmpDb.Search({Subject = "матный сабжегд"}, Nothing, 0)
if Dc.Count > 0 then Call Dc.RemoveAll(True)
RemovePermanently(True)
Dim ProcessDb as New NotesDatabase("", "")
Call ProcesDb.Open(TmpDb.Server, TmpDb.Filepath)
if ProcesDb.IsOpen then
'понеслась
end if
Set collection = ProcessDb.Search({Subject = "Test"} , Nothing,0)
Set ProcessDb = New NotesDatabase("", "")