Connect with us

Yazılım

C# ile Mail Gönderme – Gmail Mail Gönderme

C# Mail Gönderme

C# ile Mail Gönderme

Günlük hayatımızda mail göndermek ve almak önemli bir yere sahiptir. Haliyle aktif bir şekilde kullanım sağlanması ihtiyacını karşılamak için C# ile mail gönderme sisteminin de önemi büyüktür.

C# üzerinden mail gönderme programının tasarlanabilmesi için öncelikle mail gönderime ve alma protokollerinin kısaca mail sisteminin işleyişini bilmek gerekmektedir. C# ile Mail gönderme sistemi için öncelikle bunu açıklayalım.

Mail sistemi kısaca Mail alma protokolü (POP3, IMAP) Mail Gönderme Protokolünden (SMTP) oluşmaktadır.

Mail Alma Protokolü herhangi bir e posta hesabına gelen mailleri görüntüleyebilmek amacıyla kullanılan protokol olarak bilinmektedir. Pop3 olarak bilinen hizmet servisi en kısa özetiyle başka kullanıcılar tarafından bize gönderilen maillerin kaydedilme ve saklanma işlemlerini yapan ve aynı zamanda istenildiği takdirde bir program aracılığıyla kullanıcıya ulaştırılmasını sağlayan bir mail alma protokolüdür. IMAP sistemi de aynı Pop3 sisteminin özelliklerini barındıran bir mail alma protokolü olmakla birlikte bunun yanı sıra önemli bir özelliği de mail sisteminin birden fazla yerden aktif olarak kullanılabilmesini sağlaması ve birden fazla yere destek verebilmesidir. Bu özelliği sayesinde örneğin kullanıcı hem cep telefonundan hem bilgisayardan aynı anda maillerine ulaşabilmektedir.

Mail Alma Protokolü ise SMTP olarak bilinen e posta ile sunucu ve istemci arasındaki elektronik mail ilişkisini kuran ve aradaki ilişkiyi sağlayan protokol olarak bilinmektedir. SMTP üç modelli bir işlem türü kullanarak çalışan bir sistemdir. Öncelikle Outlook veya Webmail gibi e posta istemcisi üzerinden gönderilmekte olan e posta sunucusuna mail mesajı göndermek için SMTP protokolü kullanılmaktadır. Devamında ise gönderen mail sunucusu maili alıcı mail sunucusuna göndermek üzere geçiş yapma hizmeti olarak da SMPT’den faydalanmaktadır. Sonuncu işlem olarak ise mail alıcısına ait sunucu kendisine gelen maili herhangi bir mail alma protokolü aracılığıyla indirebilmek ve görüntüleyebilmek için mail istemcisi kullanmaktadır.

C# ile Mail Gönderme Nasıl Yapılır?

C# ile Mail Gönderme Nasıl Yapılır. C#; Microsoft Firması tarafından  “.NET” sistemi için geliştirilmiş olan çağımızda oldukça kullanışlı programlama dillerinden bir tanesidir. C# Programlama dili ile ilgili detaylı bilgi için tıklayınız.

C# ile Mail Gönderme programının tasarlanabilmesi için öncelikle bir kod derleyicisine ihtiyacımız bulunmaktadır. Kod derleyicisi olarak Microsoft tarafından geliştirilmiş olan ve Ülkemizde en yaygın şekilde kullanılan program Visual Studio programıdır. Sürüm olarak ise son sürümü 2019 versiyonu bulunmaktadır.

C# ile Mail Gönderme program tasarımının Visual Studio ile yapılabilmesi için öncelikle Windows Form aracının mail sistemine uygun şekilde tasarlanması uygun olacaktır.

C# ile Mail Gönderme Program tasarımı için Windows Form aracımıza 4 adet label, 3 adet textbox, 1 adet richtexbox ve son olarak 1 adette buton ekliyoruz. C# Mail Gönderme Programının görüntüsü aşağıdaki şekilde olacaktır.

C# Mail Gönderme

Kod ekranında ise mail göndermek için kodumuzun using kısmına System.Net ve System.Net.Mail eklentilerini eklememiz gerekmektedir.

Kod ekranında Using Kütüphanelerinin olduğu namespace eklenti görüntü aşağıdaki gibi olacaktır.

System.Net kullanarak;
System.Net.Mail kullanarak;

İlgili eklentilerimizi ekledikten sonra mail gönderme sınıfını oluşturmamız gerekmektedir. Bu belirleme için kod ekranımız aşağıdaki şekilde düzenlenecektir.

SmtpClient ClientmailGönderme = yeni SmtpClient ();
ClientmailGönderme.Port = 587;
ClientmailGönderme.Host = “smtp.gmail.com”;
ClientmailGönderme.EnableSsl = true;
ClientmailGönderme.Credentials = yeni NetworkCredential (“[email protected]”, “mail_sifre”);

SmtpClient sınıfımızı oluşturduktan sonra gönderilmesi gereken posta sınıfı MailMessage şeklinde olması gereklidir. Bunun için bu sınıfı da oluşturacağız. Mail sınıfımız içerisinde oluşturduğumuz kodları formumuzda bulunan araçlara yazacağız.

private void gonder_Click(object sender, EventArgs e)
{
     MailMessage gönderilecekmailbilgileri = new MailMessage();
     //Textbox2.Text e yazılan değer. Mail gönderen kişinin mail adresi
     //textbox1.text ise Mail Gönderen Kişinin adı ve soyadını içerir.
     gönderilecekmailbilgileri.From = new MailAddress(textBox2.Text.ToString(),
     textBox1.Text.ToString());
     //Burada kime mail gönderileceği yazmaktadır.
     gönderilecekmailbilgileri.To.Add(“[email protected]”);
     //Burada gönderilecek mail’in konusu girilmelidir. Konu kısmına
     gönderilecekmailbilgileri.Subject = textBox3.Text.ToString();
     gönderilecekmailbilgileri.IsBodyHtml = true;
     //Gönderilecek mail’in içeriği richtextbox1 e yazılan içerik
     gönderilecekmailbilgileri.Body = richTextBox1.Text.ToString();
     //Gönderilecek ek dosya bilgileri:
     gönderilecekmailbilgileri.Attachments.Add(new Attachment(textBox4.Text));      
}

Bunların devamında ise sonuç olarak SmtpClient sınıfının Send() yöntemini (method) kullanarak oluşturduğumuz mail sınıfı ile mailimi gönderiyoruz.

ClientmailGönderme.Send(gönderilecekmailbilgileri);

Böylelikle C# üzerinden Mail Gönderme sistemimizi tamamlamış oluyoruz. Artık Form üzerinden mailimizi yazarak gönderebiliriz. 

Yazılım alanındaki diğer makalelerimizi okumak için buraya tıklayınız.

C# ile Gmail Hesabı Üzerinden Mail Gönderme Nasıl Yapılır?

C# ile Mail Gönderme Program tasarımı için Windows Form aracımıza 4 adet label, 4 adet textbox, 1 adet richtexbox ve son olarak 2 adette buton ekliyoruz. C# Mail Gönderme Programının görüntüsü aşağıdaki şekilde olacaktır.

C# Gmail Gönderme

Kod editöründe Using Kütüphanelerinin olduğu namespace eklenti görüntüsüne aşağıdaki gibi System.Net; ve System.Net.Mail; eklentilerinin eklenmesi gerekli olup, görüntüsü aşağıdaki gibi olacaktır.

System.Net kullanarak;
System.Net.Mail kullanarak;

 

İlgili kısımlar namespaceye eklendikten sonra yine bir mail gönderme sınıfı oluşturmamız gereklidir. Mail sınıfını aşağıdaki gibi gönder butonunun click olayının üst kısmına kodlayabiliriz.

     SmtpClient ClientGmailGönderme = yeni SmtpClient ();
     ClientGmailGönderme.Port = 587;
     ClientGmailGönderme.Host = “smtp.gmail.com”;
     ClientGmailGönderme.EnableSsl = true;
     ClientGmailGönderme.Credentials = yeni NetworkCredential (“[email protected]”, “gmail_sifre”);

Yine normal mail sistemi üzerinden anlattığımız şekilde gönderilmesi gereken posta sınıfı MailMessage şeklinde olması gereklidir. MailMessage sınıfının da oluşturulması gereklidir. Mail sınıfımız içerisinde oluşturduğumuz kodları formumuzda bulunan araçlara yazacağız.

private void gonder_Click(object sender, EventArgs e)
{     
     MailMessage gönderilecekmailbilgileri = new MailMessage();
     //Textbox2.Text e yazılan değer. Mail gönderen kişinin mail adresi
     //textbox1.text ise Mail Gönderen Kişinin adı ve soyadını içerir.
     gönderilecekmailbilgileri.From = new MailAddress(textBox2.Text.ToString(),
     textBox1.Text.ToString());
     //Burada kime mail gönderileceği yazmaktadır.
     gönderilecekmailbilgileri.To.Add(“[email protected]”);
     //Burada gönderilecek mail’in konusu girilmelidir. Konu kısmına
     gönderilecekmailbilgileri.Subject = textBox3.Text.ToString();
     gönderilecekmailbilgileri.IsBodyHtml = true;
     //Gönderilecek mail’in içeriği richtextbox1 e yazılan içerik
     gönderilecekmailbilgileri.Body = richTextBox1.Text.ToString();
     //Gönderilecek ek dosya bilgileri:
     gönderilecekmailbilgileri.Attachments.Add(new Attachment(textBox4.Text));      
}

Tüm kodların devamında ise SmtpClient sınıfının Send() yöntemini (method) kullanarak oluşturduğumuz mail sınıfı ile mailimi gönderiyoruz.

ClientGmailGönderme.Send(gönderilecekmailbilgileri);

Gmail Ek Dosya Ekleme

Ayrıca ilgili maile ek yapılması için OpenFileDialog sınıfından Gözat isminde bir nesne türeterek OpenFileDialog Penceresinin açılmasını sağlıyoruz. Devamında ise if kontrol yapısı ile “gözat.ShowDialog()==DialogResult.OK” komut kontrolü sayesinde ekranın açılıp açılmadığını kontrol ediyoruz. Eğer açılmış ise seçilen nesnenin isminin textbox4.text’e aktarılmasını sağlayarak böylece kullanıcıya hangi dosyanın seçildiğinin ve dosya yolunun gösterilmesi sağlanmaktadır. Kod görüntüsü aşağıdaki şekildedir.

private void button1_Click (nesne göndericisi, EventArgs e)
{
     OpenFileDialog gözat = new OpenFileDialog ();
     if (gözat.ShowDialog () == DialogResult.OK)
     {
         textBox4.Text = gözat.FileName.ToString ();
     }
}

Böylece Gmail üzerinden C# Windows Form üzerinden Ek seçilmesi suretiyle mail gönderilmesi yazılımını tamamlamış olduk.

Click to comment

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kategoriler