ASP.Net MVC ile İletişim Formu Üzerinden Posta Gönderme

Sefer Kayar
26 Haziran 2019 Çarşamba
Kategori: ASP.Net

İletişim sayfalarında kullanılan posta gönderme formu ile, kullanıcının yazdıklarının ASP.net MVC ile e-posta olarak gönderilmesi için controller tarafında aşağıdaki ayarlar yapılmalıdır.

Controller'ın posta gönderme fonksiyonunda bulunan veri türü ve sınıfları anlayabilmesi için aşağıdaki kütüphaneleri controleller içine dahil etmek gerekir.

using System.Net.Mail;
using System.Net;

İletişim formu aşağıdaki gibi olsun.

<form action="/home/sendemail" method="post" accept-charset="utf-8" class="contact-form">
            <input type="text" name="name" id="contact-name" placeholder="Adınız soyadınız" class="form-control input-lg">
            <input type="email" name="email" id="contact-email" placeholder="E-posta adresiniz" class="form-control input-lg">
            <input type="text" name="subject" id="contact-email" placeholder="Mesajınızın Konusu" class="form-control input-lg">
            <textarea rows="10" name="message" id="contact-body" placeholder="Mesajınız..." class="form-control input-lg"></textarea>
            <button type="submit" class="btn btn-lg btn-contact">Gönder</button>
 </form>

Controller üzerindeki kod aşağıdaki gibidir.

//Email Send Action

        [HttpPost]
        public ActionResult SendEmail(string name, string email, string subject, string message)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var senderEmail = new MailAddress("Gönderici E-posta Adresi", "Gönderici İsmi");
                    var receiverEmail = new MailAddress("Alıcı E-Posta Adresi", "Alıcı İsmi");
                    var password = "Parola";

                    var smtp = new SmtpClient
                    {
                        Host = "SMTP Sunucu Adresi",
                        Port = 587,
                        EnableSsl = false,
                        DeliveryMethod = SmtpDeliveryMethod.Network,
                        UseDefaultCredentials = false,
                        Credentials = new NetworkCredential(senderEmail.Address, password)
                    };
                    using (MailMessage mail = new MailMessage(senderEmail, receiverEmail)
                    {
                        From = senderEmail,
                        Subject = subject,
                        Body = "<p>" + message + "</p>" + "<p>" + name + "</p>" + "<p>" + email + "</p>",
                        IsBodyHtml = true
                })
                    {
                        smtp.Send(mail);
                    }
                    ViewBag.Success = "Mesajınız başarıyla gönderildi.";
                    return View("Contact");
                }
            }
            catch (Exception)
            {
                ViewBag.Error = "Mesajınız gönderilemedi. Lütfen tekrar deneyiniz.";
            }
            return View("Contact");
        }
    }
}

 


144 Defa Okundu