Отправка 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 в контроллер и передать в форму, чтобы можно было заполнять на сайте свою почту и чтобы сообщения отправлялись на мою?


Ответы (0 шт):