Запрос на удаление письма из ящиков

Wanderer

Well-Known Member
Lotus team
23.03.2006
409
18
37
Москва
#1
Есть ли такая функция на сервере Domino, с возможностью отправки административного запроса по письму от конкретного адресата с конкретной темой, чтобы сервер нашел такие письма по заданным критериям в ящиках пользователей и удалил их?

или есть какие-либо агенты или скрипты, выполняющие сие действие?
 
E

Elena Nefedova

Гость
#2
Есть FTSearch: открываешь - ищешь - удаляешь.
Или прогарммируешь тот же FTSearch - в цикле по ящикам.
Все зависит от соотношения время/кол-во ящиков
 

Wanderer

Well-Known Member
Lotus team
23.03.2006
409
18
37
Москва
#3
Я так понял, речь идет о методе FTSearch, применяя который можно написать свой агент?
А есть ли какое готовое решение?

Может ли кто по шагам подсказать, как осуществить поиск и удаление письма из баз по критерию - отправитель? Сделать уже нужно сейчас и времени на детальные разбирательства нет, увы. :/
 
E

Elena Nefedova

Гость
#4
Если есть возможность обновить дизайн почтовых ящиков, то надо быстро слепить вьюху, которая дает нужное письмо. Затем по всем ящикам в цикле взять все документы из этой вьюхи в коллекцию и удалить.
Если нельзя обновить ящики, то можно использовать db.Search с формулой отбора коллекции. И тоже удалить. НО этот вариант может надолго подвесить почтовые базы, и посыпятся вопли в логи о том, что FTSearch применяется к неиндексированным базам
 

Wanderer

Well-Known Member
Lotus team
23.03.2006
409
18
37
Москва
#5
Спасибо, Елена, за оперативный ответ.. Буду думать, как выбираться из данной ситуации..
 
E

Elena Nefedova

Гость
#6
Вот что надо использовать:
Код:
Set dbdir = notesSession.GetDbDirectory( serverName$ )
Set db = dbdir.GetFirstDatabase(DATABASE)
Set db = dbdir.GetNextDatabase	' - в цикле

Set View = db.GetView( viewName$ )

далее в зависимости от построения вьюхи
- либо set col = View.GetAllDocumentsByKey( keyArray , TRUE )
- либо Set doc = View.GetFirstDocument и Set doc = View.GetNextDocument(doc) '- ясно, с проверкой Nothing
Кстати, Андрей, по поводу вьюхи - если первый столбец сделать категоризированный, а величину там указать, например, "1", то все документы вьюхи как раз и получатся в коллекцию:
Код:
set col = View.GetAllDocumentsByKey( "1" , TRUE )
Потом уже можно удалять
Код:
Call call.RemoveAll( true)
Главное - правильно подобрать формулу SELECT для вьюхи.