Получение электронных писем в рельсах через IMAP

У меня есть это приложение rails, которое работает в нашей локальной интрасети с тысячей постоянных пользователей. Я хочу интегрировать его с нашим почтовым сервером (MS Exchange). В основном -

1) Для каждого пользователя приложение должно получать любые новые сообщения в их папке «Входящие» с почтового сервера, анализировать их и сохранять в базе данных.

Я мог бы реализовать это с помощью ruby/net-imap, но меня беспокоит производительность. Как я уже упоминал, существует тысяча пользователей, у каждого из которых свой адрес электронной почты. Опрос почтового сервера каждые x минут для тысячи пользователей может резко снизить производительность.

Похоже, IMAP IDLE с ruby/net-imap может быть вариантом, почтовый сервер отправка уведомления моему приложению всякий раз, когда появляется новая почта (стиль iPhone/Outlook). Но, похоже, для этого мне придется держать открытым imap-соединение с сервером. Таким образом, если одновременно зарегистрировано 100 пользователей, это будет означать 100 подключений к почтовому серверу. Сильно ли это замедлит работу приложения?

Или кто-нибудь знает какие-либо другие варианты (кстати, у меня нет контроля над почтовым сервером)

Мы используем МРТ, но легко можем перейти и на jruby.


person Community    schedule 01.07.2009    source источник
comment
См. это: stackoverflow.com /вопросы/1076116/   -  person Wolfram Arnold    schedule 21.12.2012


Ответы (1)


Это может помогите... Я знаю, что это для Gmail или не совсем то, что вы ищете, но вы можете адаптировать его к своей проблеме.

Есть также несколько библиотек для работы с imap с ruby, например Chilkat Ruby IMAP Library 2.1, но я еще не пробовал.

person marcgg    schedule 01.07.2009