• 08-02-2007, 16:44:11
    #1
    Merhaba arkadaşlar;

    Genellikle sitenizin "İletişim" sayfasında kullabileceğiniz, kullanıcının form u doldurup "OK" butonuna bastığında, forma girilmiş tüm verilerin Mailinize yollanmasının uygulamasından bahsedeceğim size..
    ( Asp.NET e yeni başlamış olanlara göre anlatıyorum,sıkılmazsınızz umarım )

    Yeni bir sayfa yaratın öncelikle ve Design kısmına gelip,
    ekrana alt alta 4 tane TextBox koyun ve TexBoxlara sırasıyla ;

    txt_ad
    txt_mail
    txt_tel
    txt_mesaj

    Şeklinde isimler veriniz ( Ekran görüntüsü için Uğur ÇELENK blog sitesi )
    ve 1 tane de Button koyalım textboxlarına altına..

    Design kısmı bittiğine göre,artık kodlama kısmına geçebiliriz.Bunun için design kısmında koyduğumuz buttona çift tıklayıp kod kısmına geçiyoruz ( Yani butonun tıklanma eventine kod yazacağız )
    Buttonun click anına kod yazmadan önce Mail yollamak için gereken Namespace imizi eklememiz gerekiyor;
    Kod kısmının en üstünde bulunan namespace lere using System.Net.Mail; ekliyoruz.
    ve tekrar Butonın tıklama anında çalışacak kodları yazmaya başlayabiliriz..
    Her hangi bir hata oluşabilme durumunu göz önünde bulunduraraktan try - catch bloklarını da kullanalım ve kodumuz aşağıdaki gibi olacaktır ;


    protected void Button1_Click(object sender, EventArgs e)
    {
    string ad = txt_ad.Text; // TextBoxlardaki bilgileri string e atıyorum..
    string mailX = txt_mail.Text;
    string tel = txt_tel.Text;
    string mesaj=txt_mesaj.Text;

    try
    {

    string fromAddress = "ugurrrrrrr@gmail.com"; // mail kimden gidecek?
    string fromName = "birlesmisemlak.com"; // maili ginderenin ismi?
    string toMail = "ugurr@gmail.com"; // hangi maile gidecek?
    string toNme = "Emlak"; // gideceği kişinin ismi?
    string msgSubject = "birlesmisemlak.com"; // mesajın başlığı?
    string sifre = "BURAYA ŞİFRENİZİ YAZINIZ"; // mailinizin şifresini yazıyoruz buraya ( bunun sebebini en altta açıklayacağım uzunca )

    // Burası da gönderilecek olan mailde yazılacak şeyler
    // Bildiğimiz string işlemleriyle, mailin güzel gözükeceği şekilde yazmaya çalıştım, burayı istediğiniz gibi değiştirebilirsiniz..
    string msgBody = "www.BirlesmisEmlak.com 'dan bir mesaj aldınız ; \n"
    + "\n"
    + "\n"
    + "Mesajı Gönderenin Adı :" + ad +"\n" // Textboxtaki veriyi, 'ad' stringine atamıştık, şimdi bu 'ad' stringini kullanıyoruz..
    + "Mesajı Gönderenin Maili :" + mailX + "\n" // mailX stringini kullandık
    + "Mesajı Gönderenin Tel. Numarası :" + tel + "\n" // tel stringini kullandık
    + "\n"
    + "" + mesaj + "" // mesaj stringini kullandık
    + "\n"
    + "\n"
    + "============================"
    + "\n"
    + "Uğur ÇELENK"
    + "\n"
    + "============================"
    + "\n";


    SmtpClient client = new SmtpClient();
    client.Credentials = new System.Net.NetworkCredential(fromAddress, sifre);
    client.Host = "smtp.gmail.com"; // SMTP sunucu olarak GMAIL kullandım,gayet iyi çalışıyor )
    client.EnableSsl = true;
    MailAddress from = new MailAddress(fromAddress, fromName);
    MailAddress to = new MailAddress(toMail, toNme);
    MailMessage message = new MailMessage(from, to);

    message.Subject = msgSubject;
    message.Body = msgBody;

    client.Send(message);
    Response.Redirect("Mesaj.aspx"); // Eğer başarıyla tamamlanırsa kod, mesaj adlı sayfaya yönlendiriyorum..
    }
    catch
    {
    // Eğer hata oluşursa, ekrana bir mesaj yazdırabilirsiniz,burası sizin hayal gücünüze kalmış artık..
    }
    }

    =============================================

    Kodumuz bu kadardı.. Şimdi açıklamam gereken bazı şeyleri de belirtiyim ;
    - SMTP sunucu olarak Hotmail izin vermiyor sanırım ama GMAIL güzel bir şekilde çalışıyor,diğer SMTP sunucular için denemedm, dilerseniz siz denersiniz..
    - Kod kısmında mail şifremizi neden giriyoruz? diye sorabilirsiniz..Bunun cevabı da şudur, bizim yazdığımız kod spam mail atan kodlar gibi değildir. Authentication yapıyoruz yani doğrulama yapıyoruz.Bu sayede gönderilen maillerin junk mail e düşme olasılığı azalıyor.. Doğrulama yapılmadan da mail gönderilebilir ama gönderdiğiniz tüm mailler junk maile düşüyor,bu yüzden o yöntemi anlatma gereği duymadım..(Eğer sayfalarınızı barındırdığınız hostun IP'si blackliste girmişse, sizin göndereceğiniz maillerde haliyle junk a düşecektir..)

    Umarım iyi bir şekilde açıklayabilmişimdir..

    Hazırlayan Uğur ÇELENK


    ================================================== ======
  • 15-03-2007, 19:45:38
    #2
    Peki form elementleri boş bırakıldıgında neden işlem başarı ile sonuçlanıyor.Bu nasıl giderilir.
  • 15-03-2007, 21:03:04
    #3
    çok basit, if else ekleyebilirsn
  • 16-03-2007, 02:00:45
    #4
    Teşekkürler paylaşımın için.Ve Bilgi verdiğin için.
  • 16-03-2007, 16:20:36
    #5
    spam ve saldırılardan korunmak için uygulamanıza güvenlik kodu eklemeyi unutmayın.
    örnek: https://www.r10.net/asp-net/23517-kay...nlik-kodu.html
  • 17-03-2007, 17:04:45
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    ellerine sağlık
  • 17-03-2007, 17:06:01
    #7
    Yönetici onayı bekliyor
    hostingimin email bölümünden emaillerime nasıl bakabilirim.
    onun için bir script varmı acaba
  • 02-04-2007, 01:49:57
    #8
    ayrıca boş girilmesine karşı validator lar atabilirsin.onlar çok tam işini görücektir.
  • 02-04-2007, 17:59:47
    #9
    zaten var validator