Поиск неиспользуемых почтовых файлов

Wanderstep

Lotus Team
23.03.2006
493
66
BIT
26
Народ честной, помогите или подскажите!
Есть необходимость проверки существующих почтовых файлов на их последнее использование/открытие. Может есть у кого готовое решение проблемы по поиску неиспользуемых почтовых ящиков (не только "мёртвых", но и существующих юзеров) и выдаче админу списка владельцев сих файлов? Я так полагаю, это вполне реально.
Просто люди увольняются, но админу не сообщают о движении кадров. А вручную выискивать - не совсем рационально.
 

Wanderstep

Lotus Team
23.03.2006
493
66
BIT
26
Может кто подскажет, как создать представление, в котором бы отображался список баз данных (почтовых файлов) с возможностью сортировки по дате последнего обращения пользователя к БД?
Есть вообще такое свойство у базы данных помимо общеизвестных таких, как "дата создания" и "дата изменения"?
 
G

Guest

Есть. На второй вкладке свойств базы можно посмотреть.
В Админке можно посмотеть такой вид в действии.

Глянь в хелпе свойства NotesDatabase - Created и LastModified.
 

Wanderstep

Lotus Team
23.03.2006
493
66
BIT
26
<!--QuoteBegin-Юлия+31:03:2006, 11:57 -->
<span class="vbquote">(Юлия @ 31:03:2006, 11:57 )</span><!--QuoteEBegin-->Глянь в хелпе свойства NotesDatabase - Created и LastModified.
[snapback]32829" rel="nofollow" target="_blank[/snapback]​
[/quote]Если я не ошибаюсь, то "LastModified" не совсем подходит под мои нужды, т.к. эти самые последние изменения производит и сервер, доставляя почту в почтовый ящик. А мне интересует существование некоего свойства NotesDatabase, которое отражало бы именно последнее обращение (открытие) пользователя к почтовому файлу. Но по всей видимости, такого свойства нет - по крайней мере, я ничего похожего не нашел в хелпе.
 
N

nor

Wanderer

IBM Domino Administrator client - Files - (выбери свой мэйл сервер) - mail директория.

Отобразиться список всех почтовых файлов на выбранном сервере. Выбери интересующую тебя базу, затем - меню Files/Analize... Сделай анализ по User activity.
 
G

Guest

Для: nor
А как можно получить значение последнего обращения пользователя к базе с помощью LS? Желательно конкретного пользователя.
Можно ли это в принципе?
 

Wanderstep

Lotus Team
23.03.2006
493
66
BIT
26
nor
Спасибо! Упустил из вида данную возможность. К сожалению, Analyze доступен только для отдельной базы данных. Есть ли подобная возможность для анализа целого списка баз данных?
 
M

Murtas

1. Подойти в бухгалтерию и взять список всех активных сотрудников. Надеюсь проблем не возникнет с названиями почтовых баз. (Сорри за банальность.)

2. Все таки проще систематизировать движение кадров, используя хотя бы примитивную базу типа "Кадры" (с указание статуса сотрудника) ... при использовании Лотуса отсутствие таковой базы в системе выглядит кастрированной почтовой системой без расширенной инфы по пользователям.

3. Скорее совет для дальнейшей работы: если предыдущие пункты никак нельзя осуществить, и народ почти ежедневно "движется". - Сделать свой почтовый темплэйт и применить ко всем почтовым базам. С этих баз потом будет создаваться лог с информацией (датой) ,например, последнего открытия почты.
 
N

nor

Для: Юлия
Если косвенно проанализировать деятельность пользователя над документами. Все документы в базе данных хранят список имен последних редакторов и список дат последнего редактирования документа. По другому - я не решал подобной задачи еще, потому ничего конкретного сказать не могу более.
 

Wanderstep

Lotus Team
23.03.2006
493
66
BIT
26
А как сделать поиск даты последнего отправленного сообщения по почтовым базам?
 
N

nor

Для: Wanderer


Agent

Name: MailFileProcess
Options: Shared
Runtime: Trigger 'On event', 'Agent list selection', Target 'None'.

Код:
(Declarations)
Dim session As NotesSession
Dim db As NotesDatabase
Dim FILE_DIR As String
Dim MAIL_DIR As String
Dim SENDTO As String

Sub Initialize 	
Dim maildb As NotesDatabase
Dim view As NotesView
Dim maildoc As NotesDocument
Dim rtitem As NotesRichTextItem	
Dim file_path As String
Dim file_name As String
Dim result() As String
Dim i As Integer
Dim msg As String

On Error Goto catch 

Set session = New NotesSession
Set db = session.CurrentDatabase 
FILE_DIR = "C:\Lotus\Domino\Data\mail\"
MAIL_DIR = "mail\"
file_path = FILE_DIR + "*.nsf*"
' list of all .nsf files in the FILE_DIR
file_name = Dir$(file_path, 0)
SENDTO = "admin/iba"
i = -1
Do While file_name <> "" 
Set maildb = session.GetDatabase(db.Server, MAIL_DIR + file_name, False) 
If Not maildb Is Nothing Then
If Not maildb.CurrentAccessLevel < ACLLEVEL_READER Then
 Set view = maildb.GetView("($Sent)")
 Call view.Refresh
 Set maildoc = view.GetLastDocument
 If Not maildoc Is Nothing Then
 	i = i + 1 
 	Redim Preserve result(i)
 	result(i) = maildb.FilePath + "': " + Cstr(maildoc.PostedDate(0))
 End If
Else
 Call SendAdminLog("Ошибка доступа: " + FILE_DIR + file_name, SENDTO)
End If 
End If 
file_name = Dir$()
Loop
' send result() to SENDTO
If Not i = -1 Then
msg = Join(result, Chr(10))
Call SendAdminLog(msg, SENDTO)
End If

Exit Sub 
catch:
Call ErrorProcess()
End
Resume Next 

End Sub

Sub SendAdminLog(msg As String, sendto As String) 	
Dim maildoc As NotesDocument
Dim rtitem As NotesRichTextItem

On Error Goto catch 

Set maildoc = New NotesDocument(db)	
maildoc.Form = "Memo"
maildoc.Subject = db.Title + " application administration log message "
maildoc.SendTo = sendto
maildoc.Principal = db.Title + " application"
Set rtitem = New NotesRichTextItem(maildoc, "Body") 
Call rtitem.AppendText(msg)
Call maildoc.Send(False) 	

Exit Sub 
catch: 
End
Resume Next	

End Sub

Sub ErrorProcess()

On Error Goto catch

Call SendAdminLog(|Agent "| + agent.Name + |" error:| + Ustring(2, Chr(10)) + |Error #| + Cstr(Err) + | in line | + Cstr(Erl) + |: | + Error$() + |.|, SENDTO)

Exit Sub 
catch:	
End
Resume Next	

End Sub
 
N

nor

Для: Wanderer
В любой бд, расположенной на сервере, в котором есть директория mail, которая содержит почтовые файлы, которые тебе нужно обработать.
 
Мы в соцсетях:

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