Merhaba Arkadaşlar. Uzun zamandır hiç paylaşım yapmıyordum. Tabi bu arada kodlamalara devam ediyoruz. Hayatın bir gerçeği. 🙂
Az önce belki hayatımda yüzlerce kez kullandığım bir kodu tekrar tekrar yazmak zorunda kaldım. Bu da haliyle bende “neden ben siteme bu kodu hazırlayıp koymadım ki” hissiyatını uyandırdı istemsizce. Bu yüzden de hemen kodu hazırlayıp, açıklamaları ile birlikte siteye atmak istedim.
İşte bu paylaşım tamamen böyle bir durumun ürünü. Umarım daha sonralarında size çok çok daha yararlı gelecek konuları da ivedilikle siteme ekliyor olurum. Ama tabii ki bunu yapabilmem için sizlerin okuduğunuz yazıların, makalelerin altına yorum bırakmanız da oldukça teşvik edici olacaktır.
“Lütfen kanalıma abone olmayı ve yorum yazmayı unutmayın” diyen Youtuberlar gibi konuşmak istemem ama daha çok makalenin ve daha da önemlisi daha daha yararlı makalelerin gelmesi için lütfen yorumlarınızı esirgemeyin. 🙂
Şimdi kodumuza geçelim. Öncelikle şunu belirtmek isterim ki; Kesinlikle .net ile .net core arasında bu kodun kullanımında bir farklılık söz konusu değil. Zaten using kısmına sadece aşağıdaki kütüphaneleri çağırmanız gerekiyor. Ki bu kütüphaneler de artık net 1.2’de bile SDK’ları oluşturulmuş olan kütüphaneler. Bu yüzden Visual Studio platformundaki her framework ve core versiyonunda aşağıdaki kod hatasız bir şekilde çalışacaktır.
using System;
using System.Net;
using System.Net.Mail;
Şimdi gelelim kodumuza. Açıklamaları her satırda yaptığım için tekrar tekrar açıklama gereği duymadım.
Ancak lütfen aklınıza takılan bir yer olur ise yorum kısmından sormayı ihmal etmeyin. En kısa sürede dönüş yapmaya çalışacağımdan emin olabilirsiniz.
static void Main(string[] args)
{
MailMessage msg = new MailMessage(); //Mesaj gövdesini tanımlıyoruz...
msg.Subject = "Görüntülenecek mail KONU'su";
msg.From = new MailAddress("[email protected]", "Gönderende görünecek isim");
msg.To.Add(new MailAddress("[email protected]", "Alıcıda görünecek isim"));
//Mesaj içeriğinde HTML karakterler yer alıyor ise aşağıdaki alan TRUE olarak gönderilmeli ki HTML olarak yorumlansın. Yoksa düz yazı olarak gönderilir...
msg.IsBodyHtml = true;
msg.Body = "Tüm mesaj içeriğini<br />Buraya HTML olarak yazabilirsiniz...";
//Mesaj önceliği (BELİRTMEK ZORUNLU DEĞİL!)
msg.Priority = MailPriority.High;
//SMTP/Gönderici bilgilerinin yer aldığı erişim/doğrulama bilgileri
SmtpClient smtp = new SmtpClient("smtp.siteadi.com", 587); //Bu alanda gönderim yapacak hizmetin smtp adresini ve size verilen portu girmelisiniz.
NetworkCredential AccountInfo = new NetworkCredential("[email protected]", "e-posta şifresi");
smtp.UseDefaultCredentials = false; //Standart doğrulama kullanılsın mı? -> Yalnızca gönderici özellikle istiyor ise TRUE işaretlenir.
smtp.Credentials = AccountInfo;
smtp.EnableSsl = false; //SSL kullanılarak mı gönderilsin...
try
{
smtp.Send(msg);
Console.WriteLine("E-Posta başarıyla gönderildi.");
}
catch (Exception ex)
{
Console.WriteLine(string.Format("Gönderim Hatası: {0}", ex.Message));
}
Console.ReadKey();
}
İki sınıfı ayrı ayrı ele alalım isterseniz. Birincisi;
1. MailMessage
Bu alanda mailimizin gövdesini ve alıcı, gönderici, konu gibi alanları belirtiyoruz.
2. SmtpClient
Bu alanda da göndereceğimiz e-posta’nın sunucu tarafından doğrulanması için gereken Authentication (erişim) bilgilerini oluşturuyor ve tabii ki nihayetinde gönderim işlemini yapıyoruz.
Sorularınız olur ise lütfen sormaktan çekinmeyin.
Herkese iyi çalışmalar… 🙂
Yazılarınızın çoğunu okudum gayet açıklayıcı anlaşılır kısa ve öz yazılar.
Teşekkür ediyorum. (Makale yazmayı sakın bırakmayın 🙂 )
Elimden geldiğince yazmaya çalışıyorum ve çalışacağım. Çok teşekkürler yorumunuz için. 🙂
Çok teşekkür ederim emeğinize sağlık
Rica ederim. Faydası olduysa ne mutlu.
Selam, bunu index.cshtml içine mi yazacağız? Tam anlayamadım.
Bu bir c# metodu. Yani ayrı bir sınıf olarak da yazabilirsiniz, code behind kısmında kullanmanızı tavsiye ederim.
Yani bir butona tıklandığında butonun gideceği action metoduna da yazıp kullanabilirsiniz.
güvenli uygulamalara izin ver kaldırılmış bunun yerine uygulama şifresi kısmından şifre oluşturarak, bu şifre ile local üzerinden gmail ile mail atabilirsiniz.
Ek bilgilendirme için teşekkürler. 🙂
Tam anlayamadım açıklarmısınız