Creatio development guide
PDF

Отправка email-сообщения с явным указанием учетных данных

Glossary Item Box

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

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

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

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

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

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

  1. Создать экземпляр класса EmailClientFactory.
  2. Создать экземпляр класса EmailSender.
  3. Создать конфиг подключения к почтовому ящику.
  4. Создать конфиг отправляемого email-сообщения.
  5. Добавить вложение (не обязательно).
  6. Выполнить отправку.

Создание экземпляра класса EmailClientFactory

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

var emailClientFactory = ClassFactory.Get<IEmailClientFactory>(
       new ConstructorArgument("userConnection", UserConnection));

Создание экземпляра класса EmailSender

Для создания экземпляра класса EmailSender необходимо передать в конструктор созданный экземпляр EmailClientFactory и пользовательское подключение UserConnection.

var emailSender = ClassFactory.Get<IEmailSender>(
     new ConstructorArgument("emailClientFactory", emailClientFactory),
     new ConstructorArgument("userConnection", UserConnection));

Создание конфига подключения к почтовому ящику

Для создания конфига подключения к почтовому ящику используется класс EmailContract.DTO.Credentials. Чтобы создать конфиг, заполните следующие параметры:

var credentialConfig = new EmailContract.DTO.Credentials {
    // Имя или IP-адрес сервера исходящей почты.
    ServiceUrl = "mail service host",
    // Может быть пустым для некоторых протоколов.
    Port = "Port",
    // Использовать протокол SSL для шифрования подключения.
    UseSsl = false,
    // Имя пользователя почтового ящика.
    UserName = "EmailUserName",
    // Пароль пользователя почтового ящика.
    Password = "UserPassword",
    // Тип почтового сервера (Exchange либо Imap/Smtp).
    ServerTypeId = EmailDomain.IntegrationConsts.ExchangeMailServerTypeId ||
             EmailDomain.IntegrationConsts.ImapMailServerTypeId,
    // Почтовый ящик отправителя.
    SenderEmailAddress = "sender@test.com"
};

ВАЖНО

Значения ServiceUrl, UserName, Password, ServerTypeId, SenderEmailAddress являются обязательными для заполнения.

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

Для создания конфига отправляемого email-сообщения необходимо использовать класс EmailContract.DTO.Email. Для формирования валидного email-сообщения, заполните следующие основные параметры:

var message = new EmailContract.DTO.Email {
    // Email-адрес отправителя.
    Sender = "Sender@email.com",
    // Email-адреса получателей.
    Recepients = List<string>{ "first@recepient.co", "second@recepient.co"},
    // Тема письма.
    Subject = "Message subject",
    // Тело письма.
    Body = "Body",
    // Приоритет, значения из перечисления EmailContract.EmailImportance.
    Importance = EmailContract.EmailImportance.High
};

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

Дополнительно в email-сообщение можно добавить вложение. Для этого требуется заполнить поле Attachments. Вложения представляют из себя список экземпляров EmailContract.DTO.Attachment.

// Создание вложения.
var attachment = new EmailContract.DTO.Attachment {
    Name = "FileName",
    Id = "844F0837-EAA0-4F40-B965-71F5DB9EAE6E"
};
// Установка данных для вложения.
attachment.SetData(byteData);
// Добавление вложения в письмо.
message.Attachments.Add(attachment);

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

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

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

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

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