r07.pdf

(188 KB) Pobierz
r07
Wysyłanie poczty elektronicznej
PROTOKÓŁ SMTP
2
1. Krótka historia
Mimo nowych mo liwo ci, jakie daj komunikatory, e-mail ci gle zyskuje na
popularno ci i znaczeniu. Z bada rynku przeprowadzonych przez IDC wynika, e w roku
2005 mo na si spodziewa 36 miliardów e-maili dziennie! W roku 2000 w u yciu było
około 505 milionów skrzynek poczty elektronicznej, w roku 2005 t form komunikacji
ma si ju posługiwa ok. 1,2 mld u ytkowników.
Wszystko zacz ło si w roku 1971 w sposób, który trudno byłoby nazwa
spektakularnym. Technik w BBN, Ray Tomlinson, przestał e-mail mi dzy dwoma
komputerami, które były poł czone w sieci ARPAnet. Poszukuj c rzadko u ywanego
znaku dla wyró nienia poczty elektronicznej odkrył @ i w ten sposób ustanowił symbol
nowej epoki.
Kolejnym krokiem milowym w historii poczty elektronicznej było opracowane w roku
1981 przez Erica Allmana oprogramowanie Sendmail. Umo liwiło ono po raz pierwszy
wysyłanie za pomoc programu pocztowego wiadomo ci jednocze nie do wielu sieci.
Dzisiejszy sukces e-maila był nie do przewidzenia w roku 1971 i wynalazek Thomlinsona
zasłu ył sobie tylko na kilka wzmianek w prasie. Dzi nie sposób wyobrazi sobie ycia
bez poczty elektronicznej, a dla wielu ludzi jest ona wr cz warunkiem funkcjonowania.
Poczta elektroniczna opiera si na trzech protokółach – SMTP do wysyłania oraz POP
i IMAP do odbioru. Specyfikacj ka dego protokołu opisano w jednym lub kilku RFC.
2. Simple Mail Transfer Protocol – SMTP
Zadaniem SMTP jest niezawodny i wydajny transport wiadomo ci. Protokół ten jest
niezale ny od protokołu sieciowego; zwykle stosowany jest standardowy protokół
Internetu, TCP. Komunikacja odbywa si przez port 25.
Za wymian wiadomo ci odpowiadaj tzw. mail transfer agents (MTA). Najbardziej
znanym MTA jest Sendmail. U ytkownik zwykle nie ma z nimi bezpo rednio do
czynienia. Dostaw poczty do i z MTA zajmuj si klienty pocztowe, takie jak Outlook
czy KMail. MTA komunikuj si mi dzy sob za pomoc zwykłych znaków ASCII.
Klient wysyła polecenia do serwera, który odpowiada za pomoc kodu numerycznego
i opcjonalnego ci gu znaków.
Simple Mail Transfer Protocol ma jednak jedn , istotn wad – po wystaniu e-maila nie
otrzymuje si adnej wiadomo ci o jego dalszych losach. Specyfikacja przewiduje
http://sieci-komputerowe.w.interia.pl
jm.webmaster@gazeta.pl
3
wprawdzie powiadomienie nadawcy w sytuacji, gdy wiadomo nie mo e by
dostarczona. Nie jest okre lone jednoznacznie, jak taka wiadomo ma wygl da . Zwykle
jest to e-mail z komunikatem o bł dzie i nagłówkiem niedostarczonej wiadomo ci.
Ze wzgl du na brak standardu w praktyce rzadko udaje si ustali , gdzie i dlaczego
wyst pił bł d.
Dlatego te opracowano rozszerzenie SMTP, definiuj ce standardowe powiadomienia
o bł dach. Niestety bardzo niewiele serwerów obsługuje obecnie to rozszerzenie.
2.1. Proces SMTP
Rys.: Sie o topologii magistrali
ródło: Komar, B. (2002). TCP/IP dla ka dego. Gliwice: Helion, strona 373
Typowe poł cznie SMTP składa si z etapów:
· Klient SMTP inicjuje poł czenie z serwerem SMTP. Klient korzysta z losowo
wybranego portu o numerze powy ej 1024 i ł czy si z portem serwera
o numerze 25. Serwer sygnalizuje akceptacj poł czenia komunikatem 220
<Ready>
· Klient da ustanowienia sesji poprzez wysłanie polecenia HELO (ang. Hello)
lub EHLO (ang. Extended Hello). Polecenie to powinno zawiera pełn nazw
(FQDN) klienta. Serwer odpowiada komunikatem 250 <OK>
· Klient informuje serwer, kto wysyła wiadomo , wykorzystuj c polecenie MAIL
FROM: <Adres>, gdzie <Adres> jest adresem poczty elektronicznej
u ytkownika wysyłaj cego. Zazwyczaj odpowiada on adresowi zwrotnemu
http://sieci-komputerowe.w.interia.pl
jm.webmaster@gazeta.pl
9799745.002.png
4
okre lonemu w programie pocztowym klienta. Serwer ponownie powinien
odpowiedzie komunikatem 250 <OK>.
· Klient okre la nast pnie wszystkich odbiorców, do których wiadomo jest
skierowana. Korzysta w tym celu z polecenia RCPT TO: <Adres>. Je eli serwer
obsługuje wielu odbiorców, dla ka dego z nich przesyłane jest kolejne polecenie
RCPT TO:. Odpowiedzi serwera na informacj o ka dym kolejnym odbiorcy
jest komunikat 250 <OK>.
· Klient informuje o gotowo ci do przesyłania wła ciwej wiadomo ci
komunikatem DATA. Serwer odpowiada komunikatem 250 <OK>. Okre la
równie ci g znaków, który spodziewa si otrzyma na znak ko ca tre ci
wiadomo ci. Najcz ciej jest to [CR][LF].[CR][LF]. Potem nast puje przesłanie
do serwera tej e tre ci. Wiadomo przesyłana jest przy u yciu znaków 7-
bitowego ASCII. Je eli towarzysz jej zał czniki, musz one zosta
przetworzone do tej postaci. Wykorzystuje si do tego celu mechanizm BinHex,
uuencode lub MIME.
· Po zako czeniu transmitowania wiadomo ci, klient wysyła polecenie QUIT
ko cz ce sesj SMTP. Serwer odpowiada komunikatem 221 <C1osing>, co
oznacza, e nast piło zako czenie sesji. Je eli klient wysyła nast pn
wiadomo , proces ponownie rozpoczyna si od polecenia MAIL FROM:.
Rys.: Droga e-maila od nadawcy do odbiorcy
ródło: „PC World Komputer PRO”. Nr 3/2003
2.2. Polecenia protokołu SMTP
Polecenie definiuj sposób przesyłania e-maili. Zgodnie ze specyfikacj
implementcaja SMTP musi obsługiwa co najmniej osiem polece :
http://sieci-komputerowe.w.interia.pl
jm.webmaster@gazeta.pl
9799745.003.png
5
Tabela 1. Polecenia SMTP.
POLECENIE
OPIS
HELO
Inicjuje poł czenie i identyfikuje nadawc SMTP dla odbiorcy SMTP
MAIL
Inicjuje transakcj pocztow
RCPT
Identyfikuje pojedynczego adresata
DATA
Identyfikuje wiersze nast puj ce po poleceniu jako dane pocztowe od
nadawcy
RSET
Przerywa bie c transakcj pocztow
SEND
Dostarcza poczt do terminala
SOML
Dostarcza poczt do terminala. Je eli ta operacja si nie powiedzie,
poczta zostanie dostarczona do skrzynki pocztowej
SAML
Dostarcza poczt do terminala. Poczta jest równie dostarczana do
skrzynki pocztowej
VRFY
Weryfikuje nazw u ytkownika
EXPN
Rozwija list dystrybucyjn
HELP
Sprawia, e odbiorca wysyła przydatne informacje
NOOP
da, by odbiorca wysłał odpowied OK, ale w przeciwnym razie nie
okre la adnych działa
QUIT
da, by odbiorca wysłał odpowied OK, a nast pnie zamkn ł kanał
transmisyjny
TURN
da, by odbiorca przej ł rol nadawcy. Je eli zostanie otrzymana
odpowied OK, to nadawca staje si odbiorc
2.3. Kody odpowiedzi SMTP
Kody odpowiedzi SMTP gwarantuj , e klient jest na bie co informowany o statusie
serwera. Ka de polecenie wymaga kodu odpowiedzi od serwera. Klient decyduje
o sposobie dalszego post powania wył cznie na podstawie otrzymanych zwrotnie
kodów numerycznych.
Tabela 2. Kody odpowiedzi SMTP
KOD
ZNACZENIE
211
Odpowied stanu systemu lub pomocy systemowej.
214
Komunikat pomocy.
220
Usługa gotowa.
http://sieci-komputerowe.w.interia.pl
jm.webmaster@gazeta.pl
9799745.004.png 9799745.005.png 9799745.001.png
Zgłoś jeśli naruszono regulamin