Condividi:        

Outlook : salvare automaticamente allegati

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Outlook : salvare automaticamente allegati

Postdi buni75 » 07/05/15 17:27

salve,

c'è modo con Outlook 2010 di costruire una regola che, a fronte di mittente e/o testo fisso nel messaggio, salvi gli allegati in una determinata cartella del PC ?

ogni giorni ricevo delle mail dove l'allegato ha sempre lo stesso mittente e il nome del file è standard nei primi 10/15 caratteri, quindi riesco a far posizionare le mail in una certa cartella di outlook, ma gli allegati vanno salvati manualmente sul PC.

grazie , Francesco
buni75
Utente Junior
 
Post: 41
Iscritto il: 24/08/11 20:20

Sponsor
 

Re: Outlook : salvare automaticamente allegati

Postdi Dylan666 » 07/05/15 21:39

crea una regola per il testo e fagli applicare questa macro:
http://www.pixelchef.net/content/rule-a ... nt-outlook
Avatar utente
Dylan666
Moderatore
 
Post: 39988
Iscritto il: 18/11/03 16:46

Re: Outlook : salvare automaticamente allegati

Postdi buni75 » 09/05/15 08:32

eccezionale !!!
ho provato e funziona alla grande, grazie e buon wend

Francesco
buni75
Utente Junior
 
Post: 41
Iscritto il: 24/08/11 20:20

Re: Outlook : salvare automaticamente allegati

Postdi Dylan666 » 09/05/15 09:15

Grazie a te per il feedback
Avatar utente
Dylan666
Moderatore
 
Post: 39988
Iscritto il: 18/11/03 16:46

Re: Outlook : salvare automaticamente allegati

Postdi buni75 » 12/05/15 14:37

ciao Dylan,

è sorto un problemino : può accadere che alcuni file abbiano lo stesso nome, e allora leggendo ancora sul sito ho fatto la modifica dello script per mettere il time stamp.
il fatto è che lo mette all'inizio del file, invece avrei necessità di metterlo in coda prima di ".txt"

sapresti aiutarmi?

grazie, francesco
buni75
Utente Junior
 
Post: 41
Iscritto il: 24/08/11 20:20

Re: Outlook : salvare automaticamente allegati

Postdi Dylan666 » 12/05/15 15:48

è meno banale di quello che pensi, io passo la mano
Avatar utente
Dylan666
Moderatore
 
Post: 39988
Iscritto il: 18/11/03 16:46

Re: Outlook : salvare automaticamente allegati

Postdi Anthony47 » 12/05/15 22:57

Prova a sostituire il ciclo For Each objAtt /Next con
Codice: Seleziona tutto
     For Each objAtt In itm.Attachments
        aName = objAtt.DisplayName
        mySplit = Split(aName, ".", , vbTextCompare)
        If UBound(mySplit, 1) > 0 Then
            aName = Replace(aName, "." & mySplit(UBound(mySplit, 1)), "_" & Format(Now, "yyyy-mm-dd_hh-mm") & "." & mySplit(UBound(mySplit, 1)))
        Else
            aName = aName & "_" & Format(Now, "yyyy-mm-dd_hh-mm")
        End If
        objAtt.SaveAsFile saveFolder & "\" & aName
        Set objAtt = Nothing
     Next


Ti e' chiaro che, con la macro che stai usando, ti troverai su disco sia gli allegati nella mail che quelli salvati separatamente? Io li avrei eliminati dalla mail...

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Outlook : salvare automaticamente allegati

Postdi buni75 » 13/05/15 12:49

ciao Anthony,

funziona egregiamente, l'unico neo è che se ricevo 2 o + file nello stesso minuto, il time stamp è uguale e perdo comunque un file.
c'è modo di mettere una sorta di contatore alfa o num al posto del time stamp? oppure un time stamp con i millisecondi?

sono mail che arrivano a raffica durante il giorno, quindi è facile che ne arrivino più di una nello stesso minuto.

tks, Francesco
buni75
Utente Junior
 
Post: 41
Iscritto il: 24/08/11 20:20

Re: Outlook : salvare automaticamente allegati

Postdi Anthony47 » 13/05/15 22:33

Forse basta inserire i secondi:
Codice: Seleziona tutto
Format(Now, "yyyy-mm-dd_hh-mm-ss")
(in due posti)

Se non ti fidi allora inserisci un ritardo di un secondo subito prima del next:
Codice: Seleziona tutto
    Application.Wait (Now + TimeValue("0:00:01"))
Next

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Outlook : salvare automaticamente allegati

Postdi buni75 » 14/05/15 06:45

ciao,

se il pc viene acceso dopo che i messaggi sono partiti, anche così perdo qualche allegato.
il top sarebbe avere i millisecondi oppure un contatore 0-9999 al posto del time stamp.

tks, francescco
buni75
Utente Junior
 
Post: 41
Iscritto il: 24/08/11 20:20

Re: Outlook : salvare automaticamente allegati

Postdi Anthony47 » 14/05/15 11:20

Se nel nome file c' e' il "Secondo", e se con la Wait finale aspetto certamente un secondo tra un ciclo e il successivo allora non puoi perdere allegati, e se li perdi e' per altri motivi; secondo me perche' una regola in ricezione non e' garantito sara' applicata a tutti i messaggi, se essi arrivano a blocchi (da questo punto di vista, la Wait e' in effetti una aggravante).
Per prova, aggiungi questa linea dopo il Next
Codice: Seleziona tutto
    Next
Debug.Print Format(Now, "hh:mm:ss _ ") & itm.Sender & " -- " & itm.Subject

Poi ferma outlook fino ad essere certo di aver ricevuto 5-10 mail; rilancia outlook e aspetta il completamento della ricezione.
Apri il vba (Alt-F11), apri la finestra Immediata (Contr-g) e controlla quante mail da quanti mittenti sono state "elaborate"; confronta questo elenco con le mail effettivamente ricevute e guarda se ci sono "sorprese".

Infatti io non avrei lavorato su una regola + script, ma con una macro che periodicamente controlla Inbox e cerca le mail che rispettano i criteri (ma io non sono capace di controllare criteri che non siano molto basici); trovandole le "spoglia" degli allegati che vengono salvati (ma possono rimanere, se lo spazio non e' un problema) e magari le sposta in altro folder.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Outlook : salvare automaticamente allegati

Postdi buni75 » 14/05/15 13:34

CIAO,

ora mi va in debug su "Application.Wait". ecco lo script :

Codice: Seleziona tutto
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "c:\SGScarti\"
     For Each objAtt In itm.Attachments
        aName = objAtt.DisplayName
        mySplit = Split(aName, ".", , vbTextCompare)
        If UBound(mySplit, 1) > 0 Then
            aName = Replace(aName, "." & mySplit(UBound(mySplit, 1)), "_" & Format(Now, "yyyy-mm-dd_hh-mm-ss") & "." & mySplit(UBound(mySplit, 1)))
        Else
            aName = aName & "_" & Format(Now, "yyyy-mm-dd_hh-mm-ss")
        End If
        objAtt.SaveAsFile saveFolder & "\" & aName
        Set objAtt = Nothing
        Application.Wait (Now + TimeValue("00:00:01"))

Next
Debug.Print Format(Now, "hh:mm:ss _ ") & itm.Sender & " -- " & itm.Subject

End Sub


cosa ho sbagliato?

grazie , Francesc
buni75
Utente Junior
 
Post: 41
Iscritto il: 24/08/11 20:20

Re: Outlook : salvare automaticamente allegati

Postdi Anthony47 » 14/05/15 14:32

cosa ho sbagliato?
Hai sbagliato a fidarti di quello che ti dico!
Application.Wait non esiste sul vba di Outlook.
Inserisci questa funzione nello stesso modulo della tua macro:
Codice: Seleziona tutto
Sub myWait(ByVal myStab As Single)
Dim myStTIm As Single
'
    myStTIm = Timer
    Do          'wait myStab
        DoEvents
        If Timer > myStTIm + myStab Or Timer < myStTIm Then Exit Do
    Loop
End Sub

Poi invece di Application.Wait etc etc scrivi myWait(1)

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Outlook : salvare automaticamente allegati

Postdi buni75 » 14/05/15 16:01

cosi' mi da "prevista end sub" su Set objAtt = Nothing

Codice: Seleziona tutto
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "c:\SGScarti\"
     For Each objAtt In itm.Attachments
        aName = objAtt.DisplayName
        mySplit = Split(aName, ".", , vbTextCompare)
        If UBound(mySplit, 1) > 0 Then
            aName = Replace(aName, "." & mySplit(UBound(mySplit, 1)), "_" & Format(Now, "yyyy-mm-dd_hh-mm-ss") & "." & mySplit(UBound(mySplit, 1)))
        Else
            aName = aName & "_" & Format(Now, "yyyy-mm-dd_hh-mm-ss")
        End If
        objAtt.SaveAsFile saveFolder & "\" & aName
        Set objAtt = Nothing
Sub myWait(ByVal myStab As Single)
Dim myStTIm As Single
'
    myStTIm = Timer
    Do          'wait myStab
        DoEvents
        If Timer > myStTIm + myStab Or Timer < myStTIm Then Exit Do
    Loop
End Sub
myWait (1)
Next
Debug.Print Format(Now, "hh:mm:ss _ ") & itm.Sender & " -- " & itm.Subject

End Sub


non riesco proprio ...

grazie, Francesco
buni75
Utente Junior
 
Post: 41
Iscritto il: 24/08/11 20:20

Re: Outlook : salvare automaticamente allegati

Postdi Anthony47 » 14/05/15 18:47

La Sub myWait e' una macro a se' stante, quindi va inserita dopo il codice della tua Sub saveAttachtoDisk.
Ricorda che il Debug.Print e' solo a scopi di test (creare un elenco di mail processate).

Ti prego di usare il tag "Code" quando inserisci il codice di una macro, o una formula; migliora la leggibilita': selezioni il testo della macro o della formula, premi il tasto Code che trovi subito sopra il textbox in cui si scrive il messaggio.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Outlook : salvare automaticamente allegati

Postdi gialos » 27/12/16 18:47

Buonasera a tutti.
purtroppo questo script non funziona con la posta certificata, o meglio salva come allegato un messaggio di posta e non il suo contenuto.
Sapresti modificare lo script in maniera tale che estragga il pdf da dentro il messaggio allegato?
grazie
gialos
Newbie
 
Post: 2
Iscritto il: 27/12/16 18:41

Re: Outlook : salvare automaticamente allegati

Postdi Anthony47 » 28/12/16 22:50

Ciao gialos, benvenuto nel forum.
Non conosco il comportamento di Outlook sulla posta certificata, quindi non so aiutarti.

Mi spiace...
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Outlook : salvare automaticamente allegati

Postdi gialos » 02/01/17 19:52

outlook si comporta come tutti gli altri messaggi, solo che con la posta ceritficata ti arriva un messaggio con un allegato che è un altro messaggio (in effetti l'allegato è un file .eml o .msg) per cui bisognerebbe trattare l'allegato come un mailitem e da qui estrarre l'allegato .pdf
Purtroppo non so come si fa
Se ci puoi dedicare un po del tuo tempo te ne sono grato.
Saluti
gialos
Newbie
 
Post: 2
Iscritto il: 27/12/16 18:41

Re: Outlook : salvare automaticamente allegati

Postdi Anthony47 » 02/01/17 20:51

Vedro' con calma se ricavo qualcosa...
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Outlook : salvare automaticamente allegati

Postdi andrea.luise » 11/10/18 17:28

Buonasera, mi sono incuriosito di questa discussione che avevate intrapreso nel 2017, ho un problema simile, per le email che arrivano devo salvare i soli allegati pdf dove il nome del file deve corrispondere altrimenti non deve essere presa in considerazione.
il nome del file è composto da un numero variabile + un nome (nominativo del mittente) es. "1270 pippo.pdf" inoltre, se fosse possibile se il file rispecchia la regola la mail dovrebbe passare dallo stato da leggere a già letta.
Aiutoooo, non saprei come fare.
Saluti
andrea.luise
Newbie
 
Post: 3
Iscritto il: 11/10/18 17:22

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Outlook : salvare automaticamente allegati":

incollare in Outlook
Autore: valyfilm
Forum: Software Windows
Risposte: 1

Chi c’è in linea

Visitano il forum: Nessuno e 34 ospiti