Forum
İ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.
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
Erdem bey öncelikle cevap verdiğiniz için teşekkür ederim. Dediğinizi denedim fakat mail gönderimi olmadı bu şekilde.
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
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
Erdem bey aynı sizin dediğiniz gibi yaptım ama benim projemde mail gönderilmiyor.
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
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
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
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...
Tamam Erdem bey çok teşekkür ederim.
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