C# ile GMail üzerinden e-posta gönderme

Windows uygulamalarınız üzerinden e-posta gönderebilmek güzel bir özellik.

Uygulama içerisinden e-posta gönderme konusunda ilk akla gelen sorulardan bir tanesi, “GMail üzerinden e-posta gönderebilir miyim?” oluyor.

Bu yazımda, GMail üzerinden e-posta gönderebileceğimiz bir uygulama geliştireceğim.

Öncelikle kodumuzun using kısmına System.Net ve System.Net.Mail namespace’ini eklememiz gerekiyor.

.Net Framework, System.Net.Mail namespace‘i içerisinde çeşitli class‘lar aracılığı ile uygulamanız içerisinden kolaylıkla e-posta gönderilmesini mümkün kılıyor.

using System.Net.Mail; using System.Net;</pre> İlk yapmamız gereken, SmtpClient sınıfından bir örnek oluşturmak ve bazı özelliklerini ayarlamak.

SmtpClient sc = new SmtpClient();
sc.Port = 587;
sc.Host = "smtp.gmail.com";
sc.EnableSsl = true;

Port özelliği ile, Smtp sunucusuna erişeceğimiz port numarasını belirliyoruz

Host özelliği ile, GMail Smtp sunucusunun adresini belirliyoruz

EnableSsl özelliği ile, GMail Smtp sunucusuna bağlanacağımız protokolu belirliyoruz. Eğer true değer atarsak https, eğer false değer atarsak http protokolü kullanılır.

GMail e-posta adresimizi ve şifremizi, Credentials özelliğine NetworkCredential sınıfından bir örnek ile atamamız gerekiyor.

sc.Credentials = new NetworkCredential("eposta@gmail.com", "gmail_sifre");

SmtpClient örneği üzerinden gönderilecek posta, MailMessage tipinde olmalıdır. Bir sonraki adımda MailMessage sınıfından bir örnek oluşturuyoruz.

MailMessage mail = new MailMessage();

mail.From = new MailAddress("eposta@gmail.com", "Ekranda Görünecek İsim");

mail.To.Add("alici1@mail.com");
mail.To.Add("alici2@mail.com");

mail.CC.Add("alici3@mail.com");
mail.CC.Add("alici4@mail.com");

mail.Subject = "E-Posta Konusu";
mail.IsBodyHtml = true;
mail.Body = "E-Posta İçeriği";

mail.Attachments.Add(new Attachment(@"C:\Rapor.xlsx"));
mail.Attachments.Add(new Attachment(@"C:\Sonuc.pptx"));

Son olarak, SmtpClient sınıfının Send() method’unu kullanarak, oluşturduğumuz MailMessage örneğini gönderiyoruz.

sc.Send(mail);

Kodların toparlanmış hali;

using System;
using System.Net.Mail;
using System.Net;

class Program
{
    static void Main(string[] args)
    {
        SmtpClient sc = new SmtpClient();
        sc.Port = 587;
        sc.Host = "smtp.gmail.com";
        sc.EnableSsl = true;

        sc.Credentials = new NetworkCredential("eposta@gmail.com", "gmail_sifre");

        MailMessage mail = new MailMessage();

        mail.From = new MailAddress("eposta@gmail.com", "Ekranda Görünecek İsim");

        mail.To.Add("alici1@mail.com");
        mail.To.Add("alici2@mail.com");

        mail.CC.Add("alici3@mail.com");
        mail.CC.Add("alici4@mail.com");

        mail.Subject = "E-Posta Konusu"; mail.IsBodyHtml = true; mail.Body = "E-Posta İçeriği";

        mail.Attachments.Add(new Attachment(@"C:\Rapor.xlsx"));
        mail.Attachments.Add(new Attachment(@"C:\Sonuc.pptx"));

        sc.Send(mail);
    }
}


blog comments powered by Disqus

Engin Polat hakkında

Senior Software Engineer, @Microsoft

Ada ve Ege'nin babası ;)

Kategoriler

İstatistik

Makale Adedi: 484

Creative Commons Lisansı