/
renix
/
TravelGuide
Обзор
Документация
Войти
/
renix
/
TravelGuide
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
back/Services/EmailService.cs
89 строк
3 KB
artem777764
Красивые письма и почти хороший контролер ResetPassword
09 апр 2025, 13:00
09 апр 2025, 13:00
d846b0c
Код
Авторство
О чём код?
using MimeKit; using MailKit.Net.Smtp; using back.DTOs.EmailDTOs; namespace back.Services; public class EmailService { private string ourEmailAddress = "atikin123321123@yandex.ru"; private string ourEmailPassword = "oizkgqkepzahfynu"; public async Task SendEmailAsync(SendEmailDTO sendEmailDTO) { using MimeMessage emailMessage = new MimeMessage(); emailMessage.From.Add(new MailboxAddress("Your Travel Guide", ourEmailAddress)); emailMessage.To.Add(new MailboxAddress("", sendEmailDTO.EmailAddress)); emailMessage.Subject = sendEmailDTO.Title; emailMessage.Body = new TextPart(MimeKit.Text.TextFormat.Html) { Text = sendEmailDTO.Context }; using (var client = new SmtpClient()) { await client.ConnectAsync("smtp.yandex.ru", 465, true); await client.AuthenticateAsync(ourEmailAddress, ourEmailPassword); await client.SendAsync(emailMessage); await client.DisconnectAsync(true); } } public async Task SendPasswordResetEmailAsync(string emailAddress, string code) { string title = "Восстановление пароля YTG"; string context = $@" <html> <head> <meta charset='UTF-8'> <style> body {{ font-family: Arial, sans-serif; background-color: #f9f9f9; padding: 20px; }} .container {{ background-color: #ffffff; border: 1px solid #dddddd; border-radius: 5px; padding: 30px; max-width: 600px; margin: auto; text-align: center; }} .code {{ display: inline-block; font-size: 24px; font-weight: bold; color: #d9534f; padding: 10px 20px; background-color: #f7f7f7; border-radius: 5px; margin: 20px 0; }} </style> </head> <body> <div class='container'> <h2>Восстановление пароля</h2> <p>Вы запросили восстановление пароля. Используйте следующий код для восстановления доступа:</p> <div class='code'>{code}</div> <p>Если вы не инициировали восстановление пароля, проигнорируйте это письмо.</p> <p>С уважением,<br/>Your Travel Guide</p> </div> </body> </html>"; var sendEmailDTO = new SendEmailDTO { EmailAddress = emailAddress, Title = title, Context = context }; await SendEmailAsync(sendEmailDTO); } }