自动存储电子邮件附件文件

时间:2011-09-28 18:34:08

标签: xml file email attachment

我的老板最近要求我创建......在没有人为干预的情况下我发现几乎不可能的东西

问题是,让我们的用户通过电子邮件发送带有一些数据的xml,但我的老板想要它

  1. 附件存储在特定文件夹上的特定文件夹中 每当有附件的新电子邮件到达时服务器
  2. 该过程将验证电子邮件中是否有附件 这就是正确的,这意味着它的xml结构就像我们要求的那样 它并存储了所有数据
  3. 某些xml文件数据存储在数据库中(文件名,文件 path,main id)在一个显示的小应用程序上进行搜索 xml数据,因此能够下载文件的副本
  4. 我的主要问题是,让这个过程继续检查新收到的邮件,检索附件,检查并存储它,我不知道它是否可能,或者从哪里开始。这一次,电子邮件服务器需要有一些可编程的过程,但是,看起来像负责我们的邮件服务器的人不知道是否有这样的东西。

    任何人都可以告诉我从哪开始呢?

    我建议我们在主网页上有一个上传选项,我们会有,但他们真的想要电子邮件选项,而且所有流程都是自动化的

2 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。我将首先考虑通过IMAP或POP以编程方式检索电子邮件。这似乎是涉及摩擦最少的方法。您的电子邮件服务器的负责人可能只是设置了一个帐户,将所有邮件转发到该帐户。

或者,您可以编写一些内容将所有电子邮件转发到另一个邮件服务器,并使用它将电子邮件传输到脚本中,或将其转发到cloudmailin.com之类的服务(也可以将附件发送到S3) )以便您可以以编程方式获取消息。

收到消息后,您只需要解析附件并将其复制到您需要的文件夹中。

答案 1 :(得分:0)

如果您在邮件服务器上拥有shell访问权限,则可以使用Procmail。它(或您.forward中的任何内容或等效内容)将以每个传入消息作为其标准输入触发。如果并非所有传入的消息都有趣,那么将Procmail作为包装器肯定会有意义。无论如何,验证和分离传入附件的任务“只是一个简单的编程问题”,但我希望这至少足以让你开始。

:0B
* ^Content-type: application/x-perimental-xml or what have you
| validate-and-store-and-extract-some-data-to-sql

你当然可以比这更精细(并且很可能你必须)但是这个基本配方并不是很复杂。

...你的“几乎不可能”的特征听起来像是在Windows上(哎呀,抱歉,无法抗拒),但也许你的邮件服务器是Unix服务器。