Bu yazının önceki bölümlerini
başlıkları altında okuyabilirsiniz.
Mektup işlemi için gereken tüm yapılandırma ayarları app.config adlı dosyada saklanmaktadır. Bu dosya mektup işlem bileşenini devreye sokan istemci uygulamanın bir parçasıdır. Devreye sokulduğunda mektup işlem bileşeni otomatikman ayarları istemci yapılandırma dosyasından okur. Yapılandırma ayarları app.config dosyasında aşağıdaki gibi tanımlanır.
"
fromMailAddress (Gönderenin-Mektup-Adresi) unsurunun değerini yapılandırma dosyasından almak için aşağıdaki satırı yazılım koduna eklemeniz gerekir.
- //Gönderenin E-Posta Adresini Al
string fromMailAddress =
string)(configurationAppSettings.GetValue(“fromMailAddress”,
typeof(string))));
Daha sonra MailAttributeCollection nesnesindeki değerleri, CreateXmlDocument(Xml-Belgesi-Yarat) adlı özel yöntemi kullanarak dinamik XML sabitine çeviriyoruz.
- //MailAttributeCollection nesnesini donusum kullanilabilecek xml belgesi nesnesine donustur
XmlDocument xmlDoc = CreateXmlDocument(mailAttrCollection);
string xslStlyesheet;
Böylece enum sabiti MailTemplate’in değerini bellekte yüklenecek olan XSL metin tanımlarını belirlemek için değerlendirmiş oluyoruz.
- //Donusum icin kullanilacak metin tanimlarini belirle
switch (template)
{
case MailTemplate.CategoriesInformation:
xslStlyesheet = “CategoriesInformation.xsl”;
break;
case MailTemplate.ProductsInformation:
xslStlyesheet = “ProductsInformation.xsl”;
break;
default:
/Assign the CategoriesInformation.xsl as the
default stylesheet
xslStlyesheet = “CategoriesInformation.xsl”;
break;
}
Daha sonra (yapılandırma dosyasından edindiğimiz) metin tanımının konumuna ilişkin değeri, metin tanımının adını da katarak XSL metin tanımlarını belleğe yüklüyoruz. Bunu halletmek için XslTransfom(Xsl-Dönüşüm) nesnesinin Load(Yükle) yöntemini kullanıyoruz.
- XslTransform transform = new XslTransform(); //Yapilandirma dosyasindan metin tanimlari klasorunun konumunu ogren
string stylesheetDirectory = ((string)(configurationAppSettings.GetValue
(“stylesheetLocation”, typeof(string))));
//Metin tanimlarini bellege yukle
transform.Load(stylesheetDirectory + “” +
xslStlyesheet);
Metin tanımları belleğe yüklendikten sonra artık XML içerikleri, CML ve XSL uygulayarak kolaylıkla HTML belgesine dönüştürebiliriz. Bunu yapmak için de hem CreateXmlDocument yöntemiyle yaratılmış olan XmlDocument nesnesini hem de StringWriter(Sabit-Yazıcı) nesnesinni XslTransform nesnesinin Transform yöntemine aktarılmamız gerekir. Transfoım yöntemi, XML ile XSL’yi birleştirir ve ortaya çıkan HTML belgesini bir ölçü olarak aktarılmış olan SrtingWriter nesnesinde saklar.
- //Donusturulmus HTML’yi barindirmak icin bir StringWriter nesnesi ornegi yarat
StringWriter writer = new StringWriter();
//Metin tanimlarini uygulayarak xml iceriklerini HTML’ye donustur
transform.Transform(xmlDoc,null,writer);
//Mektubun govde kismini StringWriter nesnesinden al
string body = writer.ToString();
Son olarak hem mektubun gövde kısmını hem de ToList, CCList, BccList ve bunlar gibi mektubun ilgili tüm değerlerini, SaveMail adını verdiğimiz özel bir yardımcı yöntemi devreye sokarak Sql Sunucu tablosuna kaydediyoruz.
- SaveMail(fromMailAddress,mailAttrCollection.ToList,
mailAttrCollection.CCList, mailAttrCollection.BccList,mailAttrCollection.Subject, (int)mailAttrCollection.Priority,body,
mailAttrCollection.Attachments);
Bu yazının devamını e-Posta İşlemleri için Sistem yaratmak – 5 başlığı altında okuyabilirsiniz.



Kaynak : 