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


10

由于某些不道德的原因,我需要通过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个附件,并通过每个附件的相应打印对话框进行打印。这将需要我们五个人一个月,因此您的宝贵意见将受到高度重视!


4
我看不到这是一个产品推荐问题。尽管该问题可能需要推荐软件,但它指定了要解决的问题,而不是专门要求软件。
bwDraco

2
无论如何,您的问题都以避免索取软件推荐的方式来组织-很好,因为对于Stack Exchange网络上的大多数站点而言,软件推荐问题都是题外话。有关更多信息,请参见帮助中心
bwDraco

2
我倾向于将所有电子邮件转换为Maildir格式,然后让每个脚本都经过一个脚本并打印电子邮件和附件。您可以在自由职业者网站上以200EUR的价格把某人卖掉
Paul

1
细节。为什么要这样做?
ewwhite

1
这里没有人认为VBA可以做到这一点吗?这些邮件在您的交换服务器上吗?
Raystafarian 2014年

Answers:


3

MsgExtract可以批量打印来自不同电子邮件来源的电子邮件,还可以转换电子邮件格式。

  1. 它可以按时间顺序批量打印电子邮件及其附件。我们在最新版本中添加了根据您的要求解压缩和打印zip附件的功能。
  2. 可以将Outlook电子邮件另存为EML文件
  3. 可以将Outlook电子邮件另存为PDF文件
  4. 它可以下载消息的html部分中链接的图像,并以结果格式包含它们(PDF文件,打印机...)

为了打印附件,MsgExtract依赖于Windows Shell打印关联,如果附件文件扩展名不存在关联,则将其跳过。

您可以在以下位置了解有关MsgExtract批打印的更多信息:

http://docs.maildev.com/article/122-how-do-i-batch-print-email-messages-and-its-attachments

(免责声明,我是MsgExtract的作者)


1
尽管您的答案很有意义,但大多数或全部本质上都是促销性的。这很可能导致您的帐户被暂停。如果您想推广自己的产品,请考虑在Stack Exchange上购买广告。另请参阅帮助中心meta.superuser.com/questions/2352/recommending-own-products
bwDraco 2014年

3
我试图提供相关答案会有所帮助。该产品肯定可以帮助user4167750解决他的打印任务,除有人建议的自定义编程外,我不知道其他任何现有选项。我是否应该知道自己有相关的解决方案而避免发布?无论如何,我现在都阅读了常见问题解答中的自我推广部分,并且了解到您正在努力避免垃圾邮件来维护网站的质量。
jponce 2014年

@jponce,非常感谢您在这里的回答。看起来它确实可以解决我们的问题。我们确实可以将所有电子邮件都放入一个.eml文件中。但是,还会有另外两个(我认为是次要的)问题。如果您有任何输入,这将进一步加快该过程。1)我们的签名显示为附件。我们已经从Lotus Notes下载了原始电子邮件,这导致它们在导入Outlook时发生。2)我们的许多Excel文件都是+15张纸。我们为他们提供了特殊的打印设置-我可以将此打印设置应用于所有xls吗?
user4167750 2014年

@ user4167750,关于您提到的问题:1)我们实现了附件过滤器,可以按文件名删除和过滤附件。如果您的签名附件在邮件中具有一致的名称,则可以解决问题。2)我不确定Excel打印设置是否持久。对于打印,我们使用附件的文件扩展名查找Windows Shell关联,然后通过传递附件的文件名作为参数来启动它。
jponce 2014年

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

因此,它会遍历该文件夹以查找电子邮件,进行打印并检查其附件,如果找到,也将对其进行打印。

就像我说的那样,我没有远见,所以我无法测试。

不要继续使用实时数据!

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


我真的很感谢您在此上的时间。我发现类似的代码,但是它倾向于掩盖zip文件(至少占我们附件的50%)。我认为,VBA可能需要更进一步,并在某些时候调用C ++才能访问zip提取代理。此外,我认为WinZip可能太麻烦了。我会说我认为可以解决的问题,但是我认为主持人已经对本文的软件推广方面有些敏感。
user4167750 2014年

仍然会跳过.zip文件吗?也许这是系统范围的设置或可以通过vba传递给winzip的参数。代码是否出错或只是不打印.zip?
Raystafarian 2014年

是的,我认为您可以将其传递给Winzip是正确的,但是我不确定是否可以通过VBA完成。我认为问题在于,一旦附件(在这种情况下为zip文件)打开,它就位于Outlook VBA脚本的外部或范围之外。我会继续玩。耶周末工作!
user4167750 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.