Несколько подключений IMAP для нескольких пользователей - PullRequest
0 голосов
/ 20 марта 2019

Я хочу создать CRM, и мне нужно синхронизировать электронную почту нескольких пользователей. Итак, мой вопрос, как я могу управлять несколькими подключениями. Я вижу, что мы можем использовать IMAP IDLE для одного пользователя, чтобы получать уведомления, когда приходит электронное письмо, но мне понадобятся сотни соединений, будут ли работать сотни соединений в разных потоках? Также я сомневаюсь, что почтовые серверы позволят столько подключений с одного IP. Кроме того, что касается GMAIL, они предоставляют REST API, но у них также есть ограничение на максимально допустимое количество подключений. Итак, как я могу синхронизировать электронные письма для всех моих пользователей?

Было бы здорово, если бы вы указали мне правильное направление. Спасибо.

1 Ответ

0 голосов
/ 20 марта 2019

Сотни IMAP-соединений с одного IP-адреса не редкость; Есть много офисов, где исходящий шлюз для всей офисной сети выглядит (и действительно является) одним IP-адресом извне.

Задача состоит в том, чтобы отслеживать столько соединений из вашего кода.

IDLE, вероятно, является хорошей идеей, но для того, чтобы ваш код был устойчивым к сбоям в сети, вы должны быть готовы к тому, что сеанс IDLE также будет периодически прерываться. Так что просто создайте свою программу, чтобы при необходимости восстановить соединение. Тогда, если вы обнаружите, что у вас больше соединений, чем может обработать ваш сервер, изменение кода на всегда или периодически отключать их будет относительно простым изменением.

Для сравнения подумайте о количестве соединений, которыми должен управлять занятый веб-сервер. И это занятых соединений; ваш будет спать большую часть времени. (Тем не менее, вам, вероятно, следует быть осторожным, если вы планируете масштабировать до десятков тысяч одновременных подключений; у ОС есть предел, который, вероятно, можно настроить, но не бесконечно.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...