Отправка Email с формы сайта
Кнопка которая отправляет на форму заполнения имени и почты email
<div class="section section__guest section_padding section_center" id="guest">
<div id="Invitation" class="section-body">
<div class="box">
<h2>
<span>
@NewlyWeds.NameBride И @NewlyWeds.NameGroom
</span>
</h2>
</div>
<p class="text">Приглашаем вас на нашу свадьбу! Мы будем очень рады, если вы проведете вместе с нами этот особенный день.</p>
<p class="accept-note">Пожалуйста, подтвердите или отклоните участие.</p>
<div class="btn_wrapper">
<div class="btn-primary">
<form>
<button class="btn-primary" type="submit" asp-controller="Email" asp-action="SendEmail">Подтвердить</button>
</form>
</div>
<div class="btn-default">
<form>
<button class="btn-default" type="submit" asp-controller="Form" asp-action="NotCome">Отклонить</button>
</form>
</div>
</div>
</div>
</div>
Модель заполнения формы
namespace Example1.Models
{
public class Email
{
[Required(ErrorMessage = "Введите количество персон")]
[Display(Name = "Подтвердите количество персон")]
public string? Person { get; set; }
[Display(Name = "Введите E-mail")]
public string? FromEmail { get; set; }
public string? ToEmail { get; set; }
[Display(Name = "Напишите сообщение молодоженам (не обязательно)")]
public string? Body { get; set; }
}
}
Контроллер , который принимает значения из сервиса EmailService
namespace Example1.Controllers
{
public class EmailController : Controller
{
public ActionResult SendEmail(string fromEmail, string toEmail, string subject, string body)
{
EmailService emailService = new();
emailService.SendEmail(toEmail, fromEmail, subject, body);
return View(emailService);
}
}
}
EmailService
namespace Example1.Services
{
public class EmailService
{
public void SendEmail(string fromEmail, string toEmail, string subject, string body)
{
MimeMessage message = new();
message.From.Add(new MailboxAddress("Администрация сайта", "")); //отправитель сообщения
message.To.Add(new MailboxAddress("", fromEmail)); //адресат сообщения
message.Subject = subject; //тема сообщения
message.Body = new TextPart("Plain")
{
Text = body
};
using var client = new SmtpClient();
client.Connect("smtp.mail.ru", 465, true);
client.Authenticate("", ""); //логин-пароль от аккаунта
client.Send(message);
client.Disconnect(true);
}
}
}
Как подставить данные из EmailService в контроллер и передать в форму, чтобы можно было заполнять на сайте свою почту и чтобы сообщения отправлялись на мою?