自动打印超过 10,000 封电子邮件及其附件,包括 ZIP 文件的内容

use*_*750 10 email printing automation microsoft-outlook-2010 exchange-2010

出于某种邪恶的原因,我需要通过Outlook 2010打印出 10,500 封电子邮件及其附件(约占电子邮件的 70%)。我和你一样,对如此荒谬的低效率和我们估计的 55,000 张纸感到震惊,这将使我们和世界付出代价。尽管如此,它会手动(过去两天我们一直在做的事情)或自动(请上帝帮助我们)发生。

这些需要进行排序,以便每封电子邮件都位于其各自附件的顶部,并按时间顺序打印。所以电子邮件 1、附件 1、电子邮件 2、附件 2 等等。附件可以是 Powerpoint、Excel、Word Docs,最麻烦的是:zip 文件。

这是我迄今为止尝试过的:

  1. 在 Outlook 中“选项”-->“打印选项”--> 选择带附件打印

  2. 将所有邮件转换为 .eml 文件并从文件夹打印

  3. 使用第三方邮件插件(由 Sperrysoftware 提供)将所有电子邮件转换为 pdf 并导出到文件夹。获取此文件夹并按日期重新排序并打印出 pdf。

这就是为什么到目前为止它都不起作用的原因:

  1. Outlook 的带附件打印设置很少适用于其中包含宏的文档。最重要的是,它不适用于 zip 文件,只是传递这些文件。

  2. 显然 .eml 文件不能在邮件客户端之外直接打印或读取。我实际上认为这仍然是我们最有前途的努力,因为它确实是以稳定的格式表示的整个邮件文件,分离的,并且在邮件客户端之外——这意味着它们是可行的。我似乎找不到第三方软件可以有效地让我将电子邮件及其各自的压缩和各种格式的附件转换为可打印的文件。如果您知道,我们也愿意在软件上花费超过 200 欧元。

  3. 这个软件起初很有前途。但是宏经常中断,它也将我们公司的电子邮件签名识别为附件。

如果您能提供任何建议,这将对我们有很大帮助。我们目前正在打开每封电子邮件及其各自的 3 - 4 个附件,并通过每个附件各自的打印对话框打印它们。这将需要我们五个人一个月的时间,因此您的意见将受到高度重视!

Ray*_*ian 0

我的这台机器上没有 Outlook,并且直到下周我才能访问带有 Outlook 的 Windows 机器。但基本上,你想做这样的事情:

Sub test()
Dim oFolder As outlook.folder
Dim oAttachment As outlook.attachment
Dim oMailItem As outlook.mailitem
Dim oItem As Object

set oFolder = 'get the folder you want to print from

Dim i As Integer
Dim j As Integer
 
For i = 1 To oFolder.items.Count
    Set oMailItem = oFolder.items(i)
    oMailItem.PrintOut
    
    If oMailItem.attachments.Count > 0 Then
        For j = 1 To oMailItem.Attachments.Count
              'below you might need to change the attachment(j) to items(j)
            Set oAttachment = oMailItem.attachment(j)
            oAttachment.PrintOut
        Next
    End If
    
Next

End Sub
Run Code Online (Sandbox Code Playgroud)

因此,它会遍历文件夹查找电子邮件,打印它们并检查附件,如果找到,也打印它们。

正如我所说,我没有前景,所以我无法对此进行测试。

不要继续实时数据!

如果我是你,我会将三封已复制的电子邮件放入一个新文件夹中,并在接触任何实时数据之前对其进行测试。您可能需要查找如何set oFolder