E-mail Programları nasıl çalışır
Bu yazıda e-mail programlarının ve e-mail sunucularının nasıl konuştuklarına dair bilgiler bulacaksınız. Ayrıca Delphi'de kendi yaptığımız e-mail sunucumuzdan Outlook Express ile e-mail almayı deneyeceğiz
E-mail Programları
Daha önce bazı yerlerde bahsettiğim Telnet ile e-mail'lerin kontrolü uygulaması yeterince yaygınlaştığı için bundan kısaca bahsedeceğim. İsteyenler Internet'te ve bilgisayar dergilerinde bununla ilgili ayrıntılı bilgiler bulabilirler.
ANLAŞMA İÇİN STANDART PROTOKOLLER
Mesajlaşma protokolleri aslında basit adımlar içerirler. Uluslararası kabul edilmiş bu protokoller bilgilerin her yerden aynı şekilde elde edilmesine olanak sağlarlar.
E-mail programları e-mail sunucularına bağlanır, kullanıcı adı ve parola bilgilerini iletip yetki tanımlaması beklerler. Yetki varsa program ne kadar e-mail olduğunu sorup bunları birer birer yüklerler ve size biçimlendirilmiş şekilde gösterirler.
Her prokolde olduğu gibi e-mail alma protokolü olan POP3 prokolünde bir port numarası kullanılır ve bu 110'dur. (Neden derseniz, özel bir nedeni yok. :-)
E-mail almak için belli bir IP ya da bilgisayar tanımlama adresinin 110 numaralı portuna bağlanmak yeterlidir. Örneğin www.deneme123.com ile mail.deneme123.com adresleri aynı bilgisayarı (yani IP adresini) işaret ediyorlarsa e-mail programında "mail." ile başlayan adres yerine "www." ile başlayan adresi de yazabilirsiniz. Hatta, biliyorsanız IP adresini de yazabilirsiniz.
Bu arada bir bilgisayarda 110 nolu port açık ise o bilgisayarı POP3 Server olarak kabul edebiliriz. Ama kimi zaman bu numara değiştirilebilir. Örneğin yerel ağ ortamındaki bir POP3 sunucu programında (Exchange Server) bunun yapılması mümkündür. Bu durumda kullandığınız e-mail programında bununla ilgili ayarı düzenlemek mümkündür. Outlook Express'te (OE) hesap ayarları bölümündeki Gelişmiş sayfasında POP3 bağlantı noktası (port) değerini değiştirebilirsiniz.
Bütün e-mail sunucuları (bundan sonra "POP3 sunucusu" diyeceğim) yetkili tanımlama gerektirir. Çünkü size ait olan posta kutusuna ulaşmak için bir kullanıcı adı ve parolaya ihtiyaç vardır. Sonrasında bağlandığınız bu POP3 sunucusu kendi üzerindeki size ait olan bilgilere ulaşıp yeni e-mail olup olmadığını kontrol eder.
POP3 sunucuları posta kutunuzu istediği şekilde saklayabilir. İster TXT dosyalarına ayırır, ister MDB dosyasında tutar, ister SQL Server'da tutar ya da başka yolu seçer. Yani burada önemli olan Outlook Express ile e-mail alırken aradaki diyaloğun standart olmasıdır.
TELNET İLE E-POSTA DENETLEME
Başlat/Run menüsünü çalıştırıp telnet mail.xxx.com 110 komutunu çalıştırın. Eğer mail.xxx.com ana bilgisayarı gerçekten bir POP3 sunucusu ise size,
+OK X1 NT-POP3 Server mail.xxx.com (IMail 6.06 102110-1)
gibi bir yanıt verecektir. Sonra sırayla alttaki komutları yazıp her seferinde +OK ile başlayan cevaplar gelmesini bekleyin. (Örnek adresimiz ahmet@xxx.com olsun.)
USER ahmet
+OK welcome
PASS *****
+OK maildrop locked and ready
(Bazan Telnet'te iken sizin yazdıklarınız ekranda görünmeyebilir. Yine de yazdıklarınız karşı tarafa iletilmektedir.)
Bu diyalog sonrasında kullanıcı adı ve parola doğrulanmış demektir. Sonrasında geçen şu diyaloğu inceleyebilirsiniz:
STAT
+OK 4 64423
LIST
+OK 4 messages (64423 octets)
1 1087
2 1623
3 48698
4 13015
.
Yukarıdaki diyalogda önce toplam mesaj sayısını ve bayt cinsinden büyüklüğün ne kadar olduğunu öğreniyoruz. Sonra her bir mesajın kaç bayt olduğunu.
Liste halinde uzayabilen konuşmaların bittiğini nokta işaretinden anlayabiliriz. Bu tür istemci-sunucu protokollerinde soru veya cevabın bittiği doğrudan anlaşılmaz. Bunun için bir satır sonu işareti ya da nokta gibi işaretler beklenebilir. Veyahut yukarıda olduğu gibi alınacak bilginin uzunluğu önceden öğrenilir. Çünkü bir taraf yanıt veremedeğinde karşı tarafın bunu doğru yorumlaması gerekir.
Mesajları almak için birkaç yol kullanılabilir. Yukarıda 4 mesaj bilgisi listelendiği için sırasıyla
RETR 1
RETR 2
..
komutları çalıştırılıp her biri için gerekli uzunlukta cevap beklenir. Outlook Express mesajı yüklemek için bu yolu kullanır. Fakat başka e-mail programları mesajların baş taraflarını
TOP 1 10
(1. mesajın ilk 10 satırı)
gibi bir komutla gösterebilirler. Tabii bunu siz Telnet ile de yapabilirsiniz.
BÜYÜK BİR E-MAIL POSTA KUTUSUNU KİLİTLİYORSA
Büyük bir e-mail posta kutunuza gelmişse Outlook Express ile bunu yüklemekte sorun yaşayabilirsiniz. Bu durumda Telnet'i kullanıp TOP komutu ile mesajın en azından baş tarafını öğrenebilirsiniz ve isterseniz silmek için DELE komutunu kullanabilirsiniz.
DELE 1
(Birinci mesajı sil.)
Böylelikle posta kutusunu tıkayan bu e-mail'i ortadan kaldırmış olursunuz. Tüm işlerinizi bitirdiğinizde QUIT komutu ile oturumdan çıkmalısınız. Herhangi bir durumda yaptığınız işlemleri geri almak mümkündür. Eğer bir mesajı yanlışlıkla sildiğinizi düşünüyorsanız RSET komutu gönderin. Zira silme işlemleri aslında oturum doğru bir şekilde kapatıldığında uygulanır.
Mesajlar alındıktan sonra Outlook Express DELE komutu ile aldığı mesajları sunucudan siler. Eğer Outlook Express'te "mesajların kopyasını sunucuda bırak" özelliği aktif değilse.
SUNUCUDA KOPYA BIRAK
Bu özellik açık olduğunda mesajın kopyasını sunucuda bırakılır. Böylelikle beşka bir yerden aynı mesajı yüklemeniz mümkündür. Normalde Outlook Express akıllı davranmasaydı, sunucudaki mesajları tekrar tekrar yükleyecekti. Sunucuda kopya bırakma özelliği açık olduğunda Outlook Express aynı mesajları tekrar yüklememek için TOP 1 0 (1. mesajın başından itibaren gövdesindeki 0 satır) komutu ile mesaıjn ön bilgilerini yükler. Buna Header denir. Bir e-mail üst bilgisi (header) aşağıdakine benzer şekildedir.
Received: from xx.xx.xx.xx [xx.xx.xx.xx] by xxx.com.tr
(SMTPD32-7.00) id AB573700A2; Sat, 01 Sep 2001 19:22:47 +0300
From: Bilisim Zirvesi Info <bilisim-zirvesi@interpro.com.tr>
Reply-To: bilisim-zirvesi@interpro.com.tr
To: "Bilisim Zirvesi" <bilisimzirvesi@bilisimzirvesi.com>
Message-ID: <LYRIS-115914-15651-xxx@bilisimzirvesi.com>
Subject: =?windows-1254?Q?ko=E7_bilgi_grubu_=FEirket_barda?=
Date: Sat, 1 Sep 2001 18:12:29 +0300
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0007_01C13311.A97BAD80"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6600
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600
List-Unsubscribe: <leave-bilisim@bilisimzirvesi.com>
X-RCPT-TO: <xxx@xxx.com.tr>
Status: U
X-UIDL: 296388384
Burada mesajı tanımlayıcı, dünyada tekrarlanması çok çok düşük bir ihtimal olan Message_ID bilgisi bulunuyor. OE de sunucuda kopyasını bıraktığı mesajları belki bu bilgiden faydalanarak anlayabiliyor. En azından ben öyle yapardım.
Outlook Express'in mesaj alışverişlerinde hangi komutları kullandığını görmek isterseniz Araçlar / Seçenekler / Bakım sayfasının en altında bulunan Sorun Giderme seçeneklerini işaretleyin. Bundan sonra Outlook dosyalarının olduğu yerde -ki bu klasörü Depo Klasörü düğmesini tıklatarak öğrenebilirsiniz- e-mail'ler için pop3.log adlı bir dosya oluşturulacak ve bütün diyaloglar buraya kaydedilecek.
Buraya kadar anlatılanlar aslında girizgah kısmıydı. Asıl konumuz bir POP3 server programı yapıp Outlook ile e-mail yüklemek.
Bunun için Delphi kullanacağız.
Konunun devamı aşağıdaki sayfada.
Devamı: Kendi E-mail Sunucunu Kendin Yap
Kaynak Serkan Şahinoğlu bilgiteknoloji.net/pratik/pratik001_nasil_calisir_email_programlari.asp
Daha önce bazı yerlerde bahsettiğim Telnet ile e-mail'lerin kontrolü uygulaması yeterince yaygınlaştığı için bundan kısaca bahsedeceğim. İsteyenler Internet'te ve bilgisayar dergilerinde bununla ilgili ayrıntılı bilgiler bulabilirler.
ANLAŞMA İÇİN STANDART PROTOKOLLER
Mesajlaşma protokolleri aslında basit adımlar içerirler. Uluslararası kabul edilmiş bu protokoller bilgilerin her yerden aynı şekilde elde edilmesine olanak sağlarlar.
E-mail programları e-mail sunucularına bağlanır, kullanıcı adı ve parola bilgilerini iletip yetki tanımlaması beklerler. Yetki varsa program ne kadar e-mail olduğunu sorup bunları birer birer yüklerler ve size biçimlendirilmiş şekilde gösterirler.
Her prokolde olduğu gibi e-mail alma protokolü olan POP3 prokolünde bir port numarası kullanılır ve bu 110'dur. (Neden derseniz, özel bir nedeni yok. :-)
E-mail almak için belli bir IP ya da bilgisayar tanımlama adresinin 110 numaralı portuna bağlanmak yeterlidir. Örneğin www.deneme123.com ile mail.deneme123.com adresleri aynı bilgisayarı (yani IP adresini) işaret ediyorlarsa e-mail programında "mail." ile başlayan adres yerine "www." ile başlayan adresi de yazabilirsiniz. Hatta, biliyorsanız IP adresini de yazabilirsiniz.
Bu arada bir bilgisayarda 110 nolu port açık ise o bilgisayarı POP3 Server olarak kabul edebiliriz. Ama kimi zaman bu numara değiştirilebilir. Örneğin yerel ağ ortamındaki bir POP3 sunucu programında (Exchange Server) bunun yapılması mümkündür. Bu durumda kullandığınız e-mail programında bununla ilgili ayarı düzenlemek mümkündür. Outlook Express'te (OE) hesap ayarları bölümündeki Gelişmiş sayfasında POP3 bağlantı noktası (port) değerini değiştirebilirsiniz.
Bütün e-mail sunucuları (bundan sonra "POP3 sunucusu" diyeceğim) yetkili tanımlama gerektirir. Çünkü size ait olan posta kutusuna ulaşmak için bir kullanıcı adı ve parolaya ihtiyaç vardır. Sonrasında bağlandığınız bu POP3 sunucusu kendi üzerindeki size ait olan bilgilere ulaşıp yeni e-mail olup olmadığını kontrol eder.
POP3 sunucuları posta kutunuzu istediği şekilde saklayabilir. İster TXT dosyalarına ayırır, ister MDB dosyasında tutar, ister SQL Server'da tutar ya da başka yolu seçer. Yani burada önemli olan Outlook Express ile e-mail alırken aradaki diyaloğun standart olmasıdır.
TELNET İLE E-POSTA DENETLEME
Başlat/Run menüsünü çalıştırıp telnet mail.xxx.com 110 komutunu çalıştırın. Eğer mail.xxx.com ana bilgisayarı gerçekten bir POP3 sunucusu ise size,
+OK X1 NT-POP3 Server mail.xxx.com (IMail 6.06 102110-1)
gibi bir yanıt verecektir. Sonra sırayla alttaki komutları yazıp her seferinde +OK ile başlayan cevaplar gelmesini bekleyin. (Örnek adresimiz ahmet@xxx.com olsun.)
USER ahmet
+OK welcome
PASS *****
+OK maildrop locked and ready
(Bazan Telnet'te iken sizin yazdıklarınız ekranda görünmeyebilir. Yine de yazdıklarınız karşı tarafa iletilmektedir.)
Bu diyalog sonrasında kullanıcı adı ve parola doğrulanmış demektir. Sonrasında geçen şu diyaloğu inceleyebilirsiniz:
STAT
+OK 4 64423
LIST
+OK 4 messages (64423 octets)
1 1087
2 1623
3 48698
4 13015
.
Yukarıdaki diyalogda önce toplam mesaj sayısını ve bayt cinsinden büyüklüğün ne kadar olduğunu öğreniyoruz. Sonra her bir mesajın kaç bayt olduğunu.
Liste halinde uzayabilen konuşmaların bittiğini nokta işaretinden anlayabiliriz. Bu tür istemci-sunucu protokollerinde soru veya cevabın bittiği doğrudan anlaşılmaz. Bunun için bir satır sonu işareti ya da nokta gibi işaretler beklenebilir. Veyahut yukarıda olduğu gibi alınacak bilginin uzunluğu önceden öğrenilir. Çünkü bir taraf yanıt veremedeğinde karşı tarafın bunu doğru yorumlaması gerekir.
Mesajları almak için birkaç yol kullanılabilir. Yukarıda 4 mesaj bilgisi listelendiği için sırasıyla
RETR 1
RETR 2
..
komutları çalıştırılıp her biri için gerekli uzunlukta cevap beklenir. Outlook Express mesajı yüklemek için bu yolu kullanır. Fakat başka e-mail programları mesajların baş taraflarını
TOP 1 10
(1. mesajın ilk 10 satırı)
gibi bir komutla gösterebilirler. Tabii bunu siz Telnet ile de yapabilirsiniz.
BÜYÜK BİR E-MAIL POSTA KUTUSUNU KİLİTLİYORSA
Büyük bir e-mail posta kutunuza gelmişse Outlook Express ile bunu yüklemekte sorun yaşayabilirsiniz. Bu durumda Telnet'i kullanıp TOP komutu ile mesajın en azından baş tarafını öğrenebilirsiniz ve isterseniz silmek için DELE komutunu kullanabilirsiniz.
DELE 1
(Birinci mesajı sil.)
Böylelikle posta kutusunu tıkayan bu e-mail'i ortadan kaldırmış olursunuz. Tüm işlerinizi bitirdiğinizde QUIT komutu ile oturumdan çıkmalısınız. Herhangi bir durumda yaptığınız işlemleri geri almak mümkündür. Eğer bir mesajı yanlışlıkla sildiğinizi düşünüyorsanız RSET komutu gönderin. Zira silme işlemleri aslında oturum doğru bir şekilde kapatıldığında uygulanır.
Mesajlar alındıktan sonra Outlook Express DELE komutu ile aldığı mesajları sunucudan siler. Eğer Outlook Express'te "mesajların kopyasını sunucuda bırak" özelliği aktif değilse.
SUNUCUDA KOPYA BIRAK
Bu özellik açık olduğunda mesajın kopyasını sunucuda bırakılır. Böylelikle beşka bir yerden aynı mesajı yüklemeniz mümkündür. Normalde Outlook Express akıllı davranmasaydı, sunucudaki mesajları tekrar tekrar yükleyecekti. Sunucuda kopya bırakma özelliği açık olduğunda Outlook Express aynı mesajları tekrar yüklememek için TOP 1 0 (1. mesajın başından itibaren gövdesindeki 0 satır) komutu ile mesaıjn ön bilgilerini yükler. Buna Header denir. Bir e-mail üst bilgisi (header) aşağıdakine benzer şekildedir.
Received: from xx.xx.xx.xx [xx.xx.xx.xx] by xxx.com.tr
(SMTPD32-7.00) id AB573700A2; Sat, 01 Sep 2001 19:22:47 +0300
From: Bilisim Zirvesi Info <bilisim-zirvesi@interpro.com.tr>
Reply-To: bilisim-zirvesi@interpro.com.tr
To: "Bilisim Zirvesi" <bilisimzirvesi@bilisimzirvesi.com>
Message-ID: <LYRIS-115914-15651-xxx@bilisimzirvesi.com>
Subject: =?windows-1254?Q?ko=E7_bilgi_grubu_=FEirket_barda?=
Date: Sat, 1 Sep 2001 18:12:29 +0300
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0007_01C13311.A97BAD80"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6600
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600
List-Unsubscribe: <leave-bilisim@bilisimzirvesi.com>
X-RCPT-TO: <xxx@xxx.com.tr>
Status: U
X-UIDL: 296388384
Burada mesajı tanımlayıcı, dünyada tekrarlanması çok çok düşük bir ihtimal olan Message_ID bilgisi bulunuyor. OE de sunucuda kopyasını bıraktığı mesajları belki bu bilgiden faydalanarak anlayabiliyor. En azından ben öyle yapardım.
Outlook Express'in mesaj alışverişlerinde hangi komutları kullandığını görmek isterseniz Araçlar / Seçenekler / Bakım sayfasının en altında bulunan Sorun Giderme seçeneklerini işaretleyin. Bundan sonra Outlook dosyalarının olduğu yerde -ki bu klasörü Depo Klasörü düğmesini tıklatarak öğrenebilirsiniz- e-mail'ler için pop3.log adlı bir dosya oluşturulacak ve bütün diyaloglar buraya kaydedilecek.
Buraya kadar anlatılanlar aslında girizgah kısmıydı. Asıl konumuz bir POP3 server programı yapıp Outlook ile e-mail yüklemek.
Bunun için Delphi kullanacağız.
Konunun devamı aşağıdaki sayfada.
Devamı: Kendi E-mail Sunucunu Kendin Yap
Kaynak Serkan Şahinoğlu bilgiteknoloji.net/pratik/pratik001_nasil_calisir_email_programlari.asp
Yorumunuzu Ekleyin
E-mail Programları nasıl çalışır Yorumları +2 Yorum