Использование сервиса API SendGrid для реализации отправки Email -сообщений в проекте ASP . NET Core
Бахтин Игорь Владиславович, студент
Северный (Арктический) федеральный университет имени М. В. Ломоносова (г. Архангельск)
В данной статье рассмотрено использование Email-рассылки при помощи API SendGrid в проекте ASP.NET Core.
Ключевые слова : Email-рассылка, ASP.NET Core,.NET Core, SendGrid, API.
This article discusses how to use Email mailing using the API SendGrid in the ASP.NET Core project.
Keywords: Email newsletter, ASP.NET Core, .NET Core, SendGrid, API.
Существует много причин, по которым может потребоваться отправка Email сообщений с веб-сайта. Возможно, необходимо подтверждать аккаунт при помощи электронной почты, или организовать службу обратной связи с тех. поддержкой интернет-магазина.
Рассмотрим API сервиса SendGrid, который позволяет внедрить отправку Email сообщений на сайт.
Процесс установки довольно легок:
– необходимо зарегистрироваться на сайте SendGrid [1];
– получить API ключи;
– добавить их в исходный проект;
– настроить отправку сообщений в проекте.
Первым делом, зарегистрируемся на сайте. В качестве примера выберем бесплатный тариф, который ограничивает некоторые действия, например, 40 тысяч сообщений в месяц, что для крупного интернет-магазина будет довольно мало, но для развивающегося — это отличный вариант. Но также на сайте можно модифицировать тарифный план под нужды магазина, что соответственно скажется на ежемесячной стоимости сервиса. На рисунке 1 представлен список тарифных планов сервиса.
Рис. 1. Список тарифных планов
Итак, после выбора тарифного плана вводим личные данные: электронная почта, примерное количество отправляемых сообщений в месяц, имя и фамилия, сайт и т. д. После успешной регистрации необходимо выбрать пункт «Integrate using our Web API or SMTP relay» в соответствии с рисунком 2.
Рис. 2. Выбор интеграции
Выберем Web API. Дальнейшим шагом необходимо язык программирования. Так как проект на ASP.NET Core, то выберем C# в соответствии с рисунком 3.
Рис. 3. Выбор языка программирования
Далее необходимо указать имя API ключа, это может быть любое название, например, имя проекта. После этого ключ успешно сгенерируется в соответствии с рисунком 4.
Рис. 4. Сгенерированный ключ
После этого необходимо добавить этот ключ в конфигурационный файл «appsettings.json», в соответствии с рисунок 5.
Рис. 5. Добавление ключа в конфигурационный файл
Создадим класс «EmailSender», в котором настроим параметры отправки сообщений. Сервис предоставляет конструкцию, которую необходимо настроить своими данными в соответствии с рисунком 6.
Рис. 6. Стандартная конструкция Execute
Для того чтобы настроить под себя необходимо связать данные с «appsettings.json» с данным классом. Для этого создадим класс «EmailOptions» и укажем два поля: SendGridKey (API ключ) и SendGriduser (Название ключа).
Далее при помощи процесса Внедрение зависимости (от англ. Dependency Injection, DI) [2] свяжем данные. Для этого в классе «Startup.cs» при помощи метода «AddSingleton» свяжем интерфейс «IEmailSender» с классом «EmailSender», и при помощи метода «Configure» свяжем класс с файлом конфигурации в соответствии с рисунком 7.
Рис. 7. Связывание данных
На рисунке 8 представлен один из вариантов настройки класса «EmailSender», который отправляет сообщения при регистрации пользователя на веб-приложении ASP.NET Core.
Рис. 8. Класс EmailSender
Запустим проект, зарегистрируем пользователя и проверим, пришло ли сообщение в соответствии с рисунками 9 и 10.
Рис. 9. Отправка письма с подтверждением
Рис. 10. Успешная отправка письма
При переходе по ссылке открывается ссылка, которая уведомляет, что аккаунт подтвержден, рисунок 11.
Рис. 11. Подтверждение аккаунта
Таким образом, на веб-приложение, созданное при помощи ASP.NET Core, успешно добавлен API SendGrid, который позволяет отправлять сообщения пользователям на электронную почту. В качестве примера была реализована отправка писем при регистрации новых пользователей, для того чтобы они могли подтверждать свой аккаунт.
Внедрение API позволяет без лишних проблем добавлять функционал в приложения, инструкция позволяет быстро и удобно настроить сервис.
Литература:
- Официальный сайт SendGrid — SendGrid [Электронный ресурс].– Режим доступа: https://sendgrid.com (дата обращения: 25.06.2020)
- Жизненный цикл зависимостей — Metanit [Электронный ресурс].– Режим доступа: https://metanit.com/sharp/aspnet5/6.2.php (дата обращения: 25.06.2020)