serwer POP3 i adres

0

mam takie pytanie gdybym napisał serwer POP3 (najpierw musze sie nauczyć ale pytam na zapas :) ) to jaki był by mój adres "e-mail" ?? czy to by było coś w stylu
COŚTAM@MÓJ_IP ?? a moze macie jakieś informacje gdzie moge sie dowiedzieć coś o serwerach pop3 lub znacie jakieś już gotowe ??

0

Poczytaj RFC, poszukaj w internecie, http://google.pl, dużo tego jest.
Żeby serwer odebrał poczte potrzebujesz znać protokół SMTP. POP3 lub IMAP są używane przez klientów pocztowych do odbioru poczty.

0

dzieki poszukam ale <ort>zaŁÓżmy</ort> że stworze ten serwer to jaki wtedy bedzie adres e-mail ?? a może to też w RFC pisze ??

0

Znak @ to to samo, co "at". Czyli jak masz cośtam@cośtam.pl, to oznacza to tyle, co użytkownik cośtam na serwerze cośtam.pl. Wnioskuję więc, że jak sobie założysz serwer, to adresem pocztowym będzie właśnie użytkownik@twój_ip.

0

dziękuje :) o to chodziło :) najpierw sobie ściągne jakiś już gotowy serwer "pobawie" sie nim troche a potem wezme sie za czytanie RFC

a mam takie pytanie bo przeczytałem w RFC że na początku serwer do klienta wysyła powitanie (geeting) wie ktoś może jak wygląda to powitanie ?? bo nie znalazłem tego w RFC :(

0

A to nie jest przypadkiem coś takiego, jak się połączysz z jakimś serwerem na porcie poczty (czyli zdaje się porcie 25) ?

0

no właśnie nie...<ort>na razie</ort> zrobiłem takie coś że jest serwer ustawiony na port 110 (Pop3) i nasłuchuje. Włączam ten programik i Outlooka...w outlooku ustawiam nowe konto i próbuje sie połączyć...wtedy pisze że sie łączy a na serwerku wyświetla że nawiązał połączenie...i teraz właśnie chyba serwer powinien coś wysłać...a potem klient ma wysłać nazwe uzytkownika i hasło :/ aha próbuje wysłać takie powitanie "+OK dewey POP3 server ready" a w OnClientRead dałem ShowMessage(Socket->RecitiveText()); żeby wiedzieć czy klient coś odpowie...ale nic nie odpowiada :( ale sie rozpisałem :p mam nadzieje że ktoś mi pomoże :)

0

a) z tego co k<ort>ojaze</ort> to faktycznie byl by to jego ip, chyba ze ma wpis MX w jakiejs domenie wskazujacy na jego kompa

b)
http://www.faqs.org/rfcs/rfc1939.html ;>>>
tam masz wszystko...
lacznie z przykladami etc ;>

c) poza tym uzyj telneta ;>
telnet poczta.onet.pl 110
i sprobuj sie sie zalogowac or sth, patrz co serv ci odpisuje etc

0

klient po nawiazaniu polaczenia powinien wyslac tekst "HELO", dopiero jak serwer odpowie, to mozna wysylac dalsze polecenia do serva.

PS. te jedno L to nie blad, tak musi byc...

0

hmmm tylko gdy sprawdzam OnClientRead to jest tak jak by klient nic nie wysyłał... serwer wykrywa beza problemu nowe połączenie z serwerem :/

0

hmmm tylko gdy sprawdzam OnClientRead to jest tak jak by klient nic nie wysyłał... serwer wykrywa beza problemu nowe połączenie z serwerem :/

A czego używasz? Send/ReceiveText, czy Send/ReceiveBuf?

0

no używam Send/ReceiveText... pewnie mi teraz powiecie że to powinno być Send/ReceiveBuf :/ czy mam racje ??

no używam Send/ReceiveText... pewnie mi teraz powiecie że to powinno być Send/ReceiveBuf :/ czy mam racje ??

<font color="darkred">[DOPISANE]</span>

Umieszczam tu swój kod (port w ClientSocket ustawiony jest na 110)

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ServerSocket1->Active=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
ServerSocket1->Active=false;    
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ServerSocket1Accept(TObject *Sender,
      TCustomWinSocket *Socket)
{
Memo1->Lines->Add("Nawiązano nowe połączenie: "+Socket->RemoteAddress);
Socket->SendText("+OK POP3 server ready");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
Memo1->Lines->Add(Socket->ReceiveText());
}

Może tu robie coś źle ??

0

sprobuj tak

void __fastcall TForm1::ServerSocket1Accept(TObject *Sender,
   TCustomWinSocket *Socket)
{
Memo1->Lines->Add("Nawiązano nowe połączenie: "+Socket->RemoteAddress);
Socket->SendText("+OK POP3 server ready" + "\\r\\n"); //nie pamietam jak to sie dodaje w cpp
}
0

no używam Send/ReceiveText... pewnie mi teraz powiecie że to powinno być Send/ReceiveBuf :/ czy mam racje ??

Masz całkowitą rację :). Nie wiedzieć czemu, Send/ReceiveText nie działa z serwerami/klientami, które nie stosują tej samej metody. Pewnie SendText wysyła jeszcze jakieś dodatkowe dane, których nie ma przy wysyłaniu bufora, a których ReceiveText się spodziewa. A kiedy ich nie dostanie, to ignoruje cały pakiet. Tak mi się wydaje.

0

sprobuj tak

void __fastcall TForm1::ServerSocket1Accept(TObject *Sender,
   TCustomWinSocket *Socket)
{
Memo1->Lines->Add("Nawiązano nowe połączenie: "+Socket->RemoteAddress);
Socket->SendText("+OK POP3 server ready" + "\\r\\n"); //nie pamietam jak to sie dodaje w cpp
}

Dziękuje :) to działa...a w pewnym momencie byłem juz tak blisko bo dodałem "\n"

Wszystkim dziękuje za pomoc :)

Prosze o nie zamykanie na razie tego tematu bo w razie nowych kłopotów bede pisał tutaj :)

0

No i mam kolejne pytanie :) chociaż pewnie sie nim totalnie skompromituje ale gdy klient wysyła STAT serwer musi odpowiedziec np tak:

+OK 2 200 i ta ostatnia liczba (200) jest to rozmiar wiadomości wyrażony w oktetach i to jest moje pytanie Co to są te oktety ?? :)

nie wyzywajcie jak to bedzie banalne pytanie ale jak szukałem na ggogle to mi tylko znajdywało informacje o zespołach ludowych ;-)

0

Może chodzi o rozmiar wiadomości wyrazony ósemkowo :P [OCT]

0

Co to są te oktety ??

Ja wiem, może po prostu chodzi o ilość znaków... 1 znak = 1 bajt = 8 bitów = oktet :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1