Question : Automatically deleting emails by date

Is there anyway to get exchange 2k3 sp2 (ent) to go through everyones inbox and automatically delete emails older than 90 days?
I've hacked at scripts off the net and they just seem to loop or do nothing?

here's what I've got so far: (opens a file of exchange alias's and uses it to access the mbox via backofficestorage)



dim strGetName

Set objFSO = CreateObject("Scripting.FileSystemObject")

On Error Resume Next

Const FOR_READING = 1

strNamesFile = "names.txt"

'Read user names for modification from text file.
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strNamesFile) Then
  Set objTextStream = objFSO.OpenTextFile(strNamesFile, FOR_READING)
Else
  WScript.Echo "Input file " & strNamesFile & " not found."
  WScript.Quit
End If

Do Until objTextStream.AtEndOfStream
  strGetName = objTextStream.ReadLine

mailboxurl = "file://./backofficestorage/domain/MBX/" & strGetName & "/inbox"
set Rec = CreateObject("ADODB.Record")
set Rs = CreateObject("ADODB.Recordset")
Set Conn = CreateObject("ADODB.Connection")
Conn.Provider = "ExOLEDB.DataSource"
Rec.Open mailboxurl, ,3
SSql = "SELECT ""DAV:href"", ""DAV:contentclass"" FROM scope('shallow traversal of """ & mailboxurl & """') "
SSql = SSql & " WHERE (""urn:schemas:httpmail:datereceived"" < CAST(""" & isodateit(now()-90) & """ as 'dateTime')) AND ""DAV:isfolder"" = false"
SSql = SSql & " AND ""DAV:contentclass"" = 'urn:content-classes:message'"
Rs.CursorLocation = 2 'adUseServer = 2, adUseClient = 3
rs.open SSql, rec.ActiveConnection, 3
while not rs.eof
rs.delete 1
rs.movenext
wend
rs.close

Loop

objTextStream.Close


function isodateit(datetocon)
strDateTime = year(datetocon) & "-"
if (Month(datetocon) < 10) then strDateTime = strDateTime & "0"
strDateTime = strDateTime & Month(datetocon) & "-"
if (Day(datetocon) < 10) then strDateTime = strDateTime & "0"
strDateTime = strDateTime & Day(datetocon) & "T" & formatdatetime(datetocon,4) & ":00Z"
isodateit = strDateTime
end function


Or does anyone know of a better way to do this?

thanks

AJJ

Answer : Automatically deleting emails by date

you can set a mailbox manager policy and configure it to run on the mailboxes homed on the exchange server
Random Solutions  
 
programming4us programming4us