asp-net-mail-gonderme

ASP.NET Mail Gönderme

ASP.NET te mail gönderme olayının nasıl oldugunu ele alacagız. Öncelikle şunu belirtmek isterim ki mail gönderme olayı web sitelerin olmazsa olmazlarındandır. Neden diyecek olursanız mesela online alışveriş yapılan bir sitede alışveriş yaptınız ürünün bilgilerini ve ürün kodunu yollamak için kullanılır , siteye giriş yapan kullanıcın adı veya şifreni unuttugunda onay kodu göndermede, sitenizde bulunan iletişim formununu doldurarak size mail yollanması işlemi, online sitelerde yapılan indirmleri mesaj olarak yollanmasını istenmesi, online alışveriş sitesinden yapılan alışverişin başka şehirde veya ülkede ise hangi kargo şirketiyle yollandığı ve kaç günde size ulaşacağı bilgisinin mesaj ile yollanması vb. gibi örnekleri çogaltabiliriz . İşte bu gereksinimlerden dolayı Mail gönderme olayı çok önemlidir.

ASP.NET Mail Gönderme olayını yapmış olgumuz bir Web uygulamasında mesaj göndeme olayının dizayn ve kodlama işlemlerini yapalım.

Visual Studio da dizayn ve kodlama kısmına gecelim. İlk başta File>New>Project seceneğinden yeni proje acalım ve ASP.NET Empty Web Application secerek boş bir ASP.NET Web Uygulaması açıyoruz.

Projeye sag tık yaparak Add>New Item bölümünden Web Form ekliyoruz ben ismini PostaGonder.aspx yaptım. PostaGonder.aspx formunun dizayn bölümünü acarak ToolBox tan Lebal yanına TextBox ekleyelim ve bunu 4 satırdada aynı şelkilde yapalım bu işlemleri yaptıktan sonra en alta bir Button ekleyelim.

En üste bulunan Label1 elemanını secerek Properties kısmından Text özelligini Adı SoyAdı olarak degiştirelim ve yanındaki TextBox ı secerek Properties kısmından ID özelligini txbAdiSoyAdi olarak degiştirelim

İkinci sütunda bulunan Label2 elemanını secerek Properties kısmından Text özelligini Mail olarak degiştirelim ve yanında bulunan TextBox ı secerek Properties kısmından ID özelligini txbMail olarak degiştirelim.

Ücüncü sütünda bulunan Label3 elemanını secerek Properties kısmından Text özelligini Konu olarak degiştirelim ve yanında bulunan TextBox ı secerek Properties kısmından ID özelligini txbKonu olarak degiştirelim

Dördüncü sütünda bulunan Label4 elemanını secerek Properties kısmından Text özelligini Mesaj olarak degiştirelim ve yanında bulunan TextBox ı secerek Properties kısmından ID özelligini txbMesaj ve TextMode özelligini MultiLine yapalım.

Button elemanını secerek Text özelligini Mesaj Gönder, ID özelligini txbMesajGonder olarak degiştirelim bu işlemler bittikten sonra “View in Browser” veya F5 basıp çalıştırgımızda karşımıza aşagıdaki ekran gelecektir…

seo aspnet mail gonderme1 ASP.NET Mail Gönderme

Şimdi kodlama kısmına gecebiliriz Mesejı Gönder buttonu çift tıklayarak Click olayına yani Codebehind geliyoruz, geldikten sonra Using kısmına .Net kütüphanelerinden Using System.net; ve Using System.Net.mail; eklememiz gerekir. Çünkü ASP.NET oluşturulan Web Formlarında direk olarak mail gönderme işlemi kullanılamaz. Bunun için .Net kütüphanelerinden ekleme yapmamız gerekir ekledikten sonra kodlama işlemi aşagıdaki şekilde yapalım…

Maillerin güvenli bir şekilde gitmesini saglamak için Smtp degişkenini Credentials özelliginde belirtmemiz gerekiz. Credentials özelligi maili gönderebilmek için gönderen kişi hem mail adresini hemde şifresini dogru girip girmedigini kontrol ederek yanlış girilen bilgi sırasında mesajı göndermiyecektir.

Stmp Port özelligine bilgilerin hangi Portu kullanarak mailin gidecegini belirledik, Smtp Host özelligiyle mail server sunucu adını belirledik, Sonolarak ta Smtp Send gönder olayına oluştumuş olgumuz aPosta degişkenini atarak ASP.NET te Mail Gönderme işleminin kodlamasını tamamladık.

Ben burda Mail gönderme olayını try catch’e alarak mail gönderildi veya göndiremedi hata mesajı verdirdim . ASP.NET Web Uygulamarında hata mesaj kutusu JavaScript yardımıyla verdilmektedir. Yani Windows Formdaki gibi MessegaBox.Show metodu olmadıgı için devreye JavaScript girerek mesaj kutusu ekrana cıkartıyoruz.(Bilgisayarınızda Smtp server kurulu degilse Mail gönderme İşlemi yapılamıyacaktır)

Bir sonraki yazılarımda görüşmek üzere…

 

seo pin it button ASP.NET Mail Gönderme

Yorumlar

  • Neco Erkalan Cevapla

    hocam güzel yazı tebrikler işime yaradı desem yeridir. pekişöyle bir şeyi nasıl yaparım ad, soyad, e-posta, telefon, şehir, adres, mesaj şeklinde bir form sayfasını nasıl yaparım. Yani bu bilgiler girildikten sonra bana gelecek şekilde.

    • Aykut Ekinci Cevapla

      ASP.NET te CC özelligi yani gönderilecek Mailin başka Maile bilgi gönderilme işlemidir. Kodlara ek olarak aşagıda yazmış oldugum kodu eklememiz yeterlidir
      ePosta.CC.Add(“bilgi gidecek kişinin Mail adresini bir textbox ekleyerek ordan CC özelline atarız bu sayede bilgi gönderilmesini saglamış oluruz”);

      • Neco Erkalan Cevapla

        hocam öncelikle hızlı cevabınız için teşekkürler . mevcut formda bir sürü textboxlar var bu textboxlardan veriyi alıp bana mail gelmesini istiyorum bunu nasıl yapabilirim?

        • Aykut Ekinci

          Mevcut Mail gönderme kodlamsın icine 2. bir e_posta.to.Add(“direk mailini buraya yazarsın”); ekleyerek Mail senin adresede gelmiş olur.

  • ali yıldırım Cevapla

    Security Exception

    Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application’s trust level in the configuration file.

    Exception Details: System.Security.SecurityException: Request for the permission of type ‘System.Net.Mail.SmtpPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′ failed.

    Source Error:

    Line 137: //gönderilecek olan port
    Line 138: smp.EnableSsl = false;
    Line 139: smp.Port = 587;
    Line 140: //nerden gitsin
    Line 141: smp.Host = “smtp.gmail.com”;

    sürekli olrak 139 satırda hata veriyor.
    Not:hata local host değil web ortamına aktarınca oluyor. Yardımınız için teşekkürler

    • Aykut Ekinci Cevapla

      Serverlarla mail portu, 25, 80 ve 3535 tir. Smtp 587 portu kullandıgı için server yöneticisinden 587 porta izin verilmesini istiyeceksin veya gmail’in smtp kullanacaksın bunun için projendeki web.config dosyasına aşagıdaki kodlamayı yapmalısın

      password="Şifre"

      port="587"

      userName="gmail adresin">

  • Aykut Ekinci Cevapla

    Bilgisayarlamızda smtp server kurulu olmadığı için smtp üzerinden cıkmaya çalıştıgımızda hata alıyoruz.Bunun için yolladıgın kodları sade hale getirdim hata düzeldi kodlamayı aşagıdaki gibi yaparsan sorun kalmaz. İyi çalışmalar.
    Mailini test etmek için bu adrese bakabilirsin. Mail test Etme
    protected void btnGonder_Click(object sender, EventArgs e)
    {
    MailMessage mail = new MailMessage();
    mail.From = new MailAddress(“mail@hasankalayyurdu.org”);
    mail.To.Add(TextBox2.Text);
    mail.Subject = “hky.com üzerinden… Adı: ” + TextBox1.Text + ” Konu: ” + TextBox3.Text; //
    mail.Body = TextBox4.Text;
    SmtpClient smtp = new SmtpClient();
    smtp.Credentials = new NetworkCredential(“mail@hasankalayyurdu.org”, “123456”);
    smtp.Port = 587;
    smtp.Host = “mail.mail@hasankalayyurdu.org”;
    try
    {
    smtp.Send(mail);
    Label5.Text = “Mesaj gönderildi. Teşekkür ederiz”;
    }
    catch (Exception hata)
    {
    Label5.Text = hata.ToString();

    }
    }

  • ersin Cevapla

    toplu mail sistemlerinin kişiselleştirme eklentisi gibi olmuş, başarılı…

    • Aykut Ekinci Cevapla

      Teşekkürler…

Yorum Yapınız

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