如何通过 Outlook VBA 将每封收到的电子邮件自动保存到硬盘

立即分享:

用户可能希望将电子邮件保存在硬盘上,以便独立于 Outlook 查看它们或与其他人共享。 在本文中,我们将介绍如何通过 VBA 自动执行此操作。

从 Outlook 导出电子邮件

Outlook 消息文件并非每个互联网用户都将 Outlook 用作电子邮件客户端,并且可能正在使用备用客户端。 也可能存在需要与某人共享电子邮件而不发送实际电子邮件的情况。 同样出于文档和审查目的,电子邮件通常作为证据提供。 对于此类情况,Outlook 提供了一种将电子邮件独立导出为 .msg 或 .html 文件的方法。 以下 VBA 脚本将每封收到的电子邮件自动保存到硬盘驱动器上的预定义位置,而无需用户以 html 格式进行干预。 保存后,无需电子邮件客户端即可在任何 Internet 浏览器中查看电子邮件。

展望 VBA 脚本

下面是完整的 Outlook VBA 脚本:

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

如何运行脚本

媒体中心 Alt + F11键 打开 Outlook VBA 编辑器并将以上代码粘贴到“ThisOutlookSession”中。 在运行此脚本之前,请确保文件夹“C:\MyEmails”存在并且用户具有写入权限。 此外,重要的是要知道在运行此脚本之前,Microsoft Outlook XX Object library 应该从“工具”菜单添加到项目引用中,其中 XX 是库rar版本。

理解脚本

在脚本中,“Items_ItemAdd”例程将在收件箱文件夹中的每个传入项目上触发。 “TypeName”函数用于进一步确保仅当项目是电子邮件而不是任何其他类型的 Outlook 对象时例程才会继续。 如果您从任何其他文件夹中拖出一封电子邮件,对收件箱说“已发送邮件”,该例程仍将有效并完成工作。 重要的是要注意“Items_ItemAdd”只会在电子邮件添加到主收件箱文件夹时触发。 如果主收件箱文件夹中有嵌套文件夹,如果向其中任何一个添加电子邮件,代码将不起作用。 为了使其适用于任何其他文件夹,“Items_ItemAdd”应该连接到“Application_S”中的特定文件夹tartup”例程。 在上面的脚本中,olHTML 格式可以替换为 olMSG、olRTF、olDoc 或 olTxt 格式。 保存的每封邮件的默认命名格式是“MyEmail##”,其中##是计数tar从 1 开始逐渐上升。 例如,运行此脚本后收到的第十二封邮件应保存为“MyEmail12”。

Outlook 故障后的数据恢复

Outlook 崩溃并且用户最终丢失大量数据的情况并不少见。 从此类情况中恢复可能是一项非常艰巨且耗时的任务。 为了让你的生活在这种情况下更轻松,你可以使用 展望数据恢复 用于高效且无错误恢复的工具。

作者简介:

Mary Underwood 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 dwg 恢复 和 rar 恢复软件产品。 欲了解更多信息,请访问 datanumen.com

立即分享:

评论被关闭。