Merhabalar;
Asp.Net'te veri dolu bir GridView'ı gmail uzantılı bir e-posta ile herhangi bir posta adresine gönderme işlemini yapacağız.
E-posta gönderme işlemi için şu namespace'leri projeye eklemek gerekir:
//E-postanın kime gideceği belirtilir
//E-postanın konusu
//E-postanın içeriği yani GridView'ın HTML halinin string versiyonu gövdeyi oluşturur
//Gmail hesap kontrolü için gönderenin bilgileri girilir
Asp.Net'te veri dolu bir GridView'ı gmail uzantılı bir e-posta ile herhangi bir posta adresine gönderme işlemini yapacağız.
E-posta gönderme işlemi için şu namespace'leri projeye eklemek gerekir:
using
System.Net.Mail;
using
System.Net;
Ayrıca GridView'umuzu HTML formata çevirmemiz lazım ki e-postanın gövdesini oluşturabilelim. Bunun için de şu namespace'leri projeye eklemek gerekir:
using
System.Text;
using
System.IO;
Önce GridView'u HTML formata çevirmemiz lazım:
private string GridViewToHtml(GridView
gv)
{
StringBuilder
sb = new StringBuilder();
StringWriter
sw = new StringWriter(sb);
HtmlTextWriter
hw = new HtmlTextWriter(sw);
gv.RenderControl(hw);
return
sb.ToString();
}
Bu işlemle birlikte artık e-postanın gövdesini oluşturacak GridView'ın string hali hazırlanmış oldu.
E-posta gönderme işlemini de aşağıdaki fonksiyon sayesinde gerçekleştirebiliriz:
public void SendMail()
{
// mail adında MailMessage nesnesi yaratılır
MailMessage mail = new MailMessage();
//Postayı gönderenin e-posta adresi belirtilir
mail.From = new
MailAddress("gondereninpostaadresi@gmail.com");
mail.To.Add("alicininpostaadresi@example.com");
mail.Subject = "Konu";
mail.Body = GridViewToHtml(gridViewBilet);
mail.IsBodyHtml = true;
//sc adında SmtpClient nesnesi yaratılır
SmtpClient
sc = new SmtpClient();
//Gmail için geçerli port bildirilir
sc.Port = 587;
//Gmailin smtp host adresini belirtilir
sc.Host = "smtp.gmail.com";
//SSL etkinleştirilir
sc.EnableSsl = true;
sc.Credentials = new NetworkCredential("gondereninpostaadresi@gmail.com ", "sifreniz");
//E-posta gönderilir
sc.Send(mail);
}
Ben örnek olsun diye ufak bir uçak bileti rezervasyonu uygulaması yapıp kendime bir posta gönderdim. Görseli şöyle:
Hoşçakalın.
merhaba.
YanıtlaSilkaynak dosyayı eklerseniz ii olurdu.
Evet bu yazıyı yazdığımda devam eden bir çalışmam vardı, eklememiştim.
Silİlginize teşekkürler.
Merhaba
YanıtlaSilMail Olarak Sayfa Gönderebilşirmiyiz Mesela Benim Anasayfamın Aynısı Ona Mail Yoluyla Gidecek Yada Benim Mail İçin tasarladıgım Bir Sayfa Gönderecegim
Mail:yasin_sarica1996@hotmail.com
Merhaba, http://www.systemwebmail.com/faq/3.2.aspx size yardımcı olabilir.
SilPeki
YanıtlaSilBu kodları toplu mail göndermek için nasıl revize edebiliriz ?
Tam olarak ne yapmak istiyorsunuz?
SilHata aliyorum
YanıtlaSilAn exception of type 'System.Web.HttpException' occurred in System.Web.dll but was not handled in user code
Additional information: Control 'GridView1' of type 'GridView' must be placed inside a form tag with runat=server.
Kodunuzun .aspx tarafında tag'lerde bir hata yapmışsınız. GridView1 adlı kontrolünüzün property'leri arasında runat="server" da olmalı.
SilMerhaba gridview property'lerinde runat="server" olduğu halde aynı hatayı alıyorum sebebi ne olabilir?
Silhttp://stackoverflow.com/questions/6343630/gridview-must-be-placed-inside-a-form-tag-with-runat-server-even-after-the-gri
Siladresindeki ilk cevabı uygulayabilir misiniz acaba? Olmazsa yine bakalım.
Merhabalar ,
YanıtlaSilMantık Güzel ve Kullanışlı . Toplu Bülten Gönderimi için uyguladım . Paylaşımınız için teşekkürler .
Merhaba Ercan Bey, yardımcı olduysa mutlu oldum. Uyguladığınız yöntemleri burada paylaşabilirseniz sonraki okuyuculara yardımcı olabilir. Teşekkürler.
Silmerhaba elif hn. gönder butonuna nasıl bağlıyoruz onu tam olarak göremedim.
YanıtlaSilMerhaba, odaklanmanız gereken yer SendMail() metodu aslında. Bu metodu nerede isterseniz orada kullanabilirsiniz. Siz sanırım bir butonun click event'inde çağırmak istiyorsunuz. Bu şekilde yapabilirsiniz.
Sil