通过IMAP在rails中获取电子邮件

7 ruby imap ruby-on-rails jruby actionmailer

我有这个rails应用程序在我们的本地Intranet上运行,有一千个普通用户.我希望将它与我们的电子邮件服务器(MS Exchange)集成.基本上 -

1)对于每个用户,应用程序应从邮件服务器获取其收件箱中的任何新邮件,解析它并将其存储在数据库中.

我可以用ruby/net-imap实现它,但我担心性能.正如我所提到的,有一千个用户,每个用户都有不同的电子邮件地址.每隔x分钟轮询一次电子邮件服务器对于一千个用户来说可能会大大降低性能.

看起来IMAP IDLE与ruby/net-imap可能是一个选项,邮件服务器会在有新邮件(IPhone/Outlook样式)时向我的应用程序发送通知.但似乎,因为我必须保持与服务器的imap连接打开.因此,如果一次有100个用户登录,则意味着100个与邮件服务器的连接.这会大大减慢应用程序的速度吗?

或者有没有人知道任何其他选项(顺便说一下,我无法控制邮件服务器)

我们正在使用MRI,但也可以轻松切换到jruby.

mar*_*cgg 1

可能会有所帮助...我知道它适用于 Gmail,或者不完全是您正在寻找的内容,但您也许可以根据您的问题进行调整。

还有一些使用 ruby​​ 处理 imap 的库,例如Chilkat Ruby IMAP Library 2.1,但我还没有尝试过。