0

我有一个收件箱,里面有 5000 多封电子邮件,说有人已经注册了。电子邮件正文中是他们的电子邮件地址和姓名,我想将它们存储在数据库中。

问)我怎样才能把它放到数据库中?理想情况下是 mysql。

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

我正在使用iRedMail:OpenLDAP

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

更新 2:为了让事情变得更容易,我已将数据库中我想要的所有电子邮件移动到一个单独的 IMAP 文件夹中。

但是当我进行搜索时,它什么也没返回: find /var/vmail -name 'Subscribers' -type d –</p>

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

  1. 订阅者.msf
  2. 订阅者-1
  3. 订阅者-1.msf
4

1 回答 1

1

真正棘手的部分不是解析电子邮件,而是从您的服务器获取电子邮件。我可以想到三种方法来做到这一点:

  1. 使用 php 的 imap 库http://php.net/manual/en/book.imap.php。我个人并没有经常使用它,但是由于您只是在获取所有电子邮件,因此它可能很有用。不利的一面是,您最终也会获取所有其他邮件。
  2. 使用第 3 方服务来处理 imap 并通过更简单的 REST 接口公开您的电子邮件。理想情况下,您希望搜索一个关键术语(可能是“用户注册”),然后对其进行解析。
  3. 使用offlineimap将所有电子邮件下载为 Maildir 并将其存储在本地。现在您可以使用 PHP 搜索所有电子邮件,在这里测试版本会更快更容易。

至于解析,我个人建议使用grep查找包含您要提取的信息的邮件,awk并将此信息转换为 CSV 文件。您可以使用 PHP 进行文本处理,但使用这些功能更简单、更简洁。

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

于 2012-12-11T07:52:37.567 回答