Come salvare automaticamente ogni e-mail in arrivo sul disco rigido tramite VBA di Outlook

Condividi ora:

Un utente potrebbe voler salvare le e-mail sul disco rigido per visualizzarle indipendentemente da Outlook o per condividerle con qualcun altro. In questo articolo, introdurremo come farlo automaticamente tramite VBA.

Esporta email da Outlook

File di messaggi di OutlookNon tutti gli utenti di Internet utilizzano Outlook come client di posta elettronica e potrebbero utilizzarne uno alternativo. Potrebbe anche esserci una situazione in cui un'e-mail deve essere condivisa con qualcuno, senza inviare l'e-mail vera e propria. Anche ai fini della documentazione e del controllo, le e-mail sono spesso presentate come prova. Per tali scenari, Outlook offre un metodo per esportare un messaggio di posta elettronica in modo indipendente come file .msg o .html. Il seguente script VBA salva automaticamente ogni e-mail in arrivo in una posizione predefinita sul disco rigido senza l'intervento dell'utente in formato html. Una volta salvata, l'e-mail può essere visualizzata in qualsiasi browser Internet senza la necessità di un client di posta elettronica.

Script VBA di Outlook

Di seguito è riportato lo script VBA di Outlook completo:

Private WithEvents Items As Outlook.Items

Private Count As Integer

Private Sub Application_Startup()
         Dim objApp As Outlook.Application
         Dim objNameSpace As Outlook.NameSpace   

         '        Get the items in the Inbox folder
         Set objApp = Outlook.Application
         Set objNameSpace = objApp.GetNamespace("MAPI")
         Set Items = objNameSpace.GetDefaultFolder(olFolderInbox).Items       
         '        Initialize count
         Count = 1
End Sub
 
Private Sub Items_ItemAdd(ByVal objItem As Object)
         On Error GoTo ShowError        

         Dim objMail As Outlook.MailItem     

         '        Check if the item is a mail. If yes, then save it as a HTML file and update Count
         If TypeName(objItem) = "MailItem" Then
                   Set objMail = objItem
                   objMail.SaveAs "C:\MyEmails\MyEmail" & CStr(Count), olHTML
                   Count = Count + 1
         End If      

         Exit Sub

ShowError:
         MsgBox Err.Number & " - " & Err.Description
End Sub

Come eseguire lo script

Stampa Alt + F11 per aprire l'editor VBA di Outlook e incollare il codice sopra in "ThisOutlookSession". Prima di eseguire questo script, assicurarsi che la cartella "C:\MyEmails" esista e che l'utente disponga dell'autorizzazione di scrittura su di essa. Inoltre, è importante sapere che prima di eseguire questo script, Microsoft Outlook XX Object library dovrebbe essere aggiunto ai riferimenti del progetto dai menu "Strumenti", dove XX è la librarversione y.

Comprendi il copione

Nello script, la routine "Items_ItemAdd" verrà attivata su ogni elemento in arrivo nella cartella Posta in arrivo. La funzione "TypeName" è lì per garantire ulteriormente che la routine continui solo se l'elemento è un'e-mail e non altri tipi di oggetto di Outlook. Se trascini un'e-mail da qualsiasi altra cartella, pronuncia "Posta inviata" nella posta in arrivo, la routine funzionerà comunque e farà il lavoro. È importante essere consapevoli del fatto che "Items_ItemAdd" si attiverà solo se un'e-mail viene aggiunta alla cartella Posta in arrivo principale. Se sono presenti cartelle nidificate all'interno della cartella Posta in arrivo principale, il codice non funzionerà se viene aggiunta un'e-mail a una di queste. Per farlo funzionare per qualsiasi altra cartella, "Items_ItemAdd" dovrebbe essere collegato a quella particolare cartella in "Application_Startup”. Nello script sopra, il formato olHTML può essere sostituito con i formati olMSG, olRTF, olDoc o olTxt. Il formato di denominazione predefinito per ogni e-mail da salvare è "MyEmail##", dove ## è il conteggio starting da 1 e salendo in modo incrementale. Ad esempio, la dodicesima email in arrivo dopo l'esecuzione di questo script verrà salvata come "MyEmail12".

Recupero dati dopo un errore di Outlook

Non è uno scenario molto raro che Outlook si rompa e gli utenti finiscano per perdere una grande quantità di dati. Il recupero da tali situazioni può essere un compito molto difficile e che richiede tempo. Per semplificarti la vita in questi casi, puoi usare un Recupero dati Outlook strumento per un recupero efficiente e privo di bug.

Introduzione dell'autore:

Mary Underwood è un'esperta di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui dwg recupero e rar prodotti software di ripristino. Per maggiori informazioni visita www.datanumen.com

Condividi ora:

I commenti sono chiusi.