При разработке приложения ASP.NET могут быть случаи, когда вам нужно отправлять электронные письма программно, например, отправлять уведомления или общаться с пользователем. Одним из популярных вариантов является использование SMTP-сервера Gmail (Simple Mail Transfer Protocol) для отправки электронных писем из вашего приложения с использованием вашей учетной записи Gmail. Это руководство поможет вам настроить Gmail SMTP в вашем приложении ASP.NET.

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

Настройка SMTP в Gmail состоит из нескольких шагов, включая предоставление доступа для менее безопасных приложений, настройку параметров SMTP в вашем приложении и написание необходимого кода для отправки электронных писем. В этом руководстве содержатся подробные инструкции по каждому шагу, которые помогут вам успешно интегрировать SMTP Gmail в ваше приложение ASP.NET.

К концу этого руководства у вас будет четкое представление о том, как настроить SMTP Gmail в ASP.NET, что позволит вам беспрепятственно отправлять электронные письма из вашего приложения. Итак, давайте начнем и улучшим функциональность вашего приложения ASP.NET, включив возможности электронной почты с помощью Gmail SMTP.

Шаг 1. Включите менее безопасные приложения в Gmail

С 30 мая 2022 года Google больше не поддерживает использование сторонних приложений или устройств, которые предлагают вам войти в свою учетную запись Google, используя только ваше имя пользователя и пароль. Итак, мы должны использовать другое решение для нашего приложения. Для этого нам нужно сначала включить двухэтапную проверку для нашей учетной записи Gmail, а затем мы можем использовать функцию пароля приложения, чтобы решить эту проблему.

Итак, чтобы включить двухэтапную аутентификацию, нам необходимо:

  • Перейдите к нашей учетной записи Google — учетной записи, из которой вы будете отправлять электронные письма (https://myaccount.google.com/)
  • В меню слева мы должны выбрать Безопасность
  • Затем в разделе «Вход в Google» мы видим, что двухэтапная проверка отключена, поэтому мы должны нажать на нее.
  • Нажмите «Начать», введите свой пароль и подтвердите код, указав номер мобильного телефона.
  • Если все пойдет хорошо, вы должны увидеть опцию «Включить», поэтому просто нажмите на нее.

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

Итак, мы должны:

  • Нажмите здесь
  • Введите пароль
  • Щелкните меню «Выбрать приложение» и выберите параметр «Другое (пользовательское имя)».
  • Теперь все, что нам нужно сделать, это указать любое имя для нашего приложения и нажать кнопку «Создать».

Это создаст для нас новый пароль, который мы должны использовать в нашем файлеappsettings.jsonвместо нашего личного пароля.

Шаг 2

Добавьте необходимые зависимости В свой проект ASP.NET добавьте следующий пакет NuGet, чтобы управлять функцией отправки электронной почты:

  • Система.Net.Mail

Шаг 3

Настройка параметров SMTP В проекте ASP.NET откройте файл appsettings.json и добавьте следующие параметры конфигурации для SMTP-сервера:

"SmtpSettings": {
  "Host": "smtp.gmail.com",
  "Port": 587,
  "Username": "[email protected]",
  "Password": "your-password",
  "EnableSsl": true
}

Обязательно замените [email protected] своим адресом электронной почты Gmail, а your-password — паролем Gmail.

Шаг 4

Отправка электронной почты В коде ASP.NET вы можете использовать следующий фрагмент кода для отправки электронной почты с помощью Gmail SMTP:

using System;
using System.Net;
using System.Net.Mail;
using Microsoft.Extensions.Configuration;

public class EmailSender
{
    private readonly IConfiguration _configuration;

    public EmailSender(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    public void SendEmail(string toAddress, string subject, string body)
    {
        string smtpHost = _configuration["SmtpSettings:Host"];
        int smtpPort = _configuration.GetValue<int>("SmtpSettings:Port");
        string smtpUsername = _configuration["SmtpSettings:Username"];
        string smtpPassword = _configuration["SmtpSettings:Password"];
        bool enableSsl = _configuration.GetValue<bool>("SmtpSettings:EnableSsl");

        using (var smtpClient = new SmtpClient(smtpHost, smtpPort))
        {
            smtpClient.UseDefaultCredentials = false;
            smtpClient.Credentials = new NetworkCredential(smtpUsername, smtpPassword);
            smtpClient.EnableSsl = enableSsl;

            var mailMessage = new MailMessage();
            mailMessage.From = new MailAddress(smtpUsername);
            mailMessage.To.Add(toAddress);
            mailMessage.Subject = subject;
            mailMessage.Body = body;
            mailMessage.IsBodyHtml = true;

            try
            {
                smtpClient.Send(mailMessage);
                Console.WriteLine("Email sent successfully!");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed to send email. Error: " + ex.Message);
            }
        }
    }
}

Обязательно замените smtpUsername: «[email protected]» на свой адрес электронной почты Gmail, а toAddress: «[email protected]» на адрес электронной почты получателя.

Вот и все! С помощью этих шагов вы сможете настроить и использовать SMTP Gmail в своем приложении ASP.NET для отправки электронных писем.

В заключение, настройка Gmail SMTP в ASP.NET позволяет отправлять электронные письма из вашего приложения, используя вашу учетную запись Gmail. Выполнив шаги, упомянутые выше, включая включение доступа для менее безопасных приложений, добавление необходимых зависимостей, настройку параметров SMTP в файле appsettings.json и использование соответствующего кода для отправки электронных писем, вы можете легко интегрировать SMTP Gmail в свое приложение ASP.NET.

Использование Gmail SMTP предлагает удобный и надежный способ отправки электронной почты, используя знакомый интерфейс и инфраструктуру Gmail. Это позволяет вам использовать функции безопасности, предоставляемые Gmail, такие как шифрование через SSL/TLS. Однако важно отметить, что включение доступа для менее безопасных приложений может привести к некоторым рискам безопасности, поэтому рекомендуется принять соответствующие меры для защиты вашего приложения и учетной записи.

При правильной настройке SMTP Gmail в ASP.NET вы можете расширить функциональные возможности своего приложения, включив уведомления по электронной почте, взаимодействие с пользователем или любые другие функции, связанные с отправкой электронных писем.

👋 Мое портфолио
🚀 Мой канал на Youtube
💻 Github