从收件箱中存储的电子邮件创建电子邮件数据库

时间:2012-12-11 07:45:10

标签: php postfix-mta

我有一个包含5000多封电子邮件的收件箱,说有人注册了。在电子邮件正文中是他们要存储在数据库中的电子邮件地址和名称。

问)如何将其导入数据库?理想情况下是mysql。

理想情况下,我想在我最熟悉的PHP中执行此操作。

我正在使用iRedMail:OpenLDAP

更新:自从发布问题后,我已经使用Plan Cake Email Parser编写了实际的电子邮件解析器,一旦发现这个问题就花了5分钟。

更新2: 为了方便起见,我已将数据库中所需的所有电子邮件移动到单独的IMAP文件夹中。

但是当我进行搜索时,它什么都不返回:find / var / vmail -name'Subscribers'-type d -

更新3: 另一种选择是我已经使用Thunderbird Windows 7在我的电子邮件客户端本地下载了电子邮件。当我查看我的个人资料时,我可以看到3个与以下内容相关的文件:

  1. Subscribers.msf
  2. 订阅者-1
  3. 订户-1.msf

1 个答案:

答案 0 :(得分:1)

真正棘手的部分不是解析电子邮件,而是从服务器获取电子邮件。我可以通过三种方式来实现这一目标:

  1. 使用php的imap库http://php.net/manual/en/book.imap.php。我个人并没有非常努力,但由于你只是提取所有的电子邮件,它可能是有用的。缺点是你最终还会获取所有其他邮件。
  2. 使用第三方服务处理imap并通过更简单的REST界面公开您的电子邮件。理想情况下,您希望搜索关键术语(可能是“用户已注册”)然后解析它。
  3. 使用offlineimap将所有电子邮件下载为Maildir并将其存储在当地。现在您可以使用PHP搜索所有电子邮件,这里测试版本会更快更容易。
  4. 至于解析,我个人建议使用grep查找包含您要提取的信息的邮件,并awk将此信息转换为CSV文件。你可以使用PHP进行文本处理,但使用这些文件可以更加简单和清晰。

    您现在可以轻松地将数据推送到MySQL。