Документация / Настройка SMTP - ASP.NET

Настройка SMTP - ASP.NET Core (.NET)

Можно получить на странице управления токенами. В целях безопасности - токен можно увидеть только один раз, при создание.

Отредактируйте appsettings.json:

{

  "EmailSettings": {

    "SmtpServer": "smtp.fmailer.ru",

    "SmtpPort": 8025,

    "SmtpUsername": "your_username",

    "SmtpPassword": "your_password",

    "EnableSsl": false,

    "SenderEmail": "your_from_email_address",

    "SenderName": "Your Name"

  }

}

В вашем сервисе:

// Add NuGet package: Microsoft.Extensions.Options and MailKit

using MailKit.Net.Smtp;

using Microsoft.Extensions.Options;

using MimeKit;

public class EmailSettings

{

    public string SmtpServer { get; set; }

    public int SmtpPort { get; set; }

    public string SmtpUsername { get; set; }

    public string SmtpPassword { get; set; }

    public bool EnableSsl { get; set; }

    public string SenderEmail { get; set; }

    public string SenderName { get; set; }

}

public class EmailService

{

    private readonly EmailSettings _emailSettings;

    public EmailService(IOptions

    {

        _emailSettings = emailSettings.Value;

    }

    public void SendEmail(string to, string subject, string body)

    {

        var message = new MimeMessage();

        message.From.Add(new MailboxAddress(_emailSettings.SenderName, _emailSettings.SenderEmail));

        message.To.Add(new MailboxAddress("", to));

        message.Subject = subject;

        var bodyBuilder = new BodyBuilder

        {

            HtmlBody = body

        };

        message.Body = bodyBuilder.ToMessageBody();

        using (var client = new SmtpClient())

        {

            client.ServerCertificateValidationCallback = (s, c, h, e) => true;

            client.Connect(_emailSettings.SmtpServer, _emailSettings.SmtpPort, false);

            client.Authenticate(_emailSettings.SmtpUsername, _emailSettings.SmtpPassword);

            client.Send(message);

            client.Disconnect(true);

        }

    }

}

Не забудьте зарегистрировать ваш сервис в Program.cs или Startup.cs:

builder.Services.Configure<EmailSettings >(builder.Configuration.GetSection("EmailSettings"));</EmailSettings >

builder.Services.AddTransient<EmailService>();</EmailService>