KutoolsforOffice — Un'unica soluzione, cinque potenti strumenti.Ottenere di più con meno sforzo.

Come salvare gli allegati in Outlook senza dover aprire l'email?

AutoreSiluvia Data di modifica

Potrebbe capitare frequentemente di dover salvare gli allegati delle email ricevute sui dischi del proprio computer. È semplice salvare un allegato o tutti gli allegati di un messaggio email, ma come fare per salvare gli allegati da più email contemporaneamente? Normalmente, occorre aprire ripetutamente le email e salvare manualmente gli allegati. Esistono metodi per evitare queste operazioni ripetitive? Le procedure illustrate in questa guida possono aiutare.

Salvare gli allegati da una o più email senza aprirle utilizzando codice VBA
Salvare gli allegati da una o più email senza aprirle con uno strumento avanzato


Salvare gli allegati da una o più email senza aprirle utilizzando codice VBA

Il seguente codice VBA consente di salvare gli allegati da una o più email contemporaneamente, senza dover aprire i messaggi in Outlook. Procedi come indicato di seguito.

1. Seleziona un'email o più email da cui desideri salvare gli allegati, quindi premi i tasti Alt+F11 per aprire la finestra di Microsoft Visual Basic for Applications.

2. Espandi la cartella Oggetti Microsoft Outlook, fai doppio clic su ThisOutlookSession per aprire la finestra del Codice e incolla il codice VBA riportato di seguito al suo interno.

salva allegati con VBA 1

Codice VBA: Salvare gli allegati senza aprire le email

Public Sub SaveAttachmentsWithoutOpening()
'Updated by Extendoffice 20191008
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
Dim xAttachment As Outlook.Attachment
Dim i As Long
Dim xCount As Long
Dim xFileName As String
Dim xSavePath As String
Dim xOriginalFiles As String
On Error Resume Next
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.BrowseForFolder(0, "Select a folder:", 0, strStartingFolder)
If Not TypeName(xFolder) = "Nothing" Then
    Set xFolderItem = xFolder.self
    xSavePath = xFolderItem.Path & "\"
Else
    xFileName = ""
    Exit Sub
End If
For Each xMailItem In Outlook.ActiveExplorer.Selection
    Set xAttachments = xMailItem.Attachments
    xCount = xAttachments.Count
    xOriginalFiles = ""
    If xCount > 0 Then
        For i = xCount To 1 Step -1
            Set xAttachment = xAttachments.Item(i)
            If IsEmbeddedAttachment(xAttachment) = False Then
                xFileName = xSavePath & xAttachment.FileName
                xAttachment.SaveAsFile xFileName
                xAttachment.Delete
                If xMailItem.BodyFormat <> olFormatHTML Then
                    xOriginalFiles = xOriginalFiles & vbCrLf & "file://" & xFileName
                Else
                    xOriginalFiles = xOriginalFiles & "<br>" & "<a href='file://" & xFileName & "'>" & xFileName & "</a>"
                End If
            End If
        Next i
        If xMailItem.BodyFormat <> olFormatHTML Then
            xMailItem.Body = "The file(s) were saved to " & xOriginalFiles & vbCrLf & vbCrLf & xMailItem.Body
        Else
            xMailItem.HTMLBody = "<p>" & "The file(s) were saved to " & xOriginalFiles & "</p>" & xMailItem.HTMLBody
        End If
        xMailItem.Save
    End If
Next
Set xAttachments = Nothing
Set xMailItem = Nothing
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

4. Premere il tasto F5 per eseguire il codice. Si aprirà quindi la finestra BrowseForFolder. Seleziona una cartella in cui salvare gli allegati, quindi fai clic sul pulsante OK.

Tutti gli allegati delle email selezionate verranno salvati immediatamente nella cartella scelta.

Nota: Tutti gli allegati verranno rimossi dalle email e nei corpi dei messaggi rimarranno soltanto i collegamenti al percorso di salvataggio corrispondente.

salva allegati con VBA 2

Salvare gli allegati da una o più email senza aprirle con uno strumento avanzato

Se non hai dimestichezza con il codice VBA, il metodo illustrato in questa sezione è un’ottima alternativa.

Si consiglia di utilizzare l’utilità Salva tutti gli allegati di Kutools per Outlook. Se desideri semplicemente salvare gli allegati senza rimuoverli dalle email selezionate, la funzione Salva tutti gli allegati ti permette di farlo in modo rapido e intuitivo. Ecco come procedere.
Prima di utilizzare Kutools per Outlook, è necessario scaricarlo e installarlo preventivamente.

Dì addio all’inefficienza di Outlook! Kutools per Outlook semplifica l’elaborazione batch delle email – e ora puoi provarlo gratis per 30 giorni!Scarica subito Kutools per Outlook!!

1. Seleziona le email contenenti gli allegati da salvare, quindi fai clic su KUTOOLS PLUS > Strumenti allegati > Salva tutto.

2. Nella finestra di dialogo Impostazioni di salvataggio, procedi come segue:

  • 2,1) Nella sezione Salva gli allegati in questa cartella, scegliere una cartella in cui salvare gli allegati;
  • 2,2) Il campo Salva gli allegati con lo stile seguente è opzionale e ti permette di creare una sottocartella con uno stile specifico per salvare gli allegati oppure di rinominarli secondo uno stile predefinito.
  • 2,3) Fare clic su OK per avviare il salvataggio di tutti gli allegati dalle email selezionate.

Suggerimenti: Con le impostazioni indicate sopra, tutti gli allegati verranno salvati nella cartella specificata. Se invece desideri salvare solo determinati allegati — ad esempio soltanto i file PDF il cui nome contiene la parola «invoice» — puoi configurare le condizioni di filtro come segue.

  • Fare clic sul pulsante Opzioni avanzateper espandere le condizioni di filtro;
  • Specifica le condizioni in base alle tue esigenze.
    Suggerimenti: In questo esempio, viene selezionata la casella Nome allegatocontiene e inserita la parola «invoice» nella casella di testo; successivamente viene spuntata la casella Il tipo di allegato è, inserendo «.pdf» nella casella di testo.
salva allegati con kutools 2

3. Nella finestra di dialogo successiva, fare clic su per continuare.

Gli allegati delle email selezionate vengono salvati immediatamente nella cartella specificata.

Suggerimenti: per rimuovere gli allegati dalle email selezionate, lasciando nei corpi dei messaggi solo i collegamenti ipertestuali agli allegati, puoi utilizzare la funzione Rimuovi tutti gli allegati.


Articoli correlati

Scarica e salva automaticamente gli allegati da Outlook in una cartella specifica
Di solito, puoi salvare tutti gli allegati di un’email facendo clic su Allegati > Salva tutti gli allegati in Outlook. Ma se vuoi salvare automaticamente tutti gli allegati provenienti da tutte le email ricevute, esiste una soluzione? In questo articolo ti presentiamo due metodi per scaricare automaticamente gli allegati da Outlook direttamente in una cartella a tua scelta.

Mantenere gli allegati quando si risponde in Outlook
Quando inoltri un messaggio email in Microsoft Outlook, gli allegati originali vengono automaticamente mantenuti nel messaggio inoltrato. Tuttavia, quando rispondi a un'email, gli allegati non vengono inclusi automaticamente nella tua risposta. Ecco alcuni utili suggerimenti per conservare gli allegati originali anche quando rispondi in Microsoft Outlook.

Cercare parole all'interno degli allegati (contenuto) in Outlook
Quando digiti una parola chiave nella casella di ricerca rapida di Outlook, la ricerca viene effettuata nell’oggetto, nel corpo dei messaggi, negli allegati e così via. Ma se vuoi cercare quella parola chiave esclusivamente nel contenuto degli allegati, ecco come fare: questo articolo ti guida passo dopo passo per trovare facilmente parole all’interno degli allegati in Outlook.