Avatar billede bigilo Nybegynder
12. januar 2005 - 14:55 Der er 1 løsning

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
Avatar billede bigilo Nybegynder
05. oktober 2005 - 11:32 #1
Fandt selv en måde at gøre det på.
Loggede for det første ind som brugeren selv, og så brugte jeg Move i stedet for Delete
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester