ForumTayfa  

Go Back   ForumTayfa > Güvenlik & Bilgisayar & İnternet & Webmaster & Programlama Bölümü > Güvenlik & Bilgisayar & İnternet & Webmaster & Programlama > Programlama

Programlama Programlama hakkında herşeyi paylaştığımız, soru ve sorunlarımızı tartıştığımız bölüm...

Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Stil
Alt 26.04.07, 17:11   #1 (permalink)
Deneyimli Tayfa
 
silentwolf - ait Kullanıcı Resmi (Avatar)
 
Üyelik Tarihi: Dec 2006
Nereden: burada
Mesaj Sayısı: 3.964
Konu Sayısı: 157
Takım: Fenerbahçe
Rep Gücü: 196650
Rep Puanı: 19663395
Rep Derecesi : silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000
Ruh Hali:

Standart Delphi 2006 ile ASP.NET Sayfasından E-Posta Göndermek




Bugün tüm internet kullanıcılarının World Wide Web çapında diğer internet kullanıcılarıyla iletişim kurmak için elektronik posta adreslerine sahip olması, gelişimini tüm hızıyla sürdüren teknolojinin en büyük nimetlerindendir. Öyleki özellikle reklamcılık sektörü başta olmak üzere bugün bir sitesi olan , her kişi, kurum ve kuruluş, gerek kendi çalışanlarına, üyelerine , gerekse diğer kullanıcılara ücret tarifeleri, sattıkları ürünlerin teknik özellikleri, sundukları hizmetin çeşitliliği gibi tüm bilgilendirmeleri e-posta kanalıyla yapmaktadır.

Devlet kurumlarında çalışan arkadaşlarımızda e-posta sisteminin kurumlar arasındaki bilgi akışı üzerinde sağladığı kolaylıklardan istifade etmekteler artık. Bu kadar laf salatasını elbette e-posta sisteminin önemini belirginleştirmek için yaptım. Ama eminim zaten hepiniz bunun farkındasınızdır.

Forumda bir çok dilin bir şekilde e-posta gönderimiyle ilgili konuları işlediği aşikar. Bizde en iyi bildiğimiz dil olan delphice ama ASP.NET ile bir e-posta modülünün çalışma mantığından bahsedeceğiz. Yazacağımız e-posta gönderme modülü için yerel makinada smtp, pop3, imap gibi protokol servislerinden yararlanacağız. Bu yazıda smtp prokolünü kullanarak nasıl e-posta gönderebileceğimizi öğrenmiş olacağız.

Bir E-Posta Sunucusunun Kurulması

Piyasadan ücretsiz temin edebileceğiniz smtp protokol destekli bir e-posta sunucusuna ihtiyacımız olacak. Bu tür sunucu yazılımları hosting hizmeti veren firmalarca sağlanmaktadır. Aradığınızda o kadar çok sunucu yazılımıyla karşılaşıyorsunuz ki, en doğru seçimin hangisi olduğuna karar vermekte zorlanabiliyorsunuz. Ben kısa bir araştırmadan ve sponsorlarımın işaretleri doğrultusunda merakmail server e-posta sunucusunu yerel makinama kurmaya karar verdim. Kurulum ve ayar işi oldukça kolay. Bahse konu sunucunun deneme sürümünü[Sadece Kayıtlı Kullanıcılar Linkleri Görebilir.Kayıt Olmak İçin Tıklayınız...] indirebilirsiniz...

Sunucunun kurulumu tamamlandığında size ne yapmanız gerektiğini anlatan bir sihirbazla temel yapılandırma ayarlarını kolayca yapabiliyorsunuz...

Bir E-Posta suncusu üzerinde birden fazla etki alanı (DOMAIN) tanımlayabilir, bu etki alanlarına e-posta servisinden yararlanacak üyeleri ekleyip çıkarabilir, yada sunduğunuz hizmetin sınırlarını ayarlayabilirsiniz.

E-Posta Sunucusu Yönetim konsolu


Sunucunun sadece yerel hesaplar arası değilde www üzerinde e-posta göndermesini istiyorsanız aşağıdaki ayarlarıda yapmalısınız....


Bu ayarlardan sonra e-posta sunucumuz hem içeriye hem dışarıya e-posta gönderebilmektedir. Konumuz e-posta sunucusunun yapılandırılması olmadığından atladığımız ayrıntıları arkadaşlarımızın yorumlarıyla öğrenebiliriz.

E-Posta Gönderme Yöntemi

Gönderme işlemiyle ilgili ihtiyaç duyduğumuz tüm yöntem ve özelliker .NET Frame içinde System.Web.Mail uzay adında tanımlandığından bu uzay adını unit başına uses bildirimiyle ekleyerek işe başlıyoruz.

Kod:
interface
uses System.Web.Mail;
Bir çok asp.net sayfasından yada ileride veri tabanı üzerinden sırayla ilgili üyelere e-posta gönderimi yapabilmek için e-posta gönderim yöntemini ayrı bir unitte tasarlamakta fayda var.

Kod:
Function EPostaGonder(Kimden,Kime,_SmtpHost,Konu,Mesaj : String;Format : MailFormat ;DosyaListesi :String=''):SmallInt;
 Var
   GonderimSonucu : SmallInt;
   Mail           : MailMessage;
   Attach         : MailAttachment;
   Smtp           : SmtpMail;
begin
  try
    GonderimSonucu  := 1; // Gönderildi
    Mail    := MailMessage.Create;
    try
      Smtp.SmtpServer := _SmtpHost;
      With Mail do
      begin
        From          := Kimden;
        &To           := Kime;
        Subject       := Konu;
        BodyEncoding.UTF8;
        Body          := Mesaj;
        BodyFormat    := Format;
        if DosyaListesi <> '' then
        begin
          Attach := MailAttachment.Create(DosyaListesi);
          Mail.Attachments.Add(Attach);
        end;
      end;
      Smtp.Send(Mail);
    Except on E:Exception do GonderimSonucu := 0;
    end;
  finally
    Mail.Free;
    Mail  := Nil;
    Result := GonderimSonucu;
  end;
end;
GonderimSonucu : SmallInt; // Gönderimin başarılı olup olmadığını dönderecek değişken

Mail : MailMessage; //System.web.MailMessage sınıfında türeyen ve göndereceğimiz e-posta ile ilgili tüm
teferruatı tutan nesnemiz

Attach : MailAttachment; // Gönderime eklenecek dosyalar için nesnemiz

Smtp : SmtpMail; // Gönderim işini yapacak protokol sınıfından nesnesimiz.

BodyFormat : Gönderinin HTML mi yoksa Text dosyası biçimindemi gönderileceği

Smtp.SmtpServer := _SmtpHost; satırıyla bu maili gönderecek sunucu adresini belirtiyoruz. Sunucumuz local olduğundan fonksiyona geçilen bu parametrenin değeride localhost olacaktır.

From : gönderme işlemini yapan yerel hesaplardan biri.
&To : e-postanın gideceği adres.
Subject : Gönderinin başlığı/konusu
BodyEncoding : Gönderinin dili
Body : Gönderilecek mesaj
Attach : Gönderime Eklenecek dosya listesi

için kullanılmaktadır. E-Postanın alıcıya teslimi (Gönderilmesi) işlemini ise Smtp nesnesinin gönderilecek mail nesnesini parametre olarak alan Send yöntemi gerçekleştirmektedir. Gönderim esnasında oluşabilecek istisnai durumlarda gönderimin başarısız olduğunu Gonderimsonucu değişkeninin değerini ayarlayarak çözüyoruz.

Smtp nesnesine MailMessage sınıfından türeyen bir nesneyi parametre olarak vermek yerine tüm gönderimi
Smtp'nin ikinci tip send yöntemiylede (overload) tek seferde halledebiliriz. Ama ayrıntıya girmek, kodun okunurluğunu artırmak için ilk yöntemi tavsiye ederim.


Örnek Bir E-Posta Gönderelim.

Kod:
Procedure TWebForm_Uyelik_Basvuru.AktivasyonmesajiGonder(Const id,Ip,Bugun:String);
 Var
   HtmlMsg     : String;
Begin
  try
    HtmlMsg := 'Sayın <b>'+TextBox_GercekAd.Text+' '+TextBox_GercekSoyad.Text+
           ' :</b><br><p><a href="http://'+Ayarlar.SiteAdresi+'" _fcksavedurl=""http://'+Ayarlar.SiteAdresi+'"" _fcksavedurl=""http://'+Ayarlar.SiteAdresi+'"" _fcksavedurl=""http://'+Ayarlar.SiteAdresi+'"" target=_blank">Sittemiz</a> sitesine yaptığınız üyelik başvurunuzun aktifleştirilmesi için lütfen '+
           ' <a href="http://'+Ayarlar.SiteAdresi+'uyeaktivasyon.aspx?u='+TextBox_KullaniciAdi.Text+'&a='+id+'"><b>Burayı tıklayın</b></a><br>'+
           ' veya aşağıdaki adresi kopyalayıp web tarayıcınızın adres kısmına yapıştırın...<br></p><p>'+
           'Kullanıcı Adınız :<b>'+TextBox_KullaniciAdi.Text+'</b><br>'+
           'Parolanız        :<b>'+TextBox_Sifre.Text+'</b><br>'+
           'Aktivasyon Linki :<b><a href="http://'+Ayarlar.SiteAdresi+'uyeaktivasyon.aspx?u='+TextBox_KullaniciAdi.Text+'&a='+id+'">'+
                              'http://'+Ayarlar.SiteAdresi+'uyeaktivasyon.aspx?u='+TextBox_KullaniciAdi.Text+'&a='+id+'</a></b><br></p><br>';

   Ayarlar.EPostaGonder(Ayarlar.SiteMailAdresi,TextBox_EPosta.Text,'localhost','Uyelik Aktivasyonu',(HtmlMsg),MailFormat.Html);
  finally
   // mesaj logu tutulacak
  end;
End;


__________________
bir silahım olsaydı...




hiç bir farklılık ayrımcılığa neden olamaz.
Hürriyet Hürriyettir.

silentwolf isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 05:08.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.0
User Alert System provided by Advanced User Tagging v3.0.6 (Lite) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
ForumTayfa

Arşiv: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 102 103 104 105 106 155 156 157 158 159 160 161 162 163 164 167 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271


ForumTayfa - Link Değişimi
Telinka İletişim | Voip Ürünleri | Link Değişimine Katılın |

Sitemiz bir forum sitesi olduğundan dolayı, kullanıcılar her türlü görüşlerini önceden onay olmadan anında siteye yazabilmektedir. ForumTayfa Yöneticileri mesajları itina ile kontrol etse de, bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Yine de sitemizde yasalara aykırı unsurlar bulursanız [email protected] email adresine bildirebilirsiniz, şikayetiniz incelendikten sonra en kısa sürede gereken yapılacaktır.

Any member of our web site has the right of adding comments instantly without getting permisson due to the forum structure of our site basis. Althought, our site modarators check comments with care, all the responsibilities sourced from these comments directly belong to the members. If you still find any illegal content in our site ( A.buse, H.arassment, S.camming, H.acking, W.arez, C.rack, D.ivx, Mp.3 or any Illegal Activity ), please report us via [email protected] .Your reports will be evaluated as soon as the arrival of your e-mail.