• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

Wanderstep

Lotus Team
23.03.2006
493
65
BIT
17
Есть ли такая функция на сервере Domino, с возможностью отправки административного запроса по письму от конкретного адресата с конкретной темой, чтобы сервер нашел такие письма по заданным критериям в ящиках пользователей и удалил их?

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

Elena Nefedova

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

Wanderstep

Lotus Team
23.03.2006
493
65
BIT
17
Я так понял, речь идет о методе FTSearch, применяя который можно написать свой агент?
А есть ли какое готовое решение?

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

Elena Nefedova

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

Wanderstep

Lotus Team
23.03.2006
493
65
BIT
17
Спасибо, Елена, за оперативный ответ.. Буду думать, как выбираться из данной ситуации..
 
E

Elena Nefedova

Вот что надо использовать:
Код:
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 для вьюхи.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!