C# Html Mail Gönderme, Eposta, Veritabanı, Css, Yazılım, Blogları

Bu yazımızda veritabanında kayıtlı bir cariye HTML olarak tasarladığımız bilgilendirme mail nasıl atacağımızı öğreneceğiz.

Kodlarımızı yazmadan önce tasarımımızı oluşturalım.

İsterseniz gönderilen mailleri veritanına kaydetmek istiyorsanız GonderilenMailKaydet() adında public türünde method oluşturacağım. Bu tamamen size kalmış. Bu arada using System.Data.SqlClient; kütüphanesini eklemeyi unutmayınız.

SqlConnection baglanti = new SqlConnection("Data Source=ONUR;Initial Catalog=Mutakabat;Integrated Security=True"); public void GonderilenMailKaydet() { try { baglanti.Open(); string kayit = "insert into mail (kullaniciad,firmaad,yetkili,vergidaire,vergino,mail,telefon,adres,borc) values (@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8)"; SqlCommand ekle = new SqlCommand(kayit, baglanti); ekle.Parameters.AddWithValue("@p1", lblKullaniciAd.Text); ekle.Parameters.AddWithValue("@p2", txtFirmaAd.Text); ekle.Parameters.AddWithValue("@p3", txtYetkili.Text); ekle.Parameters.AddWithValue("@p4", txtVergiDaire.Text); ekle.Parameters.AddWithValue("@p5", txtVergiNo.Text); ekle.Parameters.AddWithValue("@p6", txtMutabakatMail.Text); ekle.Parameters.AddWithValue("@p7", txtTelefon.Text); ekle.Parameters.AddWithValue("@p8", txtAdres.Text); ekle.Parameters.AddWithValue("@p9", txtBorc.Text); ekle.ExecuteNonQuery(); baglanti.Close(); } catch (SqlException hata) { MessageBox.Show(hata.ToString()); } }

Aşağıdaki örnek kodu da ekleyerek maillerdeki geçersiz karakterleri kontrol edebiliriz. Bunu internetten buldum.

private const string MailKontrol = @"^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@" + @"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]? [0-9]{1,2}|25[0-5]|2[0-4][0-9])\." + @"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]? [0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|" + @"([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})$";

Daha sonra Mail Gönder butonuna tıklayarak kodlarımızı yazmaya başlayabiliriz. Fakat yazmadan önce using System.Net.Mail; using System.Text.RegularExpressions; kütüphanesini eklemeyi unutmayınız.

private void btnMailGonder_Click(object sender, EventArgs e) { try { bool Gonder; MailAddress addressFrom = new MailAddress("kendi mailiniz yazılacak"); MailAddress addressTo = new MailAddress(txtMutabakatMail.Text); Gonder = Regex.IsMatch(txtMutabakatMail.Text, MailKontrol); MailMessage mess = new MailMessage(addressFrom, addressTo); if (Gonder) { mess.Subject = "Deneme Test Mail"; mess.IsBodyHtml = true; htmlString = "<html>" + " <head>" + " <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>" + " <style type='text/css'>" + " .onayla" + " {" + " background-color:#3CB371;" + " cursor:pointer;" + " height:50px;" + " width:398px;" + " color:#FFFFFF;" + " }" + " .onayla:hover" + " {" + " background-color:#66CDAA;" + " }" + " .onayla:active" + " {" + " background-color:#2E8B57;" + " }" + " .onayla a" + " {" + " text-decoration:none;" + " color:white;" + " width:100%;" + " height:100%;" + " display:block;" + " padding-top:13px;" + " overflow:hidden;" + " }" + " .mutabikdegil" + " {" + " background-color:#FA8072;" + "cursor:pointer;" + " height:50px;" + " width:400px;" + "color:#FFFFFF;" + " }" + " .mutabikdegil:hover" + " {" + " background-color:#FFA07A;" + " }" + " .mutabikdegil:active" + " {" + " background-color:#CD5C5C;" + " }" + " .mutabikdegil a" + " {" + " text-decoration:none;" + " color:white;" + " width:100%;" + " height:100%;" + " display:block;" + " padding-top:13px;" + " overflow:hidden;" + " }" + " .ilgilikisidegil" + " {" + " background-color:#1E90FF;" + " cursor:pointer;" + " color:#FFFFFF;" + " width:800px;" + "height:50px;" + " }" + " .ilgilikisidegil:hover" + " {" + " background-color:#00BFFF;" + " }" + " .ilgilikisidegil:active" + " {" + " background-color:#0000FF;" + " }" + " .ilgilikisidegil a" + " {" + " text-decoration:none;" + " color:white;" + " width:100%;" + " height:100%;" + " display:block;" + " padding-top:13px;" + " overflow:hidden;" + " }" + " </style>" + " </head>" + " <body>" + " <table border='1' cellpadding='0' cellspacing='0' align='center'>" + " <tr>" + " <td align='center' style='height:50px; width:800px;' bgcolor='3CB371'><b><font color='FFFFFF'>Cari Hesap Mutabakat Mektubu</font></b></td>" + " </tr>" + " </table>" + " <table border='1' cellpadding='0' cellspacing='0' align='center'>" + " <tr>" + " <td align='left' height='100' width='400'>Gönderen:Keçeler Ticaret <br> <b>Vergi Dairesi: Sancaktepe</b> <br> <b>Vergi Numarası: 111111111</b></td> " + " <td align='left' height='100' width='398'>Alıcı:" + txtFirmaAd.Text + " <br> <b>Vergi Dairesi: " + txtVergiDaire.Text + "</b> <br> <b>Vergi Numarası:" + txtVergiNo.Text + "</b></td>" + " </tr>" + " </table>" + " <table border='1' cellpadding='0' cellspacing='0' align='center'>" + " <td align='center' height='30' width='800' bgcolor='DCDCDC'><b>Cari Hesap Mutabakatı</b></td>" + " </table>" + " <table border='1' cellpadding='0' cellspacing='0' align='center'>" + " <td align='right' height='100' width='200' bgcolor='DCDCDC'><b>Mutabakat Dönemi:</b> <br> <b>Bakiye:</b> <br> <b>Borç/Alacak:</b> <br> <b>Müşteri Kodu:</b> <br></b></td>" + " <td align='left' height='100' width='598'> Aralık-2018 <br>" + txtBorc.Text + "<br> Alacak <br> 2511552 </td>" + " </table>" + " <table border='1' cellpadding='0' cellspacing='0' align='center'>" + " <td height='100' width='800'> Söz konusu tarih için, bu bakiyede <b>mutabıksanız alttaki 'Mutabıkız' butonunu</b> tıklamanızı, <b>mutabık değilseniz 'Mutabık Değiliz' butonunu</b> tıklayarak cari ekstrenizi sistem üzerinden paylaşmanızı rica ederiz.</td>" + " </table>" + " <table border='1' cellpadding='0' style='height:50px; width:800px;' cellspacing='0' align='center'>" + " <tr>" + " <td class='onayla' align='center'> <a href='https://www.google.com'>Onayla(Mutabıkız)</a> </td>" + " <td class='mutabikdegil' align='center'> <a href='https://www.google.com'>Mutabık Değiliz</a> </td>" + " </tr>" + " </table>" + " <table border='1' cellpadding='0' cellspacing='0' align='center'>" + " <td class='ilgilikisidegil' align='center'> <a href='https://www.google.com'>İlgili Kişi Ben Değilim</a> </td> " + " </table> " + " </body>" + " </html>"; mess.Body = htmlString; progressBar1.Visible = true; progressBar1.Maximum = 900000; progressBar1.Minimum = 90; for (int i = 90; i < 900000; i++) { progressBar1.Value = i; } SmtpClient client = new SmtpClient(); client.Credentials = new System.Net.NetworkCredential(addressFrom.ToString(), "Mail Şifreniz Yazılacak"); client.Host = "smtp.outlook.com"; client.Port = 587; client.EnableSsl = true; client.Send(mess); GonderilenMailKaydet(); lblMesaj.Visible = true; lblMesaj.ForeColor = Color.Green; lblMesaj.Text = txtMutabakatMail.Text + " Mail Adresine Başarıyla Gönderildi ve Gönderilen Maillere Eklendi"; } else { lblMesaj.Visible = true; lblMesaj.ForeColor = Color.Red; lblMesaj.Text = "Geçersiz E-Posta"; } } catch (Exception hata) { MessageBox.Show(hata.ToString()); } }

Kodumuzu açıklayacak olursak, veritabanında kayıtlı olan carimize html olarak tasarladığımız bilgilendirme maili gönderdik. Gerekli şartlar sağlanıyorsa cariye hem mail gönderiliyor hem de gönderdiğimiz mail veritabanımıza kaydediliyor.

Gelen Mail

Từ khóa » Html Mail Gönderme Kodu