Merhaba Teknoloji Haberleri – Teknoloji Rehberi ailesi, bugün sizlere c# mail gönderme hakkında merak edilenleri yanıtlayacağız. Detaylı bilgiler için yazımızın devamını okuyabilirsiniz.
[toc]
C# mail gönderme işlemleri sayesinde bir çok işimizi hızlı bir şekilde halledebiliriz. C Sharp Mail Gönderme olarak da bilinen bu işlemler, tüm projelerde kolaylık sağlamaktadır. Örneğin şirketler satın alma işlemi sonrası kişilere mail göndermek isteyebilir. Bu durumda otomatik mailler gitmesini sağlayabilirsiniz. C# mail gönderme ile ilgili detayları yazımızın devamında bulabilirsiniz.
Bu tarz küçük dokunuşlar şirket olarak daha profesyonel olmanızı sağlayacaktır. Ayrıca şirket yöneticilerine istedikleri raporlar mail yoluyla otomatik olarak gönderilebilmektedir. C# otomatik mail gönderme, görüldüğü üzere oldukça faydalı olan bir sistemdir.
C# İle Mail Gönderme Nasıl Yapılır?
Elbette ki c# ile mail gönderme kodlar sayesinde yapılmaktadır. Aşağıda mail gönderme kodları yer almaktadır. Bu mail gönderme işlemi POP3 üzerinden gönderilen mail işlemidir. POP3 host numarası ve Port numarasını çalıştığınız şirketten almanız gerekecektir. Eğer gmail, hotmail hesaplarınız varsa bu bilgilere kolayca ulaşabilirsiniz.
Uyarı : C# gmail mail gönderme işlemi yapabilmeniz için mail göndereceğiniz hesabın açık olması gerekmektedir. Hesabınızı açıkken https://myaccount.google.com/lesssecureapps?pli=1 adrese gidip daha az güvenli uygulamalara izin ver kısmını AÇIK olarak işaretlemeniz gerekecektir. Bu işlemi yapmadığınızda istediğiniz mailler gönderilmeyecektir. C# toplu mail gönderme işlemleri sayesinde bir anda birçok kişiye ulaşma fırsatı da bulabileceksiniz.
İlginizi Çekebilir: Arduino Değişkenler |
Aşağıda mail gönderme kodları bulunmaktadır.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail; // mail gönderme işlemleri için gereklidir.
using System.Text;
using System.Text.RegularExpressions; // regex komutunu kullanabilmemiz için gereklidir.
namespace DenemeProje.Metodlar
{
public static class SendMail
{
public static bool Send(string MailHesabi, string MailHesapSifresi, string MailUnvan, string MailAdresi, string MailKonu, string MailIcerik, string MailEkleri, string Pop3Host , int Pop3Port)
{
try
{
System.Net.NetworkCredential cred = new System.Net.NetworkCredential(MailHesabi, MailHesapSifresi);
// mail göndermek için oturum açtık
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); // yeni mail oluşturduk
mail.From = new System.Net.Mail.MailAddress(MailHesabi, MailUnvan); // maili gönderecek hesabı belirttik
mail.To.Add(MailAdresi); // mail gönderilecek adres
mail.Subject = MailKonu; // mailin konusu
mail.IsBodyHtml = true; // mail içeriği html olarak gönderilsin
mail.Body = MailIcerik; // mailin içeriği
mail.Attachments.Clear(); // mail eklerini temizledik
string[] sonuc1 = Regex.Split(MailEkleri, “/”);
// MailEkleri parametresinde mailie ekleyeceğimiz tüm dosyaları aralarına ” / ” koyarak birbilerine ekledik
foreach (string items in sonuc1)
{
if (items != “”)
{
mail.Attachments.Add(new Attachment(“\\Mail_Eklerinin_Yolu\\” + items));
// MailEkleri parametresinden gelen veriyi ” / ” işareti sayesinde parçaladık.
// Kaydettiğimiz yerin yolunu ile birlikte dosyaları aldık ve maile ekledik.
}
}
// göndereceğimiz maili hazırladık.
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(Pop3Host, Pop3Port); // smtp servere bağlandık
smtp.UseDefaultCredentials = false; // varsayılan girişi kullanmadık
smtp.EnableSsl = true; // ssl kullanımına izin verdik
smtp.Credentials = cred; // server üzerindeki oturumumuzu yukarıda belirttiğimiz NetworkCredential üzerinden sağladık.
smtp.Send(mail); // mailimizi gönderdik.
// smtp yani Simple Mail Transfer Protocol üzerinden maili gönderiyoruz.
return true;
}
catch (Exception)
{
return false;
}
}
}
}
Eğer herhangi bir mail gönderme olmazsa metodumuz false olacaktır, gönderilirse de true değer gönderecektir. Bu sayede mailin durumunu anlayabiliriz. Bu kodları IMAP üzerinden de kullanabilirsiniz. Ancak bu kodlarda bazı değişiklikler olabilmektedir.
Eğer çok fazla değişiklik yapmanız gerekirse bu class içerisinde bir metod tanımlaması yapabilirsiniz. IMAP ve POP3 adlarını değiştirip kolay bir şekilde kullanabilirsiniz.
C# Smtp Mail Gönderme
C# smtp mail gönderme, kimlik doğrulama yoluyla gönderilen mailleri kapsamaktadır. Bu kimlik doğrulama yapılmadan gönderilen mailler spam kutusuna düşebilir. Bu durumda mesajınızın okunma oranı düşecektir. Smpt nesnesi şu şekilde oluşturulur.
1 | SmtpClient smtp = new SmtpClient(); |
Aşağıda örnek bir mail gönderme kod listesi bulunmaktadır.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// eposta adında bir mail nesnesi oluştur
MailMessage eposta = new MailMessage(); // Giden mailde görünecek e-posta adresi ve isim email adresi smtp ile aynı olmayınca hata veriyor. eposta.From = new MailAddress(“isim@outlook.com”,”KodDefteri.Net”); // Mail gönderilecek kişi(ler). Eğer birden fazla kişiye gidecekse, kişiler arasına virgül koyulacak eposta.To.Add(“isim1@mail1.com, isim2@mail2.com”); eposta.CC.Add(“ism3@mail3.com, isim4@mail4.com”); // Bilgi maili gönerilecek kişileri CC özelliğine ekle eposta.Bcc.Add(“isim5@mail5.com”); // Gizli alıcıları bcc özelliğine ekle eposta.Subject = “C Sharp Dersleri”; // Mail konusunu subject özelliğine ekle eposta.Body = “Bu bir email mesajıdır. Buraya mail içeriği gelecek”; // mesaj içeriğini body özelliğine ekle // ekleri dosya yolu ile birlikte bir string dizisinde tutuyoruz string[] ekler = {“c:\ek1.png”,”c:\ek2.pdf”,”c:\ek3.docx”} // Ardından ekleri foreach döngüsü ile Attachments özelliğine ekliyoruz foreach(string ekle in ekler){ eposta.Attachments.Add(new Attachment(@ekle)); // ekleri Attachments özelliğine ekle } } try{ // Hata kontrolü smtp.Send(eposta); // eposta nesnesini smtp.Send fonksiyonu ile gönder }catch(Exception ex){ // Hata oluştuysa oluşan hatayı ex değişkenine aktar MessageBox.Show(“Mail gönderilirkene bir hata ile karşılaşıldı: ” + ex.Message); // Hatayı kullanıcıya bildir } |