С помощью этого документа я хотел бы помочь всем разработчикам, которые пытаются добавить HTML-код в динамический шаблон SendGrid с помощью C#.

Чтобы создать шаблон SendGrid, вы должны сначала перейти в SendGrid и щелкнуть меню «Динамические шаблоны». Оттуда нажмите Создать динамический шаблон и Добавить версию.

Затем вы можете выбрать либо из готовых дизайнов, либо создать свой.

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

Откроется редактор, и оттуда вы можете выбрать модули и с помощью перетаскивания создать свою электронную почту.

Это очень просто, но если вы хотите отправлять динамические значения из своего кода C#, вам нужно использовать теги подстановки {{}}. Эти теги будут динамически заполнять это поле для каждого пользователя. Простой руль — это имя {{first_name}}. Вы можете прочитать больше в документации SendGrid.

Теги можно использовать в большинстве модулей, но в основном вы будете использовать их в модуле «Текст».

Однако в нашем случае мы хотим увидеть, как их использовать, если мы хотим передать определенный HTML-код.

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

Нажмите на модуль кода и добавьте его в свой редактор.

Затем нажмите «Добавить код» и вставьте тег в свой HTML-код.

Но, поскольку это HTML, вы будете использовать не 2 тайника {{ }}, а 3 тайника {{{ }}}. Это очень важно, потому что если вы используете 2, то HTML будет проанализирован как строка.

После того, как вы создали свой шаблон, давайте посмотрим, как вы отправляете свою электронную почту с C#.

Отправить электронное письмо с помощью C#

Выполните следующие действия:

  1. Установите пакет SendGrid для C# с помощью диспетчера пакетов NuGet.
  2. Создайте ключ API SendGrid из своей учетной записи SendGrid. Этот ключ будет использоваться для аутентификации ваших запросов к SendGrid.
  3. Создайте новый экземпляр клиента SendGrid с вашим ключом API.
using SendGrid;
using SendGrid.Helpers.Mail;

var client = new SendGridClient("YOUR_API_KEY");

Затем вы напишете метод, подобный приведенному ниже:

  public async Task SendOfferToEmailAsync(SaveOfferTemplate saveOfferTemplate)
        {
            var templateid = "d-id";


            var dynamicEmailData = new
            {
                first_name = saveOfferTemplate.Firstname,
                saveOfferTemplate.product_details,
                saveOfferTemplate.offer_link,

            };


            var client = new SendGridClient(_apiKey);

            var msg = new SendGridMessage();
            msg.SetFrom(new EmailAddress(_fromEmail));
            msg.AddTo(new EmailAddress(saveOfferTemplate.Email, saveOfferTemplate.Firstname));
            msg.SetTemplateId(templateid);
            msg.SetTemplateData(dynamicEmailData);

            var response = await client.SendEmailAsync(msg);

            if (response.StatusCode == System.Net.HttpStatusCode.Accepted)
            {
               //Do your logic
            }

        }

Строка var templateId содержит идентификатор шаблона, который SendGrid использует и отправляет по электронной почте.

Объект var dynamicEmailData содержит все динамические значения, существующие в вашем шаблоне.

Вот и все! Это должно отправить электронное письмо с использованием динамических шаблонов SendGrid.

Заключение

Мы увидели, как можно отправить электронное письмо с C#, используя систему шаблонов SendGrid. Надеюсь, это помогло вам!