ForumTayfa  

Geri git   ForumTayfa > Programlama Bölümü > Programlama > Pascal / Delphi / Delphi.Net
Kayıt ol Yardım Üye Listesi Forumları Okundu Kabul Et

Cevapla
 
LinkBack Seçenekler Stil
Alt 26.04.07, 17:11   #1 (permalink)
Sil_Baştan
 
silentwolf - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Dec 2006
Nerden: İstanbul
Mesaj Sayısı: 2.080
Konu Sayısı: 112
Takım: Fenerbahçe
Rep Gücü: 2900
Rep Puanı: 289622
Rep Derecesi : silentwolf 0-120000silentwolf 0-120000silentwolf 0-120000silentwolf 0-120000silentwolf 0-120000silentwolf 0-120000silentwolf 0-120000silentwolf 0-120000silentwolf 0-120000silentwolf 0-120000silentwolf 0-120000
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. Üye Olmak İçin Tıklayın...] 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



Seçenekler
Stil

Yetkileriniz
Yeni Mesaj yazma yetkiniz aktif değil dir.
Mesajlara Cevap verme yetkiniz aktif değil dir.
Eklenti ekleme yetkiniz aktif değil dir.
Kendi Mesajınızı değiştirme yetkiniz aktif değil dir.

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




Powered by vBulletin Version 3.6.4
Copyright ©2000 - 2007, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
ForumTayfa

Arşiv: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 58 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 167 168 169 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 225 226 227 228 229 230 231 232 233 234 235 236 237


ForumTayfa - Link Değişimi
ForumTayfa.Net | Sahil Oto | Nazhar | MySpace TopSites | Voip Destek | | Tamamıucuz.com | Link Değişimine Katılın |
ForumTayfa - Toplist
eXTReMe Tracker
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 iletisim@forumtayfa.com 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 iletisim@forumtayfa.com .Your reports will be evaluated as soon as the arrival of your e-mail.