我正在尝试将多个邮箱导出到数据库.我当前的脚本将连接IMAP并只循环所有消息.虽然邮箱较大但不起作用,但速度会减慢甚至停止.
我们的想法是每天运行脚本,将所有不在数据库中的消息"复制"到数据库中.什么是获取大量电子邮件的最佳方式(20k邮件分布在大约40-50个文件夹中).
最终,这需要从单个服务器工作,每天扫描数百甚至数千个帐户(所以想象一下数据量).它会将邮件(uid和subject)存储到数据库中,并创建一个将存储在dataserver上的包(因此它还需要获取附件).
是否真的可以通过使用一些标题来重复删除电子邮件,因为根据RFC,它们的message-id应该是唯一的?
有没有办法计算下面这个重复数据删除方法错过1个单一电子邮件的机会(这3个标题的sha512哈希)?
// $email is a parsed array containing 3 keys (mime headers) -> message_id, subject and date.
$hashStr = $email['message_id'];
$hashStr .= $email['subject'];
$hashStr .= $email['date'];
$uniqueEmailId = hash('sha512', $hashStr);
没有任何一封电子邮件可以被遗漏,这是一项至关重要的任务,我们可能需要对几个(> 2亿)mime文件进行重复数据删除.
目前,我们正在开发一个相当大的应用程序,该应用程序必须处理大量记录。
这个想法是,电子邮件必须被存储(带有附件),并且用户应该能够通过 web-api 在他们存储的电子邮件中进行搜索。用户应该能够(在他们自己导出到数据库/存储的消息中)至少搜索以下项目:
该应用程序应该能够处理大量用户和大量电子邮件(很容易从数百万增长到数十亿)。用户应该能够下载完整的原始邮件(带有附件),以便他们可以将其导入到他们的电子邮件客户端中。
我正在考虑将电子邮件索引到数据库中,然后将带有唯一密钥的附件的完整电子邮件作为packagea 存储到单独的存储中。通过这种方式,我应该保持数据库负载尽可能低,因此搜索尽可能快。
我发现了几个用于处理这样的电子邮件的数据库模式。我找不到任何能够处理数亿甚至数十亿条记录(电子邮件)的数据库。
这是保持简单、高效和快速的最有效方法还是我忘记了什么?
// 编辑 这个想法是在亚马逊云上运行它(也许有与之相关的建议?)
我有一个工作的ZF2(骨架)应用程序,并希望集成Doctrine.
我从github下载了2个模块(DoctrineModule和DoctrineORMModule)因为我无法使用作曲家(所以请不要回答;"得到作曲家").
经过几个小时试图找到问题后,我不断收到以下错误:
致命错误:第54行的doctrine/DoctrineModule/src/DoctrineModule/Module.php中找不到类'Doctrine\Common\Annotations\AnnotationRegistry'.
我花了几个小时搜索并尝试调试,但我找不到解决方法.请帮我.