24 messaggi dal 13 novembre 2009
Salve, devo creare uno script in vbscript, in grado di intercettare una email, tramite l'oggetto, e scaricare in una cartella gli allegati.

Ho trovato qualche esempio ma non riesco a farlo funzionare correttamente.

Mi dareste qualche indizio?

Grazie.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, puoi postare il link allo script che hai trovato? Vorrei poterlo vedere per capire come funziona.

Come soluzione alternativa, userei questa libreria per interrogare il server posta, scaricare i messaggi "interessanti" e salvarne gli allegati.
Questo però presuppone che il proprietario della casella email non ce l'abbia configurata nel suo client di posta in modalità POP3 con eliminazione immediata dei messaggi dal server. Se così fosse rischierei di perderne molti.

ciao

Enjoy learning and just keep making
24 messaggi dal 13 novembre 2009
Questo e' il codice.
Funziona ma non riesco a capire come puntare su un'altra casella di posta (altro account) oppure direttamente sulla cartella "posta in arrivo".
Questo script legge tutte le email della cartellaOutlook e quando trova l'allegato con il nome che gli interessa lo scarica.
Per non fargli leggere tutte le email basta testare la dataRicezioneEmail.

Ciao


====================================================================
LocalPath = "c:\dati\"
NomeFileOut = "out.txt"
CartellaOutlook = "estrai"
AttachName = "calcolo"

'Dichiarazione costanti
Dim Outlook, olkInbox, olkItem, olkAttach
Const olFolderInbox = 6

'Dichiarazione istanze
Set Outlook = CreateObject("Outlook.Application")
Set olkInbox = OutLook.Session.GetDefaultFolder(olFolderInbox).Folders(CartellaOutlook)

'Esegue azione anche con outlook chiuso
Outlook.Session.Logon
'------------------------------------------------------

'------------------------------------------------------
'Cicla su tutte le email della cartella
For Each olkItem In olkInbox.Items
DataRicezioneEmail = replace(mid(olkItem.ReceivedTime,1,10),"/","_")

If olkItem.Attachments.Count > 0 Then

'Testa nome dell'allegato per poterlo scaricare in LocalPath
For Each olkAttach In olkItem.Attachments
if (instr(lcase(olkAttach.FileName),AttachName)) > 0 and _
dataRicezioneEmail = "04_04_2013" then

'Salva allegato con data
NomeAllegato = DataRicezioneEmail&"_"&olkAttach.FileName
msgbox LocalPath & NomeAllegato
olkAttach.SaveAsFile LocalPath &"\"& NomeAllegato

msgbox olkAttach.FileName & " Copiato"
i = i + 1
end if
Next
End If
Next
'------------------------------------------------------

'------------------------------------------------------
if i < 1 then
msgbox "Nessun allegato scaricato"
else
msgbox i & " Files copiati"
end if
'------------------------------------------------------

'------------------------------------------------------
'Chiusure
Set Outlook = nothing
Set OlkInbox = nothing

wscript.quit
'------------------------------------------------------

====================================================================
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

teonet2006 ha scritto:

non riesco a capire come puntare su un'altra casella di posta


Prova a dare un'occhiata a questa funzione GetFolderPath. Dovrebbe riuscire a recuperarti la cartella della posta in arrivo di un altro account. L'importante è che il percorso che passi alla funzione sia corretto.
http://www.slipstick.com/outlook-developer/working-vba-nondefault-outlook-folders/#GetFolderPath

ciao
Modificato da BrightSoul il 10 aprile 2013 22.19 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.