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

Вопрос или проблема

Мое веб-приложение – это система тикетов (как Zendesk), и оно должно читать электронные письма из учетной записи электронной почты и мгновенно создавать тикеты из этих писем.

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

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

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

Что я уже сделал: Я вижу, что это можно сделать с помощью IMAP – IDLE. Я не уверен, как это реализовать, и не видел никаких серверов электронной почты, способных производить вызовы вебхуков.

Все в порядке, у меня это работает. Вот резюме:

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

Подробности:

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

В общем случае ОС будет предоставлять такие триггеры (создание файла в папке), скажем, Запланированные Задачи для Windows. Используя это, мы можем запустить скрипт на нашем сервере и сделать все, что нам нужно, когда создается новый файл. В случае веб-приложения вы, вероятно, захотите использовать триггеры скриптов через командную строку.

Решение от третьей стороны: Вы можете использовать Zapier для переадресации ваших электронных писем на их специальный адрес электронной почты (который мы создаем, когда создаем у них учетную запись), и мы можем заставить Zapier мгновенно публиковать содержимое письма по URL в нашем веб-приложении.

С помощью postfix и dovecot вы можете запускать события, когда конкретный пользователь/адрес получает сообщение. То есть, когда [email protected] получает сообщение, оно читается скриптом и вставляется через вызовы API в вашу систему тикетов.

Вы также можете использовать разделитель адресов, чтобы настроить так, чтобы [email protected] доставляло все сообщения на [email protected].

Смотрите https://serverfault.com/questions/660877/postfix-dovecot-run-script-when-mail-is-received

https://unix.stackexchange.com/questions/178396/run-script-on-receipt-of-email

https://www.howtoforge.com/community/threads/postfix-auto-run-script-when-mail-received.47407/

Для множества способов сделать все это.

Ответ или решение

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

1. Использование IMAP с поддержкой IDLE

Как уже было упомянуто, IMAP с поддержкой функции IDLE — это надёжный способ получения уведомлений о новых сообщениях. Эта функция позволяет вашему приложению оставаться в ожидании нового письма, получая пуш-уведомления, когдаEmail приходит.

Подход к реализации:

  • Выбор библиотеки: Вам потребуется библиотека для работы с IMAP в ColdFusion, например, cfmail или сторонние интеграции, такие как JavaMail.
  • Установка соединения: Создайте соединение с почтовым сервером через стандартный IMAP порт (обычно 993 для SSL).
  • IDLE комманда: После подключения отправьте команду IDLE, чтобы оставаться подписанным на входящие сообщения.

2. Использование событийной модели на файловой системе

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

Реализация:

  • Слушатель событий: Используйте встроенные возможности вашего приложения для отслеживания событий. В случае с ColdFusion это можно реализовать через встроенные триггеры.
  • Скрипт на сервере: Напишите скрипт, который будет инициироваться при создании нового файла. Скрипт может использовать IMAP для извлечения информации о новом сообщении и создания нового тикета в вашей системе.

3. Использование сторонних интеграций (например, Zapier)

Если вы ищете простой и быстрый способ интеграции без сложной настройки серверов, вы можете рассмотреть использование сторонних платформ, таких как Zapier.

Рабочий процесс:

  • Создание аккаунта: Зарегистрируйтесь в Zapier и настройте новое зкспресс-имя (Email).
  • Создание триггера: Настройте триггер, чтобы запустить веб-хук при поступлении нового письма.
  • Отправка данных: Zapier передаст данные письма в URL вашего веб-приложения, где ваше приложение сможет обработать полученное сообщение.

4. Серверные решения с постфиксом и довекотом (Postfix и Dovecot)

Если у вас есть доступ к серверу, вы можете настроить Postfix вместе с Dovecot, чтобы запускать скрипты или веб-хуки при получении новых писем.

Как это реализовать:

  • Настройка Postfix: Настройте Postfix для работы с вашими учетными записями электронной почты и создайте фильтры для отправки сообщений на ваш скрипт или API.
  • Скрипт на Dovecot: Используйте возможность выполнения скриптов на Dovecot для обработки входящих сообщений.
  • Обработка писем: При получении нового письма запускайте скрипт, который обрабатывает сообщение и создает новый тикет с соответствующими комментариями по нему.

Заключение

Каждое из предложенных решений имеет свои преимущества и недостатки. Выбор подхода будет зависеть от ваших конкретных требований, уровня технической подготовки и бюджета. Если вы ищете простоту и скорость развертывания, сторонние решения, такие как Zapier, могут оказаться наиболее подходящими. Если же приоритетом является контроль и гибкость, стоит рассмотреть реализацию на основе постфикса и довекота.

Оцените материал
Добавить комментарий

Капча загружается...