В Сreatio вы можете отправлять email-сообщения не только пользовательскими средствами, но и средствами разработки. Это реализуется следующими способами:
- С существующей учетной записи.
- С явным указанием учетных данных.
Отправка email-сообщения реализована с помощью бизнес-процесса. Для настройки бизнес-процесса используются элементы Автогенерируемая страница (Auto-generated page) и Задание-сценарий (Script task).
Алгоритм отправки email-сообщения с существующей учетной записи
- Создать бизнес-процесс, который должен включать обязательные элементы Автогенерируемая страница и Задание-сценарий.
- Создать конфиг отправляемого email-сообщения.
- Добавить вложение (не обязательно).
- Запустить бизнес-процесс для выполнения отправки.
Создание конфига отправляемого email-сообщения
Для создания конфига отправляемого email-сообщения необходимо использовать класс Terrasoft.Mail.Sender.EmailMessage. Для формирования валидного email-сообщения необходимо заполнить параметры.
Добавление вложения (не обязательно)
В email-сообщение можно добавить вложение. Для этого необходимо заполнить поле Attachments. Вложения представляют собой список экземпляров Terrasoft.Mail.Sender.EmailAttachments.
Отправка email-сообщения
Для отправки письма необходимо использовать метод Send класса EmailSender c переданными параметрами email-сообщения и конфига подключения.
Алгоритм отправки email-сообщения с явным указанием учетных данных
- Создать бизнес-процесс, который должен включать обязательные элементы Автогенерируемая страница и Задание-сценарий.
- Создать экземпляр класса EmailClientFactory.
- Создать экземпляр класса EmailSender.
- Создать конфиг подключения к почтовому ящику.
- Создать конфиг отправляемого email-сообщения.
- Добавить вложение (не обязательно).
- Запустить бизнес-процесс для выполнения отправки.
Создание экземпляра класса EmailClientFactory
Для создания экземпляра класса EmailClientFactory необходимо наличие пользовательского подключения UserConnection.
Создание экземпляра класса EmailSender
Для создания экземпляра класса EmailSender необходимо передать в конструктор созданный экземпляр EmailClientFactory и пользовательское подключение UserConnection.
Создание конфига подключения к почтовому ящику
Для создания конфига подключения к почтовому ящику используется класс EmailContract.DTO.Credentials. Чтобы создать конфиг, заполните параметры.
Создание конфига отправляемого email-сообщения
Для создания конфига отправляемого email-сообщения необходимо использовать класс EmailContract.DTO.Email. Для формирования валидного email-сообщения заполните параметры.
Добавление вложения (не обязательно)
В email-сообщение можно добавить вложение. Для этого необходимо заполнить поле Attachments. Вложения представляют собой список экземпляров EmailContract.DTO.Attachment.
Отправка email-сообщения
Для отправки письма необходимо использовать метод Send класса EmailSender c переданными аргументами email-сообщения и конфига подключения.
Алгоритм реализации примера
1. Создайте бизнес-процесс
В разделе Конфигурация (Configuration) выполните действие Добавить —> Бизнес-процесс (Add —> Business process).

В открывшемся дизайнере процессов установите следующие значения на панели настройки свойств процесса:
- Заголовок (Title) — "Sending emails from existing account".
- Код (Code) — "UsrSendEmailFromExistingUserProcess".

2. Добавьте элемент Автогенерируемая страница
С помощью элемента Автогенерируемая страница (Auto-generated page) в ходе выполнения процесса можно открыть произвольную страницу, которая создана пользователем системы. Для этого элемента добавьте подпись Filling parameters и установите следующие свойства:
- Название страницы (Page title) — "Fill parameters for sending Email".
- Кому отобразить страницу? (To whom should the page be shown?) — выберите "Formula" и установите "[#System variable.Current user contact#]".

3. Добавьте кнопку на страницу
Для добавления кнопки Continue на страницу в блоке Кнопки (Buttons) нажмите и введите следующие параметры:
- Название (Caption) — "Continue".
- Код (Code) — "ContinueButton".
- Стиль (Style) — выберите "Green".
- Установите признак Активная (Active).
- Установите признак Выполняет проверку значений (Performs value validation).

Нажмите Сохранить (Save).
4. Добавьте элементы на страницу
Для добавления на страницу элемента, который будет содержать почтовый ящик отправителя email-сообщения, в блоке Параметры страницы (Page Items) нажмите , выберите тип Справочник (Selection field) и введите следующие параметры:
- Заголовок (Title) — "Sender Mailbox".
- Код (Code) — "SenderMailbox".
- Источник данных (Data source) — выберите "Mailbox synchronization settings".
- Представление (View) — выберите "Drop down list".

Нажмите Сохранить (Save).
Для добавления на страницу элемента, который будет содержать почтовый ящик получателя email-сообщения, в блоке Параметры страницы (Page Items) нажмите , выберите тип Строковое поле (Text field) и введите следующие параметры:
- Заголовок (Title) — "Recipient (many recipients separated by semicolon ";")".
- Код (Code) — "Recipient".
- Установите признак Обязательное (Required).

Нажмите Сохранить (Save).
Для добавления на страницу элемента, который будет содержать тему email-сообщения, в блоке Параметры страницы (Page Items) нажмите , выберите тип Строковое поле (Text field) и введите следующие параметры:
- Заголовок (Title) — "Subject".
- Код (Code) — "Subject".
- Установите признак Обязательное (Required).

Нажмите Сохранить (Save).
Для добавления на страницу элемента, который будет содержать тело email-сообщения, в блоке Параметры страницы (Page Items) нажмите , выберите тип Строковое поле (Text field) и введите следующие параметры:
- Заголовок (Title) — "Body".
- Код (Code) — "Body".
- Установите признак Обязательное (Required).

Нажмите Сохранить (Save).
5. Добавьте элемент Задание-сценарий
Свойству Заголовок (Title) элемента Задание-сценарий (Script task) присвойте значение "Send Email". Элемент должен выполнять программный код.
6. Добавьте параметры
Для добавления параметра бизнес-процесса, который будет содержать почтовый ящик получателя email-сообщения, на вкладке Параметры (Parameters) панели настройки свойств процесса выполните действие Добавить параметр —> Текст (Add parameters —> Text) и установите следующие свойства параметра:
- Заголовок (Title) — "Recipient".
- Код (Code) — "Recipient".
- Значение (Value) — нажмите
—> Параметр процесса (Process parameter) и выберите элемент процесса "Recipient (many recipients separated by semicolon ";")".

Нажмите Сохранить (Save).
Для добавления параметра бизнес-процесса, который будет содержать тему email-сообщения, на вкладке Параметры (Parameters) панели настройки свойств процесса выполните действие Добавить параметр —> Текст (Add parameters —> Text) и установите следующие свойства параметра:
- Заголовок (Title) — "Subject".
- Код (Code) — "Subject".
- Значение (Value) — нажмите
—> Параметр процесса (Process parameter) и выберите элемент процесса "Subject".

Нажмите Сохранить (Save).
Для добавления параметра бизнес-процесса, который будет содержать тело email-сообщения, на вкладке Параметры (Parameters) панели настройки свойств процесса выполните действие Добавить параметр —> Текст (Add parameters —> Text) и установите следующие свойства параметра:
- Заголовок (Title) — "Body".
- Код (Code) — "Body".
- Значение (Value) — нажмите
—> Параметр процесса (Process parameter) и выберите элемент процесса "Body".

Нажмите Сохранить (Save).
Для добавления параметра бизнес-процесса, который будет содержать почтовый ящик отправителя email-сообщения, на вкладке Параметры (Parameters) панели настройки свойств процесса выполните действие Добавить параметр —> Другое —> Уникальный идентификатор (Add parameters —> Other —> Unique identifier) и установите следующие свойства параметра:
- Заголовок (Title) — "Sender Mailbox".
- Код (Code) — "SenderMailbox".
- Значение (Value) — нажмите
—> Параметр процесса (Process parameter) и выберите элемент процесса "Sender Mailbox".

Нажмите Сохранить (Save).
7. Добавьте методы
Для добавления методов бизнес-процесса на вкладке Методы (Methods) панели настройки свойств процесса в блоке Usings нажмите и в поле Пространство имён (Name Space) добавьте значение Terrasoft.Configuration. Нажмите Сохранить (Save).
Таким же способом добавьте следующие пространства имен:
- Terrasoft.Mail.Sender
- Terrasoft.Core.Factories
- Terrasoft.Core
- Terrasoft.Mail
- IntegrationApi
- System.Linq
Сохраните все изменения в дизайнере процессов.
8. Запустите бизнес-процесс
После запуска бизнес-процесса по кнопке Запустить (Run) будет открыта страница для заполнения параметров email-сообщения.

Для отправки email-сообщения с существующей учетной записи нажмите Continue.
Алгоритм реализации примера
1. Создайте бизнес-процесс
В разделе Конфигурация (Configuration) выполните действие Добавить —> Бизнес-процесс (Add —> Business process).

В открывшемся дизайнере процессов установите следующие значения на панели настройки свойств процесса:
- Заголовок (Title) — "Sending emails using the explicit account credentials".
- Код (Code) — "UsrSendEmailWithCredentialsProcess".

2. Добавьте элемент Автогенерируемая страница
С помощью элемента Автогенерируемая страница (Auto-generated page) в ходе выполнения процесса можно открыть произвольную страницу, которая создана пользователем системы. Для этого элемента добавьте подпись Filling parameters и установите следующие свойства:
- Название страницы (Page title) — "Fill parameters for sending Email".
- Кому отобразить страницу? (To whom should the page be shown?) — выберите "Formula" и установите [#System variable.Current user contact#].

3. Добавьте кнопку на страницу
Для добавления кнопки Continue на страницу, в блоке Кнопки (Buttons) нажмите и введите следующие параметры:
- Название (Caption) — "Continue".
- Код (Code) — "ContinueButton".
- Стиль (Style) — выберите "Green".
- Установите признак Активная (Active).
- Установите признак Выполняет проверку значений (Performs value validation).

Нажмите Сохранить (Save).
4. Добавьте элементы на страницу
Для добавления на страницу элемента, который будет содержать почтовый ящик отправителя email-сообщения, в блоке Параметры страницы (Page Items) нажмите , выберите тип Строковое поле (Text field) и введите следующие параметры:
- Заголовок (Title) — "Sender Mailbox".
- Код (Code) — "SenderMailbox".
- Установите признак Обязательное (Required).

Нажмите Сохранить (Save).
Для добавления на страницу элемента, который будет содержать имя отправителя email-сообщения, в блоке Параметры страницы (Page Items) нажмите , выберите тип Строковое поле (Text field) и введите следующие параметры:
- Заголовок (Title) — "User Name".
- Код (Code) — "UserName".
- Установите признак Обязательное (Required).

Нажмите Сохранить (Save).
Для добавления на страницу элемента, который будет содержать пароль к почтовому ящику отправителя email-сообщения, в блоке Параметры страницы (Page Items) нажмите , выберите тип Строковое поле (Text field) и введите следующие параметры:
- Заголовок (Title) — "Password".
- Код (Code) — "Password".
- Установите признак Обязательное (Required).

Нажмите Сохранить (Save).
Для добавления на страницу элемента, который будет содержать адрес почтового сервера отправителя email-сообщения, в блоке Параметры страницы (Page Items) нажмите , выберите тип Строковое поле (Text field) и введите следующие параметры:
- Заголовок (Title) — "Service Url".
- Код (Code) — "ServiceUrl".
- Установите признак Обязательное (Required).

Нажмите Сохранить (Save).
Для добавления на страницу элемента, который будет содержать номер порта почтового провайдера отправителя email-сообщения, в блоке Параметры страницы (Page Items) нажмите , выберите тип Целое число (Integer) и введите следующие параметры:
- Заголовок (Title) — "Port".
- Код (Code) — "Port".

Нажмите Сохранить (Save).
Для добавления на страницу элемента, который будет содержать криптографический протокол для обеспечения безопасной связи, в блоке Параметры страницы (Page Items) нажмите , выберите тип Логическое (Boolean) и введите следующие параметры:
- Заголовок (Title) — "Use Ssl".
- Код (Code) — "UseSsl".

Нажмите Сохранить (Save).
Для добавления на страницу элемента, который будет содержать почтовый ящик получателя email-сообщения, в блоке Параметры страницы (Page Items) нажмите , выберите тип Строковое поле (Text field) и введите следующие параметры:
- Заголовок (Title) — "Recipient (many recipients separated by semicolon ";")".
- Код (Code) — "Recipient".
- Установите признак Обязательное (Required).

Нажмите Сохранить (Save).
Для добавления на страницу элемента, который будет содержать тему email-сообщения, в блоке Параметры страницы (Page Items) нажмите , выберите тип Строковое поле (Text field) и введите следующие параметры:
- Заголовок (Title) — "Subject".
- Код (Code) — "Subject".
- Установите признак Обязательное (Required).

Нажмите Сохранить (Save).
Для добавления на страницу элемента, который будет содержать тело email-сообщения, в блоке Параметры страницы (Page Items) нажмите , выберите тип Строковое поле (Text field) и введите следующие параметры:
- Заголовок (Title) — "Body".
- Код (Code) — "Body".
- Установите признак Обязательное (Required).

Нажмите Сохранить (Save).
Для добавления на страницу элемента, который будет содержать тип почтового провайдера отправителя email-сообщения, в блоке Параметры страницы (Page Items) нажмите , выберите тип Справочник (Selection field) и введите следующие параметры:
- Заголовок (Title) — "Type of mail server".
- Код (Code) — "ServerTypeId".
- Установите признак Обязательное (Required).
- Источник данных (Data source) — выберите "Mail service provider type".
- Представление (View) — выберите "Drop down list".

Нажмите Сохранить (Save).
5. Добавьте элемент Задание-сценарий
Свойству Заголовок (Title) элемента Задание-сценарий (Script task) присвойте значение "Send Email". Элемент должен выполнять программный код.
6. Добавьте параметры
Для добавления параметра бизнес-процесса, который будет содержать адрес почтового сервера отправителя email-сообщения, на вкладке Параметры (Parameters) панели настройки свойств процесса выполните действие Добавить параметр —> Текст (Add parameters —> Text) и установите следующие свойства параметра:
- Заголовок (Title) — "Service Url".
- Код (Code) — "ServiceUrl".
- Значение (Value) — нажмите
—> Параметр процесса (Process parameter) и выберите элемент процесса "Service Url".

Нажмите Сохранить (Save).
Для добавления параметра бизнес-процесса, который будет содержать номер порта почтового провайдера отправителя email-сообщения, на вкладке Параметры (Parameters) панели настройки свойств процесса выполните действие Добавить параметр —> Целое число (Add parameters —> Integer) и установите следующие свойства параметра:
- Заголовок (Title) — "Port".
- Код (Code) — "Port".
- Значение (Value) — нажмите
—> Параметр процесса (Process parameter) и выберите элемент процесса "Port".

Нажмите Сохранить (Save).
Для добавления параметра бизнес-процесса, который будет содержать криптографический протокол для обеспечения безопасной связи, на вкладке Параметры (Parameters) панели настройки свойств процесса выполните действие Добавить параметр —> Логическое (Add parameters —> Boolean) и установите следующие свойства параметра:
- Заголовок (Title) — "Use Ssl".
- Код (Code) — "Use Ssl".
- Значение (Value) — нажмите
—> Параметр процесса (Process parameter) и выберите элемент процесса "Use Ssl".

Нажмите Сохранить (Save).
Для добавления параметра бизнес-процесса, который будет содержать имя отправителя email-сообщения, на вкладке Параметры (Parameters) панели настройки свойств процесса выполните действие Добавить параметр —> Текст (Add parameters —> Text) и установите следующие свойства параметра:
- Заголовок (Title) — "User Name".
- Код (Code) — "UserName".
- Тип данных (Data type) — выберите "Text (250 characters)".
- Значение (Value) — нажмите
—> Параметр процесса (Process parameter) и выберите элемент процесса "User Name".

Нажмите Сохранить (Save).
Для добавления параметра бизнес-процесса, который будет содержать пароль к почтовому ящику отправителя email-сообщения, на вкладке Параметры (Parameters) панели настройки свойств процесса выполните действие Добавить параметр —> Текст (Add parameters —> Text) и установите следующие свойства параметра:
- Заголовок (Title) — "Password".
- Код (Code) — "Password".
- Тип данных (Data type) — выберите "Text (250 characters)".
- Значение (Value) — нажмите
—> Параметр процесса (Process parameter) и выберите элемент процесса "Password".

Нажмите Сохранить (Save).
Для добавления параметра бизнес-процесса, который будет содержать почтовый ящик получателя email-сообщения, на вкладке Параметры (Parameters) панели настройки свойств процесса выполните действие Добавить параметр —> Текст (Add parameters —> Text) и установите следующие свойства параметра:
- Заголовок (Title) — "Recipient".
- Код (Code) — "Recipient".
- Значение (Value) — нажмите
—> Параметр процесса (Process parameter) и выберите элемент процесса "Recipient (many recipients separated by semicolon ";")".

Нажмите Сохранить (Save).
Для добавления параметра бизнес-процесса, который будет содержать тип почтового провайдера отправителя email-сообщения, на вкладке Параметры (Parameters) панели настройки свойств процесса выполните действие Добавить параметр —> Другое —> Уникальный идентификатор (Add parameters —> Other —> Unique identifier) и установите следующие свойства параметра:
- Заголовок (Title) — "Type of mail server".
- Код (Code) — "ServerTypeId".
- Значение (Value) — нажмите
—> Параметр процесса (Process parameter) и выберите элемент процесса "Type of mail server".

Нажмите Сохранить (Save).
Для добавления параметра бизнес-процесса, который будет содержать почтовый ящик отправителя email-сообщения, на вкладке Параметры (Parameters) панели настройки свойств процесса выполните действие Добавить параметр —> Текст (Add parameters —> Text) и установите следующие свойства параметра:
- Заголовок (Title) — "Sender Mailbox".
- Код (Code) — "SenderMailbox".
- Тип данных (Data type) — выберите "Text (250 characters)".
- Значение (Value) — нажмите
—> Параметр процесса (Process parameter) и выберите элемент процесса "Sender Mailbox".

Нажмите Сохранить (Save).
7. Добавьте методы
Для добавления методов бизнес-процесса на вкладке Методы (Methods) панели настройки свойств процесса в блоке Usings нажмите и в поле Пространство имён (Name Space) добавьте значение Terrasoft.Mail.Sender. Нажмите Сохранить (Save).
Таким же способом добавьте следующие пространства имен:
- Terrasoft.Core.Factories
- System.Linq
Сохраните все изменения в дизайнере процессов.
8. Запуск бизнес-процесса
После запуска бизнес-процесса по кнопке Запустить (Run) будет открыта страница для заполнения параметров email-сообщения.

Для отправки email-сообщения с явным указанием учетных данных нажмите Continue.