Перейти к содержанию

Получение эл. почты с помощью сценариев через IMAP и Exchange. Настройка подключения, пути передачи данных и сценария

Введение

Comindware Platform может получать эл. почту и обрабатывать данные из писем: помещать их в атрибуты, передавать в сценарии и процессы и т. д.

Подключения типа «Получение эл. почты через IMAP» и «Получение сообщений через Exchange» используются в сценариях. В процессах используются подключения типа «Получение эл. почты в процессе».

Здесь представлены инструкции по настройке подключения к почтовому серверу по протоколу IMAP или Exchange, пути передачи данных и сценария для получения эл. писем.

Порядок настройки получения эл. писем из сценария

  1. Настройте подключение к почтовому серверу типа «Получение эл. почты через IMAP» или «Получение сообщений через Exchange».
  2. Настройте путь передачи данных типа «Получение эл. почты через IMAP» или «Получение сообщений через Exchange», использующий созданное подключение.
  3. Настройте шаблон записи для хранения данных из эл. писем.
  4. Настройте сценарий, который будет обрабатывать и помещать в шаблон записи данные из писем, полученных посредством настроенных подключения и пути передачи данных.

Настройка подключения к почтовому серверу для получения почты с помощью сценария

Логика чтения писем на почтовом сервере

При подключении к почтовому серверу для получения эл. почты Comindware Platform выступает как почтовый клиент, который регулярно проверяет наличие новых писем.

При каждой проверке почтового ящика Comindware Platform:

  • обрабатывает новые письма;
  • отмечает новые письма как прочтённые.

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

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

  1. Откройте страницу «Администрирование» — «Подключения».
  2. Откройте двойным нажатием или создайте подключение к электронной почте типа «Получение эл. почты через IMAP» или «Получение сообщений через Exchange».
  3. Настройте подключение к серверу:

    • Системное имя — введите уникальное имя подключения. Рекомендуются буквы латинского алфавита, цифры и символ «_».
    • Отключить — установите этот флажок, если требуется временно деактивировать данное подключение.
    • Описание — введите наглядное описание подключения.
    • Запись в файловые журналы — выберите, какие события следует записывать в журналы:
      • Полные сведения об обработке сообщения;
      • Только ошибки;
      • Отключить — не регистрировать в журнале события получения писем.
    • IMAP
      • Адрес почтового сервера — введите адрес IMAP-сервера без указания протокола (IMAP, HTTPS, HTTP).
      • Порт — введите номер порта IMAP-сервера.
      • Шифрование — выберите протокол шифрования, который поддерживает IMAP-сервер:
        • Отсутствует — не использовать шифрование;
        • SSL;
        • TLS.
    • Exchange
      • URL веб-сервера Exchange — введите адрес почтового сервера c указанием протокола (HTTPS, HTTP).
      • Версия Exchange — выберите версию сервера Exchange.
    • Тип аутентификации — выберите способ проверки подлинности, используемый сервером:
      • Отсутствует;
      • Базовая;
      • Аутентификация Windows.
    • Имя пользователя — укажите учётную запись для подключения к серверу.
    • Пароль — введите пароль к учётной записи для подключения к серверу.
    • Домен — укажите домен пользователя сервера.
    • Шифрование — выберите протокол шифрования, который поддерживает сервер:
      • Отсутствует — не использовать шифрование;
      • SSL;
      • TLS.
    • Интервал опроса — укажите интервал, с которым Comindware Platform будет проверять наличие новых писем.
  4. Нажмите кнопку «Проверить соединение», чтобы проверить соединение с сервером.

  5. При необходимости нажмите кнопку «Скачать журнал», чтобы просмотреть журнал событий получения писем.
  6. Сохраните подключение.

Настройка пути передачи данных для получения почты с помощью сценария

Путь передачи данных для получения эл. почты служит для преобразования и передачи данных из эл. письма в Comindware Platform.

  1. Откройте страницу «Администрирование» — «Архитектура» или страницу «Администрирование» приложения.
  2. Выберите пункт «Пути передачи данных» .
  3. Откройте двойным нажатием в списке или создайте путь передачи данных типа «Подключения к электронной почте» — «Получение эл. почты через IMAP» или «Получение сообщений через Exchange».
  4. Настройте свойства пути передачи данных на следующих вкладках:

  5. Сохраните путь передачи данных.

Основные свойства

На вкладке «Основные свойства» настройте параметры использования пути передачи данных:

  • Подключение — выберите подключение для получения эл. почты из сценариев через SMTP или Exchange.
  • Системное имя — введите уникальное имя пути передачи данных. Рекомендуются буквы латинского алфавита, цифры и символ «_».
  • Отключить — установите этот флажок, если требуется временно деактивировать путь передачи данных.
  • Описание — введите наглядное описание пути передачи данных, например «Путь для получения писем».
  • Номер шины данных — выберите номер от 0 до 3, если требуется распределить потоки данных нескольких путей для повышения производительности.

Атрибуты сообщений

На вкладке «Атрибуты сообщений» настройте атрибуты, в которые будут подставляться значения полей эл. письма.

Извлечение значений атрибутов из эл. письма

  • На вкладке «Атрибуты сообщений» пути передачи данных настройте набор атрибутов, значения которых требуется извлечь из письма.
  • При необходимости настройте атрибуты, которые требуется передать на почтовый сервер в качестве ответа и ответа с ошибкой. Значения этим атрибутам необходимо присвоить с помощью действия «Изменить значения переменных» в сценарии.
  • С помощью сценария передайте значения атрибутов сообщения, содержащие данные из эл. письма, в шаблон записи. Например, передайте текст и тему письма из атрибутов сообщения HtmlBody и Subject в атрибуты шаблона записи «Текст письма» и «Тема письма».
  1. Выберите тип сообщения:

    • Получение эл. почты — для IMAP и Exchange;
    • Получение события календаря — для Exchange.
  2. В таблицах «Запрос», «Ответ» и «Ответ с ошибкой» отобразятся готовые атрибуты сообщений, соответствующие выбранному типу сообщения:

  3. При необходимости настройте собственные атрибуты сообщений

Атрибуты для получения эл. почты через IMAP и Exchange

  • To — получатели письма (массив объектов).
    • Name — имя получателя (строка).
    • Address — адрес эл. почты (строка).
  • From — отправитель письма (строка).
    • Name — имя отправителя (строка).
    • Address — адрес эл. почты (строка).
  • Subject — тема письма (строка).
  • HtmlBody (для IMAP) / RawBody (для Exchange) — текст письма (строка).
  • Attachments — прикреплённые файлы (массив объектов).
    • Name — имя файла.
    • Extension — расширение файла (строка).
    • Content — содержимое файла (строка).
  • Cc — копии (массив объектов).
    • Name — имя получателя (строка).
    • Address — адрес эл. почты (строка).
  • Bcc — скрытые копии (массив объектов).
    • Name — имя получателя (строка).
    • Address — адрес эл. почты (строка).
  • Headers — дополнительные заголовки (массив объектов).
    • Name — имя заголовка (строка).
    • Value — значение заголовка (строка).

Атрибуты для получения событий календаря через Exchange

  • To — получатели письма (массив объектов).
    • Name — имя получателя (строка).
    • Address — адрес эл. почты (строка).
  • From — отправитель письма (объект).
    • Name — имя получателя (строка).
    • Address — адрес эл. почты (строка).
  • Subject — тема письма (строка).
  • RawBody — текст письма (строка).
  • Attachments — прикреплённые файлы (массив объектов).
    • Name — название файла (строка).
    • Extension — расширение файла (строка)
    • Content — содержимое файла (строка).
  • Location — место встречи (строка).
  • Start — время начала встречи (дата и время).
  • End — время завершения встречи (дата и время).

Атрибуты для ответа почтовому серверу

В таблицах «Ответ» и «Ответ с ошибкой» можно настроить атрибуты, которые Comindware Platform будет отправлять почтовому серверу после получения нового письма:

  • ответ отправляется, если Comindware Platform удалось прочитать письмо.
  • ответ с ошибкой отправляется, если Comindware Platform не удалось прочитать письмо.

Таким образом, например, можно сообщить почтовому серверу, что письмо получено и прочитано.

Значения атрибутам ответа и ответа с ошибкой необходимо присвоить с помощью действия «Изменить значения переменных» в сценарии.

В таблице «Ответ» для получения событий из календаря через Exchange предусмотрены готовые атрибуты:

  • IsDeclined — собрание отклонено (логический).
  • IsTentative — собрание под вопросом (логический).
  • HasMessage — ответ содержит сообщение (логический).

Настройка собственного атрибута сообщения

Чтобы создать атрибут сообщения, нажмите кнопку «Добавить» над таблицей «Запрос», «Ответ» или «Ответ с ошибкой» и заполните свойства атрибута:

  • Системное имя — введите уникальное имя атрибута, по которому вы будете обращаться к нему в сценарии.
  • Тип — выберите тип атрибута:
    • Строка
    • Число
    • Длительность
    • Дата и время
    • Временной период
    • Логический
    • Объект
    • Ключ-значение
  • Описание — введите наглядное название атрибута.
  • Обязательный, Не пустой, Массив — установите флажки согласно назначению атрибута.

Настройка шаблона записи и сценария для получения эл. писем

В качестве примера настроим шаблон и сценарий для получения писем и сохранения имени и адреса отправителя в атрибут типа «Текст», а вложений — в атрибут типа «Документ».

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

Настройка шаблона записи

  1. Создайте шаблон записи «Реестр документов» со следующими атрибутами:

    Атрибут Тип Свойства
    Отправитель Текст  
    Вложения Документ Хранить несколько значений: флажок установлен
  2. Поместите созданные атрибуты на форму.

Настройка сценария

Сценарий для получения почты

Сценарий для получения почты может запускаться только по событию «Получение сообщения».

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

  1. Создайте сценарий «Получение эл. почты» с контекстом выполнения «От инициатора».
  2. Откройте автоматически созданное событие «Нажатие кнопки» и настройте его следующим образом:

  3. Добавьте действие «Создать запись», указав целевой шаблон «Реестр документов».

  4. Внутри действия «Создать запись» добавьте действие «Изменить значения атрибутов».
  5. В действии «Изменить значения атрибутов» добавьте в таблицу атрибут «Отправитель»:

    • Операция со значениями: заменить
    • Значение: формула
    FORMAT ("{0} <1>" LIST($$message->From->Name, $$message->From->Address))

    Эта формула берёт данные отправителя из переменной message и возвращает имя и адрес отправителя письма в следующем формате: Имя <address@example.com>

  6. Внутри действия «Создать запись» добавьте действие «Повторять по количеству объектов» со следующими свойствами:

    • Переменная: attachment — в эту переменную на каждой итерации цикла будет помещаться объект с прикреплённым к письму файлом.
    • Атрибут или выражение для поиска объектов: формула
    $$message->Attachments

    Эта формула берет из переменной message и возвращает массив объектов с прикреплёнными к письму файлами.

  7. Внутри действия «Повторять по количеству объектов» создайте действие «Изменить значения атрибутов».

  8. В действии «Изменить значения атрибутов» на вкладке «Дополнительно» установите флажок «Сбрасывать кэш значений».
  9. На вкладке «Основные» добавьте в таблицу атрибут «Вложения»:

    • Операция со значениями: добавить
    • Значение: N3
    # Импортируем функции для работы с документами и данными текущего сеанса.
    @prefix session: <http://comindware.com/ontology/session#>.
    @prefix variable: <http://comindware.com/ontology/session/variable#>.
    @prefix document: <http://comindware.com/ontology/document#>.
    @prefix cmwstring: <http://comindware.com/logics/string#>.
    {
    # Помещаем переменную attachment
    # из действия «Повторять по количеству объектов»
    # в локальную переменную ?attachment.
    session:context variable:attachment ?attachment.
    # Помещаем содержимое файла в переменную ?contentValue.
    ?attachment variable:Content ?contentValue.
    # Помещаем расширение файла в переменную ?extension.
    ?attachment variable:Extension ?extension.
    # Помещаем имя файла в переменную ?filename.
    ?attachment variable:Name ?filename.
    # Соединяем имя файла и расширение в переменную ?filenameValue.
    (?filename ?extension) cmwstring:concatenation ?filenameValue.
    # Собираем новый файл из имени и содержимого,
    # сохраняем его в папку Streams
    # и возвращаем ID нового документа с прикреплённым файлом.
    (?contentValue ?filenameValue) document:attach ?value.
    }

Сценарий для получения электронной почты

Сценарий для получения электронной почты

Тестирование

  1. В почтовом клиенте создайте письмо с вложениями и отправьте его на адрес эл. почты, указанный в подключении.
  2. Перейдите к списку экземпляров шаблона «Реестр документов».
  3. В списке экземпляров откройте новую запись с временем создания несколько позже отправки письма на шаге 1.

    Совет

    Если запись для отправленного письма не отображается, подождите некоторое время, пока Comindware Platform получит и обработает письмо, и обновите страницу.

    Время обработки входящих писем зависит от интервала опроса, заданного в свойствах подключения к почтовому серверу, а также от загруженности почтового сервера и Comindware Platform.

  4. В поле «Отправитель» должны отображаться имя и адрес отправителя письма.

  5. В поле «Вложения» должны отображаться файлы, которые были прикреплены к письму.
К началу