2

Создаю онлайн-сервис для чтения книг. День 5. Подтверждение почты

🎁 Бонусная статья.

Создаю онлайн-сервис для чтения книг. День 5. Подтверждение почты Программирование, Электронная почта, Aspnet, Длиннопост

🛠️ Добавлю новую таблицу в БД

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

  • id: уникальный идентификатор

  • code: сгенерированный код

  • email: почта, на которую пришел код

  • expires_in: дата и время истечения кода

Создаю онлайн-сервис для чтения книг. День 5. Подтверждение почты Программирование, Электронная почта, Aspnet, Длиннопост

🖥️ Создам интерфейс и реализую его

Опишу методы работы с этой базой данных через интерфейс.

Создаю онлайн-сервис для чтения книг. День 5. Подтверждение почты Программирование, Электронная почта, Aspnet, Длиннопост

🔐 Интерфейс сервиса аутентификации

В интерфейс добавлю логику для отправки кода на почту.

Создаю онлайн-сервис для чтения книг. День 5. Подтверждение почты Программирование, Электронная почта, Aspnet, Длиннопост

Отправляться будет шестизначный код. Генерация кода выглядит так:

Создаю онлайн-сервис для чтения книг. День 5. Подтверждение почты Программирование, Электронная почта, Aspnet, Длиннопост

📧 Настройка почты

Теперь зайду в mail.ru и создам новую почту. Перейду в настройки безопасности и выберу пункт "Пароли для внешних приложений" . Создам новое внешнее приложение и получу для него пароль. Запишу его себе куда-нибудь.


📦 Подключаю библиотеку System.Net.Mail

Для отправки сообщений необходимо подключить библиотеку System.Net.Mail. Она поможет настроить SMTP-клиент и отправить письмо.


🎯 Генерация кода и запись в БД

1. Параметры SMTP-сервера

Эти переменные необходимы для настройки подключения к SMTP-серверу, который будет отправлять письмо.

smtpServer

smtpPort

  • Описание : Порт, используемый для подключения к SMTP-серверу. Обычно это:

    • 587 (для TLS/STARTTLS)

    • 465 (для SSL)

  • Пример : 587 для Gmail или Mail.ru.

smtpUsername

  • Описание : Логин (обычно email), который используется для аутентификации на SMTP-сервере.

smtpPassword

  • Описание : Пароль для аутентификации на SMTP-сервере. В моем случае я вписал пароль, который недавно получил от mail.ru.


2. Параметры объекта MailMessage

Класс MailMessage используется для создания самого письма. Вот его основные параметры:

IsBodyHtml = true

  • Описание : Этот флаг указывает, что тело письма содержит HTML-разметку. Если установлено значение false, то тело письма будет обрабатываться как простой текст.

From

  • Описание : Указывает адрес отправителя. Это поле должно быть заполнено объектом типа MailAddress.

To

  • Описание : Указывает адрес получателя. Можно добавить несколько адресов с помощью метода message.To.Add().

Subject

  • Описание : Тема письма, которая отображается в заголовке сообщения.

Body

  • Описание : Тело письма. Если IsBodyHtml = true, то здесь можно использовать HTML-разметку. В противном случае это будет простой текст. В моем случае я сверстал небольшую форму, записал её в отдельную переменную класса Constaints.

Создаю онлайн-сервис для чтения книг. День 5. Подтверждение почты Программирование, Электронная почта, Aspnet, Длиннопост

🌐 Добавляю эндпоинт

Создам эндпоинт, который будет отвечать за отправку сообщения. Например:

Создаю онлайн-сервис для чтения книг. День 5. Подтверждение почты Программирование, Электронная почта, Aspnet, Длиннопост

🧪 Тестирую!

Запускаю сервер и тестирую функционал:

  • Ввожу адрес электронной почты, на который хочу отправить сообщение. 📝

Создаю онлайн-сервис для чтения книг. День 5. Подтверждение почты Программирование, Электронная почта, Aspnet, Длиннопост
  • Нажимаю "Выполнить". ✅

И... Письмо пришло! 🎉

Создаю онлайн-сервис для чтения книг. День 5. Подтверждение почты Программирование, Электронная почта, Aspnet, Длиннопост

🗄️ Проверяю БД

Убеждаюсь, что запись добавлена в базу данных. Все отлично работает! ✅

Создаю онлайн-сервис для чтения книг. День 5. Подтверждение почты Программирование, Электронная почта, Aspnet, Длиннопост

🎉 Итог

Теперь пользователи могут подтвердить свою почту с помощью шестизначного кода.