С помощью этого документа я хотел бы помочь всем разработчикам, которые пытаются добавить HTML-код в динамический шаблон SendGrid с помощью C#.
Чтобы создать шаблон SendGrid, вы должны сначала перейти в SendGrid и щелкнуть меню «Динамические шаблоны». Оттуда нажмите Создать динамический шаблон и Добавить версию.
Затем вы можете выбрать либо из готовых дизайнов, либо создать свой.
Давайте начнем с пустого шаблона, поэтому нажмите на опцию «Пустой шаблон», и мы будем использовать редактор перетаскивания.
Откроется редактор, и оттуда вы можете выбрать модули и с помощью перетаскивания создать свою электронную почту.
Это очень просто, но если вы хотите отправлять динамические значения из своего кода C#, вам нужно использовать теги подстановки {{}}. Эти теги будут динамически заполнять это поле для каждого пользователя. Простой руль — это имя {{first_name}}. Вы можете прочитать больше в документации SendGrid.
Теги можно использовать в большинстве модулей, но в основном вы будете использовать их в модуле «Текст».
Однако в нашем случае мы хотим увидеть, как их использовать, если мы хотим передать определенный HTML-код.
Итак, давайте предположим, что в своем электронном письме вы хотите передать динамический URL-адрес, чтобы перенаправить пользователя на определенную страницу продукта на вашем сайте, которая отличается для каждого пользователя.
Нажмите на модуль кода и добавьте его в свой редактор.
Затем нажмите «Добавить код» и вставьте тег в свой HTML-код.
Но, поскольку это HTML, вы будете использовать не 2 тайника {{ }}, а 3 тайника {{{ }}}. Это очень важно, потому что если вы используете 2, то HTML будет проанализирован как строка.
После того, как вы создали свой шаблон, давайте посмотрим, как вы отправляете свою электронную почту с C#.
Отправить электронное письмо с помощью C#
Выполните следующие действия:
- Установите пакет SendGrid для C# с помощью диспетчера пакетов NuGet.
- Создайте ключ API SendGrid из своей учетной записи SendGrid. Этот ключ будет использоваться для аутентификации ваших запросов к SendGrid.
- Создайте новый экземпляр клиента 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. Надеюсь, это помогло вам!