/
va1eriy
/
taskwards
Обзор
Документация
Войти
/
va1eriy
/
taskwards
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Taskwards.Api/Infrastructure/Email/EmailService.cs
52 строки
2 KB
Valeriy Kokorev
feat: implement password reset functionality
08 фев 2026, 19:09
08 фев 2026, 19:09
7ee9481
Код
Авторство
О чём код?
using System.Net; using System.Net.Mail; using Microsoft.Extensions.Options; namespace Taskwards.Api.Infrastructure.Email; /// <summary> /// Реализация сервиса отправки email через SMTP /// </summary> public class EmailService : IEmailService { private readonly EmailSettings _emailSettings; private readonly ILogger<EmailService> _logger; public EmailService(IOptions<EmailSettings> emailSettings, ILogger<EmailService> logger) { _emailSettings = emailSettings.Value; _logger = logger; } /// <inheritdoc /> public async Task SendEmailAsync(string to, string subject, string body, CancellationToken cancellationToken = default) { try { var mailMessage = new MailMessage { From = new MailAddress(_emailSettings.FromEmail, _emailSettings.FromName), Subject = subject, Body = body, IsBodyHtml = true }; mailMessage.To.Add(to); using var smtpClient = new SmtpClient(_emailSettings.SmtpServer, _emailSettings.SmtpPort) { EnableSsl = _emailSettings.UseSsl, Credentials = new NetworkCredential(_emailSettings.SmtpUsername, _emailSettings.SmtpPassword) }; await smtpClient.SendMailAsync(mailMessage, cancellationToken); _logger.LogInformation("Email successfully sent to {To} with subject: {Subject}", to, subject); } catch (Exception ex) { _logger.LogError(ex, "Failed to send email to {To} with subject: {Subject}", to, subject); throw; } } }