Salve a tutti, ho fatto questa macro in VBA per Outlook:
codice:
Sub Sposta_Mail()
Dim Conn As ADODB.Connection
Dim StringaConn As String
Dim Rs As ADODB.Recordset
Set Conn = New ADODB.Connection
Set Rs = New ADODB.Recordset
StringaConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MIO_DATABASE.mdb;Persist Security Info=False"
Conn.Open StringaConn
Set Rs = Conn.Execute("SELECT * FROM Codici")
Do While Not Rs.EOF
Dim objFolder As Outlook.MAPIFolder, objInbox As Outlook.MAPIFolder
Dim objNS As Outlook.NameSpace, objItem As Outlook.MailItem
Dim FSO As FileSystemObject
Set objNS = Application.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Set FSO = New FileSystemObject
For Each objItem In Application.ActiveExplorer.Selection
If (FSO.FolderExists("Posta in arrivo\" & Rs.fields("Codice").Value)) = False Then
FSO.CreateFolder ("Posta in arrivo\" & Rs.fields("Codice").Value)
End If
If Mid(objItem.SenderName, 3, 7) = Rs.fields("Codice").Value Then
Set objFolder = objInbox.Folders(Rs.fields("Codice").Value)
objItem.Move objFolder
End If
Next
Set FSO = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objInbox = Nothing
Set objNS = Nothing
Rs.MoveNext
Loop
End Sub
Questo codice dovrebbe:
1) Controllare se una detemrinata cartella esiste, se non esiste la crea.
2) Mettere dentro la relativa cartella i corrispondenti mittendi.
esempio
Cartella 1234 dentro ci dete mettere 1234@email.it
PROBLEMI:
1) non crea la cartella, probabilmente perchè non si può inq aundo sul PC non esiste l'indirizzo c:\programmi\outlook\posta in arrivo
2) la esegue sol oquando lanciata, non c'è la possibilità di inserire un timer in outlook?
Grazie per l'attenzione