Как отправлять и получать отчеты через Gmail в FastReport VCL

20.07.2022

Как отправлять и получать отчеты через Gmail в FastReport VCL

В этой статье вы познакомитесь с новой подкатегорией транспортов, которая стала доступна с версией 2022.2.7 и называется “почтовые транспорты”. На данный момент в нее входят 2 компонента обеспечивающие доступ к GMail и Outlook.

Почтовые транспорты поддерживают следующий функционал:
- сохранение и загрузка отчета;
- сохранение результата экспорта.

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

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

Важно! Для работы протокола https необходимы следующие библиотеки Open SSL: libssl-3.dll и libcrypto-3.dll их можно найти в директории с главным демо приложением. Библиотеки необходимо скопировать в папку с приложением или системную директорию.

Содержание

- Добавление транспорта в приложение и настройка
- Подключение к GMail
- Будущее почтовых транспортов

Текущее состояние транспортов

В FastReport есть компоненты, называемые “транспортами”. Они нужны для обеспечения доступа к:
- облачным хранилищам (Dropbox, OneDrive, Box.com, Google.Drive, Yandex.Disk);
- FTP-серверам;
- Email (только отправка сообщений);
- почтовым сервисам (Gmail, Outlook).

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

Добавление транспорта в приложение и настройка

Добавление транспорта

1. Перейдите в палитру компонентов в среде разработки Embarcadero Rad Studio и раскройте вкладку “FastReport VCL Internet transports”.

2. Выберите нужный компонент и добавьте его на форму приложения. Можно использовать контекстное меню на компоненте. Это установит подключение прямо из среды разработки. Нажимаем на подменю “Edit connection”.

Всплывающее окно при клике правой кнопкой мыши на компоненте

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

Инспектор объектов после выделения транспорта

Далее будем предполагать использование порта 9898 по умолчанию. Теперь рассмотрим этапы подключения для почтовых транспортов.

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

Подключение к GMail

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

Стандартный диалог авторизации почтовых транспортов

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

Если данный аккаунт ранее не добавлял проекты для работы с Google API, то в качестве первого шага необходимо создать новый проект.

Страница настроек приложения

Нажмите на кнопку “Create project”.

Страница создания нового проекта

Введите имя проекта и нажмите “Create”.

Кнопка выбора текущего проекта на странице настроек приложения

Воспользуйтесь кнопкой “Select project” для выбора созданного проекта.

Страница выбора текущего проекта

Выберете созданный ранее проект и нажмите “Open”.

Страница настроек OAuth авторизации

Перейдите на вкладку “OAuth consent screen”. Нам нужно выбрать тип пользователей, который может использовать облачное хранилище: внутренние использование с доступом только пользователям организации или для всех Google аккаунтов. Поле выбора нажмите кнопку “Create”.

Первый этап настроек OAuth авторизации

Далее, необходимо заполнить имя приложения и контактный e-mail. Нажмите “Save and continue”.

Этот шаг позволяет настроить область действия, для Google Mail его можно пропустить. Кликните по “Save and continue”.

Следующий шаг позволяет настроить доступ к приложению для определенною группы пользователей. Если вы собираетесь сразу опубликовать доступ к приложению - этот шаг можно пропустить. Нажмите “Save and continue”.

Приложение создано, перейдите во вкладку “Back to dashboard”.

Успешная настройка OAuth авторизации

Перейдите на вкладку “OAuth consent screen” и нажмите “PUBLISH APP” чтобы открыть доступ к данному приложению. Откройте следующую ссылку и включите Google Mail API для созданного проекта нажав кнопку “Enable”.

Настройка разрешения доступа к Gmail API

Теперь необходимо создать ключи авторизации, перейдите на вкладку “Credentials”.

Страница управления ключами авторизации

Нажмите на “Create Credentials” и выберете “OAuth client ID”.

Возможные типы создания ключей авторизации

Необходимо выбрать тип приложения (в нашем случае Desktop App).

Выбор типа приложения на странице создания ключей авторизации

Введите любое имя для подключения и нажмите “Create”. Клиент для авторизации будет создан.

Фрагмент страницы с созданной парой ID-Secret

Скопируйте поля “Client ID” и “Client Secret” в соответствующие поля ввода диалога авторизации FastReport VCL.

Заполненный стандартный диалог авторизации почтовых транспортов

Нажмите “OK”. Должно открыться новое окно в браузере, который установлен по умолчанию. На экране высветится предложение выбрать аккаунт для авторизации.

Стандартный выбора аккаунта для авторизации

Далее мы увидим диалог, что приложение не проверено Google. Нажмите “Advanced” и Go to Имя приложения (unsafe).

Страница с предупреждением об отсутствии верификации

Появится еще один диалог с вопросом предоставления доступа приложению, выберите права доступа и нажмите “Continue”.

Страница запроса разрешений

Окно браузера можно закрыть. При удачном подключении вы увидите стандартный браузер файлов FastReport VCL.

Стандартный диалог загрузки прикреплённых файлов

На этом настройка подключения успешно окончена. Теперь вы знаете, как подключаться к GMail в FastReport VCL.

Будущее почтовых транспортов

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

Стандартный диалог загрузки прикреплённых файлов

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

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

Стандартный диалог отправки файлов

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

Почти все экспорты в FastReport VCL генерируют только 1 выходной файл (PDF, DOCX, RTF и прочие), большинство пользователей эту особенность не заметят.

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

20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.
1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.