İçeriğe geç

C# Asp.Net ve Core İle E-Mail Gönderme

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… 🙂

4.9 9 votes
Article Rating
Tarih:AnasayfaAsp.NetAsp.Net - C#Çerez Bilgiler
Subscribe
Bildir
guest
9 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments
Ahmet Tunahan
Ahmet Tunahan
3 yıl önce

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 🙂 )

Sümeyye
Sümeyye
2 yıl önce

Çok teşekkür ederim emeğinize sağlık

Enes
Enes
1 yıl önce

Selam, bunu index.cshtml içine mi yazacağız? Tam anlayamadım.

Tuncay USLU
Tuncay USLU
1 yıl önce

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.

Ekre Güneş
6 ay önce
Reply to  Tuncay USLU

Tam anlayamadım açıklarmısınız

9
0
Would love your thoughts, please comment.x