C# ile Gmail den Mail Gönderin!


Merhaba Arkadaşlar,
Bu makalemde C# da gmail hesabımızı kullanarak nasıl mail atacağımı anlatmaya çalışacağım. Öncelikle Visual Studio da bir C# uygulaması yaratalım. Ben size herhangi bir form tasarlamadan manuel parametreler girerek mail gönderen bir fonksiyon göstereceğim. Siz bu fonksiyon için form tasarlayarak ve nesnelerin ek özelliklerini kullanarak bu uygulamaya daha da geliştirebilirsini. Aşağıda “SendMail” adında bir fonksiyon bulunmaktadır.

publicvoid SendMail()

        {

            MailMessage mail = newMailMessage(); // mail adında MailMessage nesnesi yaratıyoruz.

            mail.From = newMailAddress(“GmailHesabiniz@gmail.com”); //Mailin kimden gittiğini belirtiyoruz

            mail.To.Add(“kime@ttmail.com”); //Mailin kime gideceğini belirtiyoruz

            mail.Subject = “Deneme Mail Konusu”; //Mail konusu

            mail.Body = “Deneme Mail İiçeriği”; //Mailin içeriği

            SmtpClient sc = newSmtpClient(); //sc adında SmtpClient nesnesi yaratıyoruz.

            sc.Port = 587; //Gmail için geçerli Portu bildiriyoruz

            sc.Host = “smtp.gmail.com”; //Gmailin smtp host adresini belirttik

            sc.EnableSsl = true; //SSL’i etkinleştirdik.

            sc.Credentials = newNetworkCredential(“GmailHesabiniz”, “Şifreniz”); //Gmail hesap kontrolü için bilgilerimizi girdik

            sc.Send(mail); //Mailinizi gönderiyoruz.

        }

Fonksiyondaki her satır için açıklamayı yaptım. Ancak bu nesnelerin ek özelliklerini de açıklamak istiyorum.

Eğer gönderdiğimiz maillerde gönderen kısmında mail adresimizin değil de ismimizin yazmasını istiyorsak MailAddress nesnesine parametre olarak bunu belirmemiz gerekir. Aşağıda MailAddress nesnesinin alabileceği parametreler yer almaktadır.

MailAddress.MailAddress(string address,string displayName, Encoding displayNameEncoding)

Mailimizin içeriğine bir de dosya eklemek istersek aşağıdaki yapıyı kullanmalıyız.

mail.Attachments.Add(new Attachment(“C:/myText.txt”));

Böylece mailimize “myText.txt” dosyasını da eklemiş oluruz. Eğer her mail gönderdiğimizde ek dosya göndermeyeceksek bu ifadeyi if kontrolü ile koşula bağlı hale getirebiliriz. Mailimize ek özellikler de ekleyebiliriz bu özelliklerden bazıları aşağıda verilmiştir.

mail.SubjectEncoding = System.Text.Encoding.UTF8;

mail.BodyEncoding = System.Text.Encoding.UTF8;

mail.IsBodyHtml = false;

mail.Priority = MailPriority.High;

 Bir başka yazımızda görüşmek üzere, hoşçakalın…

C# ile Gmail den Mail Gönderin! ile Benzer Yazılar:

4 Nisan 2009 Saat : 6:51

“C# ile Gmail den Mail Gönderin!” için 9 Yorum

  1. şafak diyor ki:

    Teşekkkür ederim.
    Arkadaşım ben yapmayı denedim fakat olmadı.
    Bana çalışan açık kaynaklı bir örnek gönderirmisin.
    e-postam = mistersolonely@hotmail.com

  2. Ali diyor ki:

    Özkan arkadaşın hatasının aynısı bende alıyorum dediğiniz kütüphaneleri eklememe rağmen.Ne yapmam gerekiyor?

  3. Fuad diyor ki:

    Özkan Tekeci  hata almamak için “using System.Net”  ve “using System.Net.Mail”  kütüphanelerini eklemen lazım.

  4. mseker diyor ki:

    kullandığınız kodun tamamını (şifreniz haric) gönderebilir misiniz

  5. Özkan Tekeci diyor ki:

    denemediğim mail kodu kalmadı hepsinde de hata alıyorum bunda aldığım hata;
    Satır 57: sc.Credentials = new NetworkCredential(“mailadresim”, “*****”); //Gmail hesap kontrolü için bilgilerimizi girdik
    Satır 58:
    Satır 59: sc.Send(mail); //Mailinizi gönderiyoruz.
    Satır 60:
    Satır 61: }

    Kaynak Dosya: o:\site\ozsoymuhendislik.com.tr\Default8.aspx.cs Satır: 59

    Yığın İzleme:

    [FormatException: Posta üstbilgisinde geçersiz karakter bulundu.]
    System.Net.BufferBuilder.Append(String value, Int32 offset, Int32 count) +1103406
    System.Net.Mail.EHelloCommand.PrepareCommand(SmtpConnection conn, String domain) +81
    System.Net.Mail.EHelloCommand.Send(SmtpConnection conn, String domain) +12
    System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port) +672
    System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port) +159
    System.Net.Mail.SmtpClient.GetConnection() +35
    System.Net.Mail.SmtpClient.Send(MailMessage message) +1213

    [SmtpException: Posta gönderme hatası.]
    System.Net.Mail.SmtpClient.Send(MailMessage message) +1531
    Default8.SendMail() in o:\site\ozsoymuhendislik.com.tr\Default8.aspx.cs:59
    Default8.Button1_Click(Object sender, EventArgs e) in o:\site\ozsoymuhendislik.com.tr\Default8.aspx.cs:24
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

  6. msk diyor ki:

    Güzel Bilgi Murat. eline sağlık

  7. yvzklc diyor ki:

    Benim aradığım tam bu değil aslında ben mail bilgilerini giremeden bir mail atmak istiyorum ve ayrıca gmail olmasa daha iyi olur..
    Ama güzel çalışma teşkkürler…

  8. mseker diyor ki:

    Ben denedim junk maile düşmüyor :) Yine de yaptığın yorum için teşekkür ederim. Zaten bu makalemde sadece mail göndermek için gerekli temel bilgileri verdim. MailMessage nesnesinin burada belirtmediğim daha pek çok özelliği mevcut. Bu makaleden yola çıkarak kendi outlook’unuzu bile yazabilirsiniz :D

  9. MrtYLMZ diyor ki:

    mailin header parametreleri gönderilmediği için gönderilen mailler junk klasörüne düşer.
    header parametreleriyle birlikte daha efektif olabilir.
    güzel makale…

C# ile Gmail den Mail Gönderin! Yazısı için Yorum Yapabilirsiniz

 Son Yazılar FriendFeed