Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Best practices for large Lotus Notes mail files

Return to article

Code for CleanupInbox agent

' CleanupInbox – moves older documents out of inbox 
Sub Initialize
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Set db = s.CurrentDatabase
	Dim dr1 As notesdaterange
	Dim v As notesview
	Dim dc1 As NotesDocumentCollection
	Dim gracedoc As NotesDocument
	Dim stime1 As New NotesDateTime("0/0/0")
	Dim etime1 As New NotesDateTime("Today")
	
	Set gracedoc = db.GetProfileDocument("inboxgracedays")
	Dim graceval As Variant
	Dim gracedays As Integer
	
' if no profile doc has been prepared, default is 90 days
	If gracedoc.HasItem("gracedays") Then
		graceval = gracedoc.GetItemValue("gracedays")
		gracedays = Cint(graceval(0))
	Else
		gracedays = 90
	End If
	
	etime1.AdjustDay(-1*gracedays)
	
' create a daterange excluding docs newer than graceperiod	
	Set dr1 = s.CreateDateRange()
	Set dr1.StartDateTime = stime1
	Set dr1.EndDateTime = etime1
	
	'dc1: collection of 'old' documents from inbox 
	   (before or on Today - gracedays)
	Set v = db.GetView("($Inbox)")
	Set dc1 = v.GetAllDocumentsByKey(dr1)
	
	'pull out expired docs
	dc1.RemoveAllFromFolder("($Inbox)")
End Sub

'SetInboxGracePeriod agent – sets the grace period for inbox

Sub Initialize
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Set db = s.CurrentDatabase
	Dim gracedoc As NotesDocument
	Dim gracedays As Integer
	Dim inputgracedays As Integer
	Dim maxdays As Integer
	Dim graceval As Variant
	Dim gracevar As Variant
	maxdays = 1000
	
	Set gracedoc = db.GetProfileDocument("inboxgracedays")
	If gracedoc.HasItem("gracedays") Then
		graceval = gracedoc.GetItemValue("gracedays")
		gracedays = Cint(graceval(0))
	Else
		gracedays = 90
	End If
getInput:
	inputgracedays = -1
	gracevar = Inputbox("Days to retain in Inbox? (currently " &
	   gracedays & ")" )
	If (gracevar <> "") Then
		inputgracedays = Cint(gracevar)
	End If
	
	While (inputgracedays > maxdays)
		Msgbox("Maximum of " & maxdays 
		  & " days exceeded")
		Goto getInput
	Wend
	
	If inputgracedays <> -1 Then
		gracedays = inputgracedays
	End If
	
	Set gracedoc = db.GetProfileDocument("inboxgracedays")
	gracedoc.ReplaceItemValue "gracedays",gracedays
	Call gracedoc.Save(False,False)
End Sub

Return to article