从~1台服务器检查数千个Gmail邮箱

时间:2013-03-22 03:11:52

标签: php gmail oauth-2.0 imap gmail-imap

我正在使用Chrome扩展程序,该扩展程序可与Gmail用户界面以及Gmail的IMAP实施进行互动。

我的应用程序的后端需要监控每个用户的所有传入电子邮件,并在收到感兴趣的邮件/发件人时更新数据库。

我可以设置一个“用户启动的”投票,我会在他们加载我的应用时扫描所有新消息,但是有回退,因为我的应用程序只是当用户在浏览器中时是最新的。我想随时更新......

副手我考虑过对每个用户进行简单的服务器调查,例如:

For x = 0 to All users
    Fetch ALL msg where UID > lastMessageID
        if msg.sender == something i care about
            UPDATE table...
<repeat>

我还考虑过使用IMAP IDLE,如:

For all users, establish imap idle call
    for any user whos imap idle returned
        if msg.sender == something i care about
            UPDATE table...

我想弄清楚的是哪个会更好地扩展,因为我需要监控最少5-10k的帐户......

有什么我想念的吗?是否有更简单的方法为大量帐户执行此操作?

  • 请注意,除了扫描邮件和更新表格之外 - 我不需要存储任何邮件。

1 个答案:

答案 0 :(得分:0)

实现IDLE是一个更好的选择,因为它也不会给服务器带来负担。

如果Polling client负责监控每项更改。例如,如果从某个其他客户端(如Web界面或某些移动设备)删除邮件,那么为了监控此类情况,您每次轮询时都必须扫描整个邮箱。

whereas

如果IDLE Server,{{1}}负责让您了解邮箱状态中发生的任何更改,无论是邮件移动,读取还是删除操作。 IDLE命令也不应该是可伸缩性问题。

相关问题