BilgiTeknoloji.net    
b i l g i   t e k n o l o j i   y a z ı l ı m

Ana Sayfa

Marjinal XML Access Pratik Uygulamalar Projeler Ekonometri Dilimiz Editörden Çetrefil İletişim
 
kendin yap
E-mail Sunucusu (POP3 Server)

Bu makalede Delphi'de kendi yaptığımız e-mail sunucumuzdan Outlook Express ile e-mail almayı deneyeceğiz.

Delphi'de yeni bir proje açıp forma birer ServerSocket (Internet sayfası), Memo, Edit ve Button nesnesi yerleştirin.

ServerSocket1'in Port değerini 110 ve Active değerini True yapın. Bir bilgisayarda aynı port sadece bir yerden açılabileceği için Exchange Server ya da başka bir Pop3 Server'ın olduğu bir bilgisayarda 110 no'lu portu açamazsınız.

Aşağıdaki kodları programa ekleyin:

  procedure TForm1.ServerSocket1Accept(Sender: TObject;
      Socket: TCustomWinSocket);
  begin
    memo1.lines.add(socket.remoteaddress + ' bağlandı.');
  end;

  procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
  begin
    memo1.lines.add(socket.receivetext);
    memo1.lines.delete(memo1.lines.count-1);
  end;

  procedure TForm1.btnGonderClick(Sender: TObject);
  begin
    ServerSocket1.Socket.Connections[0].SendText(edit1.text + #13#10);
    memo1.lines.add(edit1.text + #13#10);
  end;

Sonrasında Outlook Express'te yeni bir e-mail hesabı yapılandırmak gerekiyor. E-mail hesabının posta sunucusu adresine 127.0.0.1 yazın. Bu adres her zaman bilgisayarın kendisini ifade eder. Yani POP3 sunucumuz kendi bilgisayarımız. Kullanıcı adı ve parolanın olduğu yere istediğinizi yapabilirsiniz. Her türlü isim ve parolaya kapımız açık olacak.

Aşağıdaki diyalog Delphi'deki programı açıp Outlook Express ile e-mail yüklemeye çalışırken gerçekleşti. Kırmızılar OE'nin gönderdiği mesajlar. Maviler ise benim verdiğim cevaplar. 

  127.0.0.1 bağlandı.
  +OK hoşgeldin kardeş.

  USER deneme
  +OK parolayı gir.

  PASS şifre1
  +OK tamamdır.

  STAT
  +OK 1 126

  LIST
  +OK 1 messages (126 octets)
  1 126
  .

  RETR 1
  +OK
  From: Serkan
  To: Serkan
  Date: 4.5.2001
  
  deneme 1 2 3
  mesaj
  mesaj
  mesaj
  .

  DELE 1
  +OK tamam birinci mesajı sildim.

 
QUIT
 
+OK güle güle.
  
 

Diyalog esnasında OE'ye 1 yeni mesaj olduğunu ve büyüklüğünün 126 bayt olduğunu söyledim. Fakat OE mesajın sonunu anlamak için tek satırdaki nokta işaretini bekledi ve 126 bayttan çok az yüklemiş olmasına rağmen hata iletisi göstermedi.


Örnek programın çalıştırılabilir dosyasını buradan yükleyin.
Programın Delphi kodu ise burada.


Pop3 protokolü gibi e-mail gönderme için kullanılan SMTP protokolü de benzer şekilde çalışır ve onun da komutları kolaydır. Buna benzer FTP, NNTP gibi diğer bazı protokolleri kendiniz deneyerek öğrenebilirsiniz.


Serkan Şahinoğlu


http://BilgiTeknoloji.net