facebook


twitter




Mailing Hazırlama (Bölüm 02)
0
yazar: vedattaylan | tarih: 03.12.2010 09:31:09

Merhabalar,

 Bu makalemizde hazırlanan bir mailing sayfasının belirli içeriklerinin nasıl değişeceğini anlatacağım.

Bu konuya başlamadan önce Mailing Hazırlama (Bölüm 01) makalesini okumanızı tavsiye ederim.

Mailing Hazırlama (Bölüm 01) makalesinde biliyorsunuzdur “#AdSoyad#” gibi bir değerler vermiştik. Şimdi bu değerleri veritabanımızdan yada formdan gelecek verilerle değiştireceğiz.

İlk önce varolan maling “sifredegistime.htm” sayfamızı okumak için StreamReader Class sınıfının ReadLine metodunu kullanacağız. Bunun için kod tarafında bir Class yaratalım ve readHTMLTemplate adını verelim. Bu Class sınıfımız “String” değerinde bir parametre alacak.

 

public static string readHtmlTemplate(String strHtmlFile)

{

// htm sayfamızı okuyoruz.

StreamReader readStream = new StreamReader(strHtmlFile);

// Variable

String line = "";

String html = "";

// htm sayfamızın satır değeri null olana kadar dönecek.

while ((line = readStream.ReadLine()) != null)

{

// Her satırı html değişkenine atıyoruz.

html += line;

}

// stream i kapatıyoruz.

readStream.Close();

// geriye string değerinde htm sayfamızı döndürüyoruz.

return html;

}

 

Artık bundan sonrası verilerimizi değiştrmek basit. Aldığımız verileri yada veritabanından gelen verilerimizi “readHtmlTemplate” metodumuzdan gelen htm sayfamızdaki # değerleri içerisindekilerle değiştireceğiz ve son olarak mail gönderimi yapacağız.

 

string html = readHtmlTemplate(Server.MapPath("~/eposta/sifredegistirme.htm"));

html = html.Replace("#AdSoyad#", "Vedat Taylan");

html = html.Replace("#Password#", "123456");

 

mailing sayfamız bizim istediğimiz verilerle değişti. Şimdi bunu ilgili kişiye mail gönderimi ile noktalayacağız.

 

public static bool SendMail(string ManagerMail, string ManagerMailPassword, string MailHost, int? Port, string UserEmail, string Subject, bool isBodyHTML, string Body)

{

SmtpClient client = new SmtpClient();

NetworkCredential userInfo = new NetworkCredential(ManagerMail, ManagerMailPassword);

client.UseDefaultCredentials = true;

client.Credentials = userInfo;

client.Host = MailHost;

client.Port = (Port != null ? Convert.ToInt32(Port) : 587);

MailMessage message = new MailMessage();

message.To.Add(new MailAddress(UserEmail));

message.From = new MailAddress(ManagerMail);

message.Subject = Subject;

message.IsBodyHtml = isBodyHTML;

message.Priority = MailPriority.Normal;

message.Body = Body;

try

{

client.Send(message);

return true;

}

catch

{

return false;

}

}

 

SendMail metodunun aldığı parametleri bilmeyenler için anlatmak gerekirse;

ManagerMail ve ManagerPassword : Kendi mail adresiniz ve şifreniz.

MailHost : mail adresinizin tutulduğu host adresi : Örnek : mail.vedattaylan.com.tr

Port: mail hostunuzun port numarası. Varsayılan 527.

UserMail : Kullanıcı E-mail adresi

Subject : Mailimizin başlığı

isBodyHTML: Mailimizin düz metin veya html formatındamı gösterileceğini belirtiyorux. True yada false.

Body : E-mail mesajımız. Burada htm sayfamızı atıyoruz.

 

Hepsi bu kadar arkadaşlar. Send Mail metodunu normal olarak mail gönderimlerinde de kullanabilirsiniz. Umarım sizlere faydası olması dileğiyle bir başka makalemde görüşmek üzere.

 

Vedat Taylan



etiketler: ASP.net, HTML

Bu makaleye henüz yorum yapılmamış.

Ad Soyad E-posta Web Sitesi