Forum

Asp.net mailde tabl...
 
Bildirimler
Hepsini Temizle

Asp.net mailde tablo sorunu

13 Yazılar
2 Üyeler
0 Reactions
633 Görüntüleme
(@SeldaSeymen)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

İyi günler...
Ben asp.net üzerinde proje yapıyorum. Projemde gridview var burada firma isimlerim var. Bu firmalardan checkbox ile istediklerimi seçiyorum. Seçtiklerimi buton yardımıyla ayrı bir gridview oluşturuyorum aynı zamanda seçilenleri mail göndermek istiyorum. Fakat mail göndermemde şöyle bir sıkıntım var; gridwiev de 3 firma seçsem bu mailleri aynı ilgili kişiye ayrı ayrı 3 mailde gönderiyor. Benim istediğim ise; aynı ilgili kişiye gönderileceği için seçtiğim 3 firmada aynı mailde tablo halinde alt alta olsun istiyorum. Kodlarımda for döngüsü yaptım bir şeyler denedim fakat mailde istediğim gibi olmadı. Ayrı ayrı mail gönderiyor. Ancak istediğim şekilde tek mail üzerinde firmaları alt alta yazmıyor tabloda. Yardımcı olur musunuz ? Kodlarım; 

 protected void Button3_Click1(object sender, EventArgs e)

    {

        GridView3.Visible = true;

        try

        {

            MailMessage Mesaj = new MailMessage();

            Mesaj.From = new MailAddress("    ");

            Mesaj.To.Add("gonderilcek adres");

            Mesaj.Subject = "Müşteri Memnuniyeti";

            Mesaj.IsBodyHtml = true;

            for (int i = 0; i <= GridView1.Rows.Count; i++)

            {

                Mesaj.Body = " (4) Çok Memnun (3) Memnun (2) Az Memnun (1) Memnun Değil " +

                             "<br><br>" +

                             "<table border='1' bordercolor='#999999' style='border:thin; border-collapse:collapse;' width='600'>" +

                             "<tr height='20'>" +

                             "<td style='width:150px; padding-left:10px; font-weight:bold; color:#069;'>Firma Adı: </td>" +

                             "<td style='width:150px; padding-left:10px; font-weight:bold; color:#069;'>Ürün Adı:  </td>" +

                             "<td style='padding-left:10px; font-weight:bold; color:#069;'>Kullanıcı Sayısı:       </td>" +

                             "<td style='padding-left:10px; font-weight:bold; color:#069;'>Lisans Bitiş Tarihi:    </td>" +

                             "</tr>" +

                             "<tr height='35'>" +

                             "<td style='padding-left:10px;'>" + GridView3.Rows[i].Cells[0].Text + "</td>" +

                             "<td style='padding-left:10px;'>" + GridView3.Rows[i].Cells[1].Text + "</td>" +

                             "<td style='padding-left:10px;'>" + GridView3.Rows[i].Cells[2].Text + "</td>" +

                             "<td style='padding-left:10px;'>" + GridView3.Rows[i].Cells[3].Text + "</td>" +

                             "</tr>" +

                             "</table>";

                SmtpClient smtp = new SmtpClient("  ",  );

                System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential(" ", " ");

                smtp.UseDefaultCredentials = true;

                smtp.Credentials = SMTPUserInfo;

                smtp.Send(Mesaj);

            }

            Response.Write("<script>alert('Mail ilgili kişiye gönderildi.')</script>");

         }

        catch(Exception)

        {

              Response.Write("<script>alert('Lütfen firma seçiniz.')</script>");

        }

    } 

 Not: Seçimleri yaptığım Gridview1. Burdan seçip oluşturduğum ayrı tabloda Gridview3. 

 

 

 
Gönderildi : 15/04/2015 13:35

(@eravse)
Gönderiler: 1753
Üye
 

Burada bu gridleri sadece görsel öğeleri eklemek açısından mı HTML olarak basıyorsunuz. Direk olarak gridi maile ekleseniz sizin için yeterli olurmu . Eğer sorunuz evet ise

 eklemiş olduğunuz gridi aşağıdaki gibi HTML koda döndürün siz tek tek tr td ile uğraşmayın. Hem yönetilebilirlik açısından daha rahat edebilirsiniz.

 

   private string GridViewToHtml(GridView gv)
        {

            StringBuilder SB = new StringBuilder();

            StringWriter SW = new StringWriter(SB);

            HtmlTextWriter htmlTW = new HtmlTextWriter(SW);

            gv.RenderControl(htmlTW);

            return SB.ToString();

        }
 

 saygılarımla

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 15/04/2015 13:48

(@SeldaSeymen)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Erdem bey öncelikle cevap verdiğiniz için teşekkür ederim. Dediğinizi denedim fakat mail gönderimi olmadı bu şekilde. 

 
Gönderildi : 15/04/2015 15:02

(@eravse)
Gönderiler: 1753
Üye
 

Selda hanım bu grid'i html koduna ceviren fonksiyondur bir yalnış yok değilmi. ? çalışan bir koddur çünkü kendisi ...

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 15/04/2015 17:02

(@SeldaSeymen)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 
Erdem bey evet biliyorum html koduna çeviriyor yanlışlık yok. Sadece mesaj.body kısmına bunu eşitleyince mail gönderimini yapmıyor. 
Mesaj.Body = GridViewToHtml(GridView3);
Araştırmalarıma göre body kısmımı bu şekilde yaptım. Acaba burada mı bir yanlışlık yaptım. Daha önce htmle çevirip yapmadım bu sebeple yanlış yazmış olabilirim body kısmını.
 
Gönderildi : 15/04/2015 17:12

(@eravse)
Gönderiler: 1753
Üye
 

Yok dogru bende bu sekılde kullanıyorum kodu sızınlede paylasıyorum

 

           System.Web.UI.WebControls.GridView dg2 = new System.Web.UI.WebControls.GridView();

                                    dg2.DataSource = erro_list;
                                    dg2.DataBind();
                                    MailMessage m1 = new MailMessage();
                                    m1.To.Add("erdem@......");
                             
                                    m1.Subject = "XRES AKTARIMI HATA.";
                                    m1.IsBodyHtml = true;
                                    m1.Body = "XRES Aktarımı  <br><br> <h2>Aktarım Listesi</h2>" + GridViewToHtml(dg2).ToString();

                                    SendEmail(m1);
 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 15/04/2015 17:24

(@SeldaSeymen)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Erdem bey aynı sizin dediğiniz gibi yaptım ama benim projemde mail gönderilmiyor. 

 
Gönderildi : 15/04/2015 19:18

(@eravse)
Gönderiler: 1753
Üye
 

siz bir şekilde kod paylaşımı yapabilecek gibi iseniz tamamını incelemeye çalışayım normalde çalışmaıs gerekmekte

saygılarımla 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 15/04/2015 20:05

(@SeldaSeymen)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Erdem bey tablo oluşturmamdan mail göndermeye olan kodlarım burada. Kodlarımın ilk halini attım. Gereken yerlerde siz müdahale ederseniz çok mutlu olurum. Teşekkür ederim. 
Kodlarımın bulunduğu yer:  http://pastebin.com/ARu3ziFq

 
Gönderildi : 15/04/2015 20:43

(@eravse)
Gönderiler: 1753
Üye
 

Tamamdır. Gece sadece size gönder fonksiyonu için çalışır bir kod göndereceğim inşallah. siz artik gerekli yere onu koyarsınız.

 saygılarımla 

 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 15/04/2015 20:53

(@SeldaSeymen)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Mesaj.body kısmını öyle yazdığımda da boş mail oluyor. Gridviewi html'e döndürme kodlarım ise bu şekilde:  http://pastebin.com/ZbSrDptM

İlgi ve alakanız için çok teşekkür ederim Erdem bey.

İyi günler... 

 
Gönderildi : 15/04/2015 20:55

(@SeldaSeymen)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Tamam Erdem bey çok teşekkür ederim.

 
Gönderildi : 15/04/2015 20:56

(@eravse)
Gönderiler: 1753
Üye
 

Gridview3.Visible = true; den sonra birdaha bind islemi yaparmısınız ?

Gridview3.DataSource = xxxx ;

Gridview3.DataBind()

 

bind etmediğiniz için boş geliyor. 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 15/04/2015 20:58

Paylaş: