![]() |
|
|
#1 (permalink) |
|
Sil_Baştan
![]() Ü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 :
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
Ruh Hali:
|
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; 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;
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. |
|
|
|
![]() |
| Seçenekler | |
| Stil | |
|
|