VBscript som sletter mails fra en anden postkasse.
Hej,Jeg har siddet og arbejdet på at så slettet en masse mail fra en postkasse kladet spamkassen. Det er der alt vores spam lander når der kommer noget.
Jeg vil derfor gerne slette de mail der komme, efter ca. 10 dage
Men når jeg sletter dem, så kommer de over i min egen slettet post. Dette ønsker jeg ikke. Vi taler om va 7000 mails om dagen, så....
Men er det muligt at slette dem helt, eller måske smide dem over i skamkassen's slettet post?
Her kan i se hvad jeg har lavet ind til vidre:
:::::::::::::::::::::Script::::::::::::
Dim Counter(5), Size(5)
Dim CN, RS, Sernow,Sernow2,Serstart,serstart2, SerMail
Dim objOutlook, objNameSpace, MyRecipient, ObjFolder, oicItems, objitem
Dim SQL,Dato,antal,kb
Dim AntalStart
Wscript.Echo "Tjekker Spamkassen ..."
Start = Now
'Sætter Counter og Size til 0
For i = 0 to 4
Counter(i) = 0
Size(i) = 0
Next
'Gør klar til at oprette forbinelse til Database
Set CN = CreateObject("ADODB.Connection")
Set RS = CreateObject("ADODB.RecordSet")
'Finder de 2 datoer, som de mails der findes skal være imellem
serNow=DateSerial(Year(Now),Month(Now),(Day(Now)))-20
SerStart=FormatDateTime(SerNow, 2)
serNow2=DateSerial(Year(Now),Month(Now),(Day(Now)))-10
SerStart2=FormatDateTime(SerNow2, 2)
'Opretter forbinelse til Spamkassen
Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set myrecipient = objNamespace.CreateRecipient("=Spamkassen")
Set objFolder = objNamespace.GetSharedDefaultFolder(myrecipient, 6).Items
Antalstart = objFolder.Count
'Soter mail i spamkassen.
SQL = "[ReceivedTime] > '" & serstart & "' and [ReceivedTime] < '" & serstart2 &"'"
Set oicItems = objFolder.Restrict(SQL)
'Køre mails igennem en efter en, og tæller antal per dag, og hvor meget de fylder
For iFor = oicItems.count To 1 Step -1
Set objitem = oicItems(iFor)
SerMail=DateSerial(Year(objitem.ReceivedTime),Month(objitem.ReceivedTime),Day(objitem.ReceivedTime))
Counter(SerMail-SerNow) = Counter(SerMail-SerNow) + 1
Size(SerMail-SerNow) = Size(SerMail-SerNow) + objitem.Size
Entry = objitem.entryID
'Sletter mailen
'objitem.Delete
Next
'Opretter forbinelse til Acces Databasen "Statestik.mdb"
CN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=statestik.mdb"
'køre de 5 poster i array counter og Size igennem
For I = 0 to 4
'Finder den dag, mail stammer fra.
Dato = FormatDateTime(i+sernow,2)
'Ser om der var nogle mails den dag.
if Counter(i) > 0 then
'Laver size om fra byte til kb
Size(i) = Size(i)/1024
Size(i) = FormatNumber(Size(i),2)
Size(i) = Replace(Size(i),".","")
Size(i) = Replace(Size(i),",",".")
'Ser om der er talt mail fra den dag.
SQL = "Select * from spam where dato = '" & dato & "'"
RS.Open SQL,CN
If RS.EOF = true then
'hvis der ikke er noget i databasen, så gemmes oplysningerne i en ny post
SQL = "Insert Into spam(dato,antal,kb) values('" & dato & "'," & counter(i) & "," & size(i) & ")"
'wscript.echo SQL
CN.execute SQL
else
'Hvis posten findes, så lægges de sammen, og gemmes igen i databasen
antal = RS.Fields("antal") + counter(i)
kb = RS.Fields("kb") + Size(i)
SQL = "Update spam set antal = " & antal & " AND kb = " & kb & " where dato = '" & dato & "'"
'Wscript.echo SQL
cn.execute SQL
end if
'Lukker RecordSet
RS.Close
End if
Next
'Lukker forbindelsen til databasen.
CN.Close
slut = Now()
wscript.echo "Der er nu " & objFolder.count & " mails i spamkassen, før var der " & antalstart
'Ryder op
Set RS = nothing
Set CN = nothing
set objOutlook = nothing
Set objNameSpace = nothing
Set MyRecipient = nothing
Set ObjFolder = nothing
Set oicItems = nothing
Set objitem = nothing
tid = FormatDateTime(slut-start)
Wscript.Echo "Tjek af Spamkassen Færdig... efter" & tid
