ASP.NET MVC Mail Gönderme
Asp.Net MVC’de mail gönderme classı oluşturup nasıl mail gönderebileceğinizi anlatacağım.
Öncelikle bir MVC projesi oluşturuyoruz. Daha sonra bir adet Mail adında class oluşturuyoruz. Classın içi aşağıdaki şekilde olmalıdır.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
using System.Net;
using System.Web;
namespace MailGonder.Controllers
{
public class Mail
{
public string Gonder(string konu, string mesaj, string eposta)
{
try
{
MailMessage mail = new MailMessage();
SmtpClient smtp = new SmtpClient();
smtp.Credentials = new NetworkCredential("Mail adresiniz", "Mail Şifreniz"); // Gönderici bilgilerini giriyoruz
smtp.Port = 587; // Mail uzantınıza göre bu değişebilir
smtp.Host = "mail.furkanaktas.com"; // Gmail veya hotmail ise onların host bilgisini almanız gerekiyor
smtp.EnableSsl = false;
mail.IsBodyHtml = true;// HTML tagleri kullanarak mail gönderebilmek için aktif ediyoruz
mail.From = new MailAddress("Mail adresiniz"); // Gönderen mail adresini yazıyoruz
mail.To.Add(eposta); // Gönderilecek mail adresini ekliyoruz
mail.Subject = konu; // Mesaja konuyu ekliyoruz
mail.Body = mesaj; // Mesajın içeriğini ekliyoruz
smtp.Send(mail); // Mesajı gönderiyoruz
return "basarili";
}
catch (Exception)
{
return "basarisiz";
}
}
}
}
Daha sonra mail göndermek istediğimiz controllere gelip bu classtan bir nesne oluşturup parametreleri veriyoruz.
public ActionResult Index()
{
string konu = "Konu Test";
string mesaj = "Mesaj içeriği kısmıdır. <b>Bu kısım kalın olacaktır.</b>";
string eposta = "Gönderilecek adres";
Mail mail = new Mail();
mail.Gonder(konu,mesaj,eposta);
return View();
}
Mail gönderme işlemi başarı ile tamamlanıyor. Sonuç aşağıdaki gibi oluyor.
Furkan bey teşekkürler paylaşımınız için.
mail görünür ismi olarak mail adresi yerine Furkan AKTAŞ yazmak mümkün olur mu?
Merhaba Ali bey,
Aşağıdaki şekilde kullanırsanız olacaktır.
mail.From = new MailAddress(email.tex, “Furkan Aktaş” );
Teşekkürler Furkan bey,
mail.To.Add(eposta);
bu satır üzerinde eposta değişkeni olarak “mail1@xyz.com;mail2@xyz.com”
yazarak tek işlemde 2 adresi gönderim yapmak mümkün olur mu?
teşekkürler tekrar….
Mail.To.Add(e-posta);
Mail.To.Ads(eposta2);
Şeklinde tanımlayabilirsiniz.
Rica ederim. İyi çalışmalar.
smtp.Credentials = new NetworkCredential(“Mail adresiniz”, “Mail Şifreniz”); // Gönderici bilgilerini giriyoruz
Merhaba. Bu kısmı anlayamadım. Site üzreindeki iletişim formundan şirkete mesaj gönderecek kişilerin mail şifrelerini neden alıyoruz?
Merhabalar,
Methoda gelen parametredeki eposta formdan gelen kullanıcının epostasıdır. Burdaki mail adresi ve şifre kısmına, formdan gelen mailler hangi mail adresine gidecek ise o maili ve şifresini yazmalısınız.
Merhaba Furkan Bey. Öncelikle emeklerinizden dolayı size teşekkür ediyorum. Benim sorum ASP de geliştirdiğimiz bir sitenin ileri tarihli mail atmasını istiyorum. Bunu nasıl başarabilirim. Şimdiden teşekkür ediyorum. İyi çalışmalar.
Merhabalar, bunun için database tarafında bir email kuyruğu oluşturup daha sonrasında bu kuyruğu thread yardımı ile okuyarak istediğiniz tarihte maili yollayabilirsiniz.