В этой статье вы познакомитесь с новой подкатегорией транспортов, которая стала доступна с версией 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.
Если данный аккаунт ранее не добавлял проекты для работы с Google API, то в качестве первого шага необходимо создать новый проект.
Нажмите на кнопку “Create project”.
Введите имя проекта и нажмите “Create”.
Воспользуйтесь кнопкой “Select project” для выбора созданного проекта.
Выберете созданный ранее проект и нажмите “Open”.
Перейдите на вкладку “OAuth consent screen”. Нам нужно выбрать тип пользователей, который может использовать облачное хранилище: внутренние использование с доступом только пользователям организации или для всех Google аккаунтов. Поле выбора нажмите кнопку “Create”.
Далее, необходимо заполнить имя приложения и контактный e-mail. Нажмите “Save and continue”.
Этот шаг позволяет настроить область действия, для Google Mail его можно пропустить. Кликните по “Save and continue”.
Следующий шаг позволяет настроить доступ к приложению для определенною группы пользователей. Если вы собираетесь сразу опубликовать доступ к приложению - этот шаг можно пропустить. Нажмите “Save and continue”.
Приложение создано, перейдите во вкладку “Back to dashboard”.
Перейдите на вкладку “OAuth consent screen” и нажмите “PUBLISH APP” чтобы открыть доступ к данному приложению. Откройте следующую ссылку и включите Google Mail API для созданного проекта нажав кнопку “Enable”.
Теперь необходимо создать ключи авторизации, перейдите на вкладку “Credentials”.
Нажмите на “Create Credentials” и выберете “OAuth client ID”.
Необходимо выбрать тип приложения (в нашем случае Desktop App).
Введите любое имя для подключения и нажмите “Create”. Клиент для авторизации будет создан.
Скопируйте поля “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 и прочие), большинство пользователей эту особенность не заметят.
Эта неточность будет исправлена с последующими релизами. По всем вопросам пишите нам в Поддержку.