Coldfusion: прослушивание сообщений электронной почты
Я пытаюсь использовать своего рода шаблон наблюдателя в ColdFusion.
Мы хотим слушать входящие сообщения электронной почты и действовать на них. Сценарий примерно такой:
Приложение отправляет электронное письмо в систему поддержки. Система технической поддержки автоматически генерирует заявку и отвечает по электронной почте на адрес электронной почты приложения. Электронная почта приложения настраивается в Lotus Notes. Теперь приложение должно прослушать это входящее сообщение электронной почты, декодировать его и обновить основной ответный тикетид
Я вижу, что есть возможность с шлюзами событий, но я не могу понять всю картину.
Мысли или предложения?
3 ответа
У нас есть такая система.
У нас есть постфиксный сервер, настроенный для обработки почты для домена. Небольшой скрипт (Perl) на сервере postfix помещает каждое письмо в очередь ActiveMQ.
У нас есть кластер блоков CF с прослушивателем шлюза событий ActiveMQ, который извлекает сообщения из очереди и обрабатывает их с помощью Java Mail.
Задержка между постфиксным получением электронной почты и обработкой CF-сервером обычно не превышает 1 с.
Нам нужно было сделать это таким образом по ряду причин, одной из которых была задержка обработки, работа с большим кластером CF, что усложняло решение POP/IMAP, а обработка почты CF была не совсем такой, какой мы хотели, были другие.
Работает отлично.
Один из способов - настроить почтовый сервер с поддержкой IMAP и использовать какой-либо опрос (каждую минуту, достаточно хорошо?) В CF с использованием <cfimap>
чтобы получить электронные письма.
http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WS371453EC-36D5-44ce-BF1E-750E3016BBD6.html
В прошлом я создавал подобные приложения, используя cfpop для регулярного соединения почтового ящика.
Это было довольно легко написать, но обычно его зацикливают, когда "пользователи" начинают "помогать" с содержанием электронной почты.
Другое дело, что это не мгновенно, но действительно ли процесс критичен ко второму?