C# Mail Gönderme, C# ile mail gönderimi ile alakalı internette birçok kod var ama bazıları çok uzun yazılmış ve anlama konusunda karışıklığa sebep olabiliyor o yüzden en sade şekilde C# ile mail gönderiminin nasıl yapıldığını örnek kodlarla makale detayında göreceğiz.
C# Mail Gönderme
Gönderim yapılabilecek C# kodu şu şekilde olacak normalde SmtpClient’a username, password, host gibi bilgileri kod satırındanda girebilmekteyiz fakat web.config’de bu bilgiler için ayrılmış özel bir bölüm yer almaktadır bizde onu kullanacağız.
Using bloğuna eklemeniz gereken namespace ise şu şekildedir.
1 | using System.Net.Mail; |
C# Kodu
1 2 3 4 5 6 7 8 9 10 | var client = new SmtpClient(); var message = new MailMessage { Subject = "Konu", IsBodyHtml = true, Body = "Mesaj", From = new MailAddress("mail adres(kim tarafından gönderildi)"), }; message.To.Add(new MailAddress("mail adresi(kime gönderilecek)")); client.Send(message); |
Web.config
1 2 3 4 5 6 7 8 9 10 11 12 13 | <system.net> <mailSettings> <smtp> <network host="host adresi(smtp.gmail.com)" port="(varsayılan 587)" userName="kullanıcı adı" password="şifre" enableSsl="(ssl sertifakısı olup olmadığı belirtilmeli true-false)" /> </smtp> </mailSettings> </system.net> |
Eğer smtp bilgilerine kod tarafından erişmek isterseniz yapmanız gereken kodlama şu şekilde olmalıdır.
1 2 3 4 5 6 7 | SmtpSection section = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp"); var host = section.Network.Host; var port = section.Network.Port; var username = section.Network.UserName; var password = section.Network.Password; var ssl = section.Network.EnableSsl; var from = section.From; |
Eğer projeniz masaüstü yada konsol projesi ise Asp.Net platformu üzerinden örneği alınan üstteki ConfigutionManager ve SmtpSection kısımlarını silip host, port, username gibi değerleri için kendi çözümünüzü kullanabilirsiniz. Örnek olarak veritabanından aldığınızı düşünürsek bu ayarları veritabanından alınan bu değerleri kullanarak platformunuza uygun hale getirmiş olursunuz.
Üstteki kod satırlarını biraz anlatmak gerekirse ilk satırda Web.config dosyası içerisinde <system.net>
etiketi altında yer alan <mailSettings>
adlı etiketin bir altında yer alan <smtp>
xml elementinin SmtpSection adlı C# class’ına cast edilmesi için ConfigurationManager nesnesinin statik üyesi olan GetSection metodunu kullandık böylelikle smtp etiketinde tanımlı olan attribute değerlerine karşılık gelen aynı property isimleri ile kolayca değerlere erişebiliyorum.
📚 Diğer C# Makaleleri
- C# Switch Case Yapısı Kullanımı
- C# Operatör Aşırı Yükleme(Operator Overloading)
- C# Null Coalescing (??) Operatörü
- C# İle Generic Sınıflar Oluşturma ve Kurallar Belirleme
📚 Kaynaklar
✍ Lütfen olumlu-olumsuz tüm görüşlerinizi bana yorum yada mail yolu ile iletmeyi ihmal etmeyin.
🔗 Sosyal medya kanallarından makaleyi paylaşarak destek olursanız çok sevinirim.
👋 Bir sonraki makalede görüşmek dileğiyle.
using yönergesini söylermisin
Makale güncellenmiştir kullanabileceğiniz using yönergesi eklenmiştir.