2013-07-31 2 views
0

Я использую механизм imap весны, чтобы получать электронные письма из моей учетной записи на свой сервер.Весна интеграция imap - несколько учетных записей электронной почты из того же домена

это работает как шарм.

Как бы то ни было, появился новый requirmemnt - вместо прослушивания одной учетной записи электронной почты мне придется прослушивать несколько учетных записей.

Iv'e попытался создать новый канал для каждой из этих учетных записей. оно работает!

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

Мой вопрос:

Поскольку все учетные записи электронной почты (я хотел бы слушать) находятся в одной и той же области, а именно: [email protected] [email protected] [email protected] ....

Возможно ли создать единый канал с несколькими учетными записями?

Есть ли альтернатива для меня, чем определение N новых каналов?

спасибо. Nir

ответ

3

Я предполагаю, что вы имеете в виду канальный адаптер, а не канал (многоканальные адаптеры могут отправлять сообщения на тот же канал).

Нет, вы не можете использовать одно соединение для нескольких учетных записей.

Это ограничение основных протоколов электронной почты Интернета.

Если вы используете адаптеры idap idle, да, это не будет хорошо масштабироваться, потому что для каждого потока требуется поток. Однако, если вы говорите только о нескольких 10-х счетах, это, вероятно, не проблема. Для гораздо большего числа учетных записей лучше использовать опрошенный адаптер.

Но, несмотря на это, если это не фиксированное количество учетных записей, конфигурация может быть обременительной (но вы могли бы программно развернуть новые адаптеры).

Для сложных сценариев, подобных этому, вы можете захотеть написать собственный «адаптер», который напрямую использует API JavaMail, и управляет соединения более сложным способом (но вам по-прежнему требуется отдельное подключение для каждой учетной записи). Он не должен был быть «реальным» адаптером, а просто POJO, который соединяется с JavaMail. Затем, когда вы получаете сообщение от одной из учетных записей, отправьте его на канал, используя <gateway/>.

+0

Вы можете дать мне пример кода для отдельного подключения для каждой учетной записи –

+0

Просто добавьте отдельный входящий адаптер для каждой учетной записи; они могут отправлять на тот же канал. –

+0

Я хочу динамически добавлять входящий адаптер, возможно ли это? –

Смежные вопросы