Creatio development guide
PDF
Это документация Creatio версии 7.16.0. Мы рекомендуем использовать новую версию документации.

Отправка email-сообщения с существующей учетной записи

Glossary Item Box

Общие сведения

Возможность отправки email-сообщений с существующей учетной записи доступна в Creatio версии 7.16 и выше.

В Сreatio вы можете отправлять email-сообщения не только пользовательскими средствами, но и средствами разработки. Это реализуется следующими способами:

  • С существующей учетной записи.
  • С явным указанием учетных данных.

В этой статье рассмотрен способ отправки email-сообщения с существующей учетной записи. Как отправить письмо с явным указанием данных, читайте в статье "Отправка email-сообщения с явным указанием учетных данных".

Отправка email-сообщения с существующей учетной записи реализована с помощью бизнес-процесса. Для настройки бизнес-процесса используются элементы [Автогенерируемая страница] ([Auto-generated page]) и [Задание-сценарий] ([Script task]).

Подготовка и отправка email-сообщения

Для отправки email-сообщения с существующей учетной записи необходимо выполнить следующие действия:

  1. Создать бизнес-процесс, который должен включать обязательные элементы [Автогенерируемая страница] и [Задание-сценарий].
  2. Создать конфиг отправляемого email-сообщения.
  3. Добавить вложение (не обязательно).
  4. Запустить бизнес-процесс для выполнения отправки.

Создание конфига отправляемого email-сообщения

Для создания конфига отправляемого email-сообщения необходимо использовать класс Terrasoft.Mail.Sender.EmailMessage. Для формирования валидного email-сообщения необходимо заполнить следующие параметры:

var message = new Terrasoft.Mail.Sender.EmailMessage {
    // Email-адрес отправителя.
    From = "Sender@email.com",
    // Email-адреса получателей.
    To = List<string>{ "first@recepient.co", "second@recepient.co"},
    // Копия (не обязательно).
    Cc = List<string>{ "first@recepient.co", "second@recepient.co"},
    // Скрытая копия (не обязательно).
    Bcc = List<string>{ "first@recepient.co", "second@recepient.co"},
    // Тема письма.
    Subject = "Message subject",
    // Тело письма.
    Body = "Body",
    // Приоритет, значения из перечисления Terrasoft.Mail.Sender.EmailPriority.
    Priority = Terrasoft.Mail.Sender.EmailPriority.Normal
};

Добавление вложения (не обязательно)

В email-сообщение можно добавить вложение. Для этого необходимо заполнить поле [Attachments]. Вложения представляют собой список экземпляров Terrasoft.Mail.Sender.EmailAttachments.

// Создание вложения.
var attachment = new Terrasoft.Mail.Sender.EmailAttachment {
    // Идентификатор вложения.
    Id = new Guid("844F0837-EAA0-4F40-B965-71F5DB9EAE6E"),
    // Имя вложения.
    Name = "attachName.txt",
    // Данные.
    Data = byteData
};
// Добавление вложения в письмо.
message.Attachments.Add(attachment);

Отправка email-сообщения

Для отправки письма необходимо использовать метод Send класса EmailSender c переданными параметрами email-сообщения и конфига подключения:

// Отправка сформированного email-сообщения. Для игнорирования прав доступа при отправке 
// требуется присвоить параметру ignoreRights значение true.
emailSender.Send(message, ignoreRights);

Описание примера

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

Исходный код

Пакет с реализацией примера можно скачать по ссылке.

Алгоритм реализации примера

1. Создайте бизнес-процесс

В разделе [Конфигурация] ([Configuration]) выполните действие [Добавить] —> [Бизнес-процесс] ([Add] —> [Business process]) (рис. 1).

Рис. 1. — Действие [Добавить] —> [Бизнес-процесс]

В открывшемся дизайнере процессов установите следующие значения на панели настройки свойств процесса (рис. 2):

  • [Заголовок] ([Title]) — "Sending emails from existing account".
  • [Код] ([Code]) — "UsrSendEmailFromExistingUserProcess".

Рис. 2. — Свойства бизнес-процесса

2. Добавьте элемент [Автогенерируемая страница]

С помощью элемента [Автогенерируемая страница] ([Auto-generated page]) в ходе выполнения процесса можно открыть произвольную страницу, которая создана пользователем системы. Для этого элемента добавьте подпись [Filling parameters] и установите следующие свойства (рис. 3):

  • [Название страницы] ([Page title]) — "Fill parameters for sending Email".
  • [Кому отобразить страницу?] ([To whom should the page be shown?]) — выберите "Formula" и установите [#System variable.Current user contact#].

Рис. 3. — Свойства автогенерируемой страницы

3. Добавьте кнопку на страницу

Для добавления кнопки [Continue] на страницу в блоке [Кнопки] ([Buttons]) нажмите и введите следующие параметры (рис. 4):

  • [Название] ([Caption]) — "Continue".
  • [Код] ([Code]) — "ContinueButton".
  • [Стиль] ([Style]) — выберите "Green".
  • Установите признак [Активная] ([Active]).
  • Установите признак [Выполняет проверку значений] ([Performs value validation]).

Рис. 4. — Добавление кнопки на автогенерируемую страницу

Нажмите [Сохранить] ([Save]).

4. Добавьте элементы на страницу

Для добавления на страницу элемента, который будет содержать почтовый ящик отправителя email-сообщения, в блоке [Параметры страницы] ([Page Items]) нажмите , выберите тип [Справочник] ([Selection field]) и введите следующие параметры (рис. 5):

  • [Заголовок] ([Title]) — "Sender Mailbox".
  • [Код] ([Code]) — "SenderMailbox".
  • [Источник данных] ([Data source]) — выберите "Mailbox synchronization settings".
  • [Представление] ([View]) — выберите "Drop down list".

Рис. 5. — Добавление элемента на автогенерируемую страницу

Нажмите [Сохранить] ([Save]).

Для добавления на страницу элемента, который будет содержать почтовый ящик получателя email-сообщения, в блоке [Параметры страницы] ([Page Items]) нажмите , выберите тип [Строковое поле] ([Text field]) и введите следующие параметры (рис. 6):

  • [Заголовок] ([Title]) — "Recipient (many recipients separated by semicolon ";")".
  • [Код] ([Code]) — "Recipient".
  • Установите признак [Обязательное] ([Required]).

Рис. 6. — Добавление элемента на автогенерируемую страницу

Нажмите [Сохранить] ([Save]).

Для добавления на страницу элемента, который будет содержать тему email-сообщения, в блоке [Параметры страницы] ([Page Items]) нажмите , выберите тип [Строковое поле] ([Text field]) и введите следующие параметры (рис. 7):

  • [Заголовок] ([Title]) — "Subject".
  • [Код] ([Code]) — "Subject".
  • Установите признак [Обязательное] ([Required]).

Рис. 7. — Добавление элемента на автогенерируемую страницу

Нажмите [Сохранить] ([Save]).

Для добавления на страницу элемента, который будет содержать тело email-сообщения, в блоке [Параметры страницы] ([Page Items]) нажмите , выберите тип [Строковое поле] ([Text field]) и введите следующие параметры (рис. 8):

  • [Заголовок] ([Title]) — "Body".
  • [Код] ([Code]) — "Body".
  • Установите признак [Обязательное] ([Required]).

Рис. 8. — Добавление элемента на автогенерируемую страницу

Нажмите [Сохранить] ([Save]).

5. Добавьте элемент [Задание-сценарий]

Свойству [Заголовок] ([Title]) элемента [Задание-сценарий] ([Script task]) присвойте значение "Send Email". Элемент должен выполнять следующий программный код:

// Id выбранного почтового ящика.
var mailBoxSettingId = Get<Guid>("SenderMailbox");
// Создание экземпляра EmailClientFactory.
var emailClientFactory = ClassFactory.Get<IEmailClientFactory>(
   new ConstructorArgument("userConnection", UserConnection));
// Создание экземпляра IEmailSender.
var emailSender = ClassFactory.Get<IEmailSender>(
    new ConstructorArgument("emailClientFactory", emailClientFactory),
    new ConstructorArgument("userConnection", UserConnection));

var entity = UserConnection.EntitySchemaManager.GetInstanceByName("MailboxSyncSettings").CreateEntity(UserConnection);
if (entity.FetchFromDB("Id", mailBoxSettingId, new List<string> { "SenderEmailAddress" })) {
    // Получение почтового адреса отправителя из выбранного почтового ящика.
    var senderEmailAddress = entity.GetTypedColumnValue<string>("SenderEmailAddress");
    // Заполнение параметров отправляемого сообщения.
    var message = new Terrasoft.Mail.Sender.EmailMessage {
        // Email-адрес отправителя.
        From = senderEmailAddress,
        // Email-адреса получателей.
        To = Get<string>("Recipient").Split(';').ToList<string>(),
        // Копия (не обязательно).
        // Cc = List<string>{ "first@recepient.co", "second@recepient.co"},
        // Скрытая копия (не обязательно).
        // Bcc = List<string>{ "first@recepient.co", "second@recepient.co"},
        // Тема письма.
        Subject = Get<string>("Subject"),
        // Тело письма.
        Body = Get<string>("Body"),
        // Приоритет, значения из перечисления Terrasoft.Mail.Sender.EmailPriority.
        Priority = Terrasoft.Mail.Sender.EmailPriority.Normal
    };
    // Дополнительно можно прикреплять вложения (в примере используются тестовые значения).
    // Создание вложения.
    var attachment = new Terrasoft.Mail.Sender.EmailAttachment {
        // Идентификатор вложения.
        Id = Guid.NewGuid(),
        // Название файла.
        Name = "test.txt",
        // Данные.
        Data = Encoding.ASCII.GetBytes("some test text")
    };
    // Добавление вложения в письмо.
    message.Attachments.Add(attachment);
    // Отправка письма.
    emailSender.Send(message);
}

return true;

6. Добавьте параметры

Для добавления параметра бизнес-процесса, который будет содержать почтовый ящик получателя email-сообщения, на вкладке [Параметры] ([Parameters]) панели настройки свойств процесса выполните действие [Добавить параметр] —> [Текст] ([Add parameters] —> [Text]) и установите следующие свойства параметра (рис. 9):

  • [Заголовок] ([Title]) — "Recipient".
  • [Код] ([Code]) — "Recipient".
  • [Значение] ([Value]) — нажмите —> [Параметр процесса] ([Process parameter]) и выберите элемент процесса "Recipient (many recipients separated by semicolon ";")".

Рис. 9. — Добавление параметра процесса

Нажмите [Сохранить] ([Save]).

Для добавления параметра бизнес-процесса, который будет содержать тему email-сообщения, на вкладке [Параметры] ([Parameters]) панели настройки свойств процесса выполните действие [Добавить параметр] —> [Текст] ([Add parameters] —> [Text]) и установите следующие свойства параметра (рис. 10):

  • [Заголовок] ([Title]) — "Subject".
  • [Код] ([Code]) — "Subject".
  • [Значение] ([Value]) — нажмите —> [Параметр процесса] ([Process parameter]) и выберите элемент процесса "Subject".

Рис. 10. — Добавление параметра процесса

Нажмите [Сохранить] ([Save]).

Для добавления параметра бизнес-процесса, который будет содержать тело email-сообщения, на вкладке [Параметры] ([Parameters]) панели настройки свойств процесса выполните действие [Добавить параметр] —> [Текст] ([Add parameters] —> [Text]) и установите следующие свойства параметра (рис. 11):

  • [Заголовок] ([Title]) — "Body".
  • [Код] ([Code]) — "Body".
  • [Значение] ([Value]) — нажмите —> [Параметр процесса] ([Process parameter]) и выберите элемент процесса "Body".

Рис. 11. — Добавление параметра процесса

Нажмите [Сохранить] ([Save]).

Для добавления параметра бизнес-процесса, который будет содержать почтовый ящик отправителя email-сообщения, на вкладке [Параметры] ([Parameters]) панели настройки свойств процесса выполните действие [Добавить параметр] —> [Другое] —> [Уникальный идентификатор] ([Add parameters] —> [Other] —> [Unique identifier]) и установите следующие свойства параметра (рис. 12):

  • [Заголовок] ([Title]) — "Sender Mailbox".
  • [Код] ([Code]) — "SenderMailbox".
  • [Значение] ([Value]) — нажмите —> [Параметр процесса] ([Process parameter]) и выберите элемент процесса "Sender Mailbox".

Рис. 12. — Добавление параметра процесса

Нажмите [Сохранить] ([Save]).

7. Добавьте методы

Для добавления методов бизнес-процесса на вкладке [Методы] ([Methods]) панели настройки свойств процесса в блоке [Usings] нажмите и в поле [Пространство имён] ([Name Space]) добавьте значение Terrasoft.Configuration. Нажмите [Сохранить] ([Save]).

Таким же способом добавьте следующие пространства имен:

  • Terrasoft.Mail.Sender
  • Terrasoft.Core.Factories
  • Terrasoft.Core
  • Terrasoft.Mail
  • IntegrationApi
  • System.Linq

Сохраните все изменения в дизайнере процессов.

8. Запустите бизнес-процесс

Для успешного запуска бизнес-процесса необходимо предварительно добавить учетную запись отправителя в приложение Creatio. Подробнее о добавлении учетной записи читайте в блоке статей "Интеграция с сервисом MS Exchange".

После запуска бизнес-процесса по кнопке [Запустить] ([Run]) будет открыта страница для заполнения параметров email-сообщения (рис. 13).

Рис. 13. — Страница для отправки email-сообщения

Для отправки email-сообщения с существующей учетной записи нажмите [Continue].

© Terrasoft 2002-2020.

Был ли данный материал полезен?

Как можно улучшить эту статью?