Poczta elektroniczna

Transkrypt

Poczta elektroniczna
Poczta elektroniczna
Podstawowe protokoły:





SMTP - Simple Mail Transfer Protocol - RFC 821
POP - Post Office Protocol - RFC 1939
IMAP - Interactive Message Acces Protocol – RFC 2060
RFC 822 Standard for the Format of ARPA Internet Text Messages
RFCs 1521, 1522 Mime
1
Typowe środowisko poczty elektronicznej
2
Terminologia



User Agent: aplikacja pocztowa końcowego użytkownika;
klient poczty elektronicznej
Message Transfer Agent: odpowiedzialny za komunikację
ze zdalnymi hostami oraz transmisje i otrzymywanie
email-i
Mail Exchanger: host odpowiedzialny za pocztę wyslaną
na domenę
3
SMTP
Używany do wymiany komunikatów pomiędzy klientem
pocztowym i serwerem pocztowym oraz serwerami
pocztowymi (Message Transfer Agents).
MTA
SMTP
MTA
SMTP
MTA
File
System
UA
UA
4
Komendy SMTP
Komendy SMTP definiują transfer pocztowy lub funkcje
systemu pocztowego żądane przez użytkownika.
Komendy SMTP są ciągami znaków zakończonymi <CRLF>.
Każda komenda związana jest z pewną odpowiedzią,
reprezentowaną przez kod numeryczny.
Komendy i odpowiedzi nie są „case sensitive” (nie dotyczy to
nazw skrzynek pocztowych).
Przedstawimy teraz komendy SMTP, a następnie możliwe
odpowiedzi.
5
Komendy SMTP

HELO argument
Komenda ma na celu identyfikację nadawcy SMTP dla odbiorcy
SMTP. Pole argument zawiera nazwę hosta nadawcy. Odbiorca
SMTP wysyłając odpowiedź identyfikuje siebie dla nadawcy.
Komenda ta i odpowiedź OK. oznacza że nadawca i odbiorca
zainicjowali połączenie, wyczyścili tablice stanu oraz bufory.
6
HELO
7
Komendy SMTP

MAIL FROM: argument
Komenda ta inicjuje transakcję pocztową, w której dane będą dostarczone
do jednej lub kilku skrzynek pocztowych.
Argument zawiera ścieżkę nadawcy („reverse-path”). Ścieżka nadawcy
składa się z listy hostów oraz skrzynki nadawcy. Lista zawiera informacje
o hostach, przez które przeszła wiadomość. Jest używana dla odesłania
wiadomości, która nie może być dostarczona. Każdy „relay host” dodaje
siebie na początek listy.
8
MAIL from:
9
Komendy SMTP

RCPT TO: argument
Komenda ta jest używana do identyfikacji indywidualnego odbiorcy
wiadomości; wielu odbiorców uzyskujemy przez wielokrotne użycie tej
komendy.
Argumentem jest ścieżka docelowa („forward-path” składająca się z
opcjonalnej listy hostów i wymaganej skrzynki docelowej. Lista hostów
jest wyznacznikiem trasy i oznacza że wiadomość musi być przekazana
do następnego hosta na liście. Host przekazujący usuwa siebie z początku
listy i umieszcza na początku „reverse-path”. Kiedy wiadomość osiągnie
przeznaczenie odbiorca SMTP umieszcza ją w odpowiedniej skrzynce
pocztowej.
10
RCPT TO:
11
Komendy SMTP

DATA
Odbiorca traktuje linie występujące za tą komendą jako wiadomość od
nadawcy. Dane mogą zawierać znaki z alfabetu ASCII. Dane są
zakończone przez linię składająca się tylko z kropki tj. przez sekwencję
znaków "<CRLF>.<CRLF>„.
Odbiór zakończenia wymaga, aby odbiorca opracował otrzymane
informacje: „reverse-path”, „forward-path”, dane. Jeżeli opracowanie
zakończy się sukcesem odbiorca musi wysłać kod OK, w przeciwnym
razie wysyła komunikat o błędzie.
12
DATA
13
Komendy SMTP
RSET
Komenda ta przerywa aktualną transakcję pocztową. Adresy nadawców,
odbiorców i dane są porzucane – wszystkie tablice stanów i bufory są
czyszczone.

NOOP
Komenda ta nie wpływa na parametry wcześniej wydanych komend tj.
bufory „reverse-path”, „forward-path” i danych. Obiorca wysyła
odpowiedź OK. Wykorzystywana do sprawdzenia połączenia.

QUIT
Komenda określa, że odbiorca musi wysłać odpowiedź OK i następnie
zamykany jest kanał transmisyjny.

14
Przykład przerwanej sesji – wielu odbiorców













R: 220 MIT-Multics.ARPA Simple Mail Transfer Service Ready
S: HELO ISI-VAXA.ARPA
R: 250 MIT-Multics.ARPA
S: MAIL FROM:<[email protected]>
R: 250 OK
S: RCPT TO:<[email protected]>
R: 250 OK
S: RCPT TO:<[email protected]>
R: 550 No such user here
S: RSET
R: 250 OK
S: QUIT
R: 221 MIT-Multics.ARPA Service closing transmission channel
15
Komunikaty odpowiedzi
Serwer dla każdej otrzymanej komendy generuje i wysyła odpowiedź –
3 cyfrowy kod ze słownym opisem:
16
Komunikaty odpowiedzi

Każda cyfra kodu ma specjalne znaczenie:



pierwsza określa status komunikatu:
 1-3 – sukces
 4 - błąd tymczasowy
 5 - błąd
druga umieszcza odpowiedź w określonej kategorii
 0 - składnia (błąd składni)
 1 - informacja (odpowiedź jest informacją:status, help)
 2 - odpwiedż związana z obsługą kanału transmisyjnego
 3,4 – nieokreślone
 5 – odpowiedź systemu plikowego na żadanie transferu
lub konkretnej operacji pocztowej
trzecia cyfra dokładniej określa komunikat
17
Komunikaty odpowiedzi
Możliwe sekwencje komend i odpowiedzi:
CONNECTION ESTABLISHMENT
S:220 <domain> Service ready
E: 421 <domain> Service not available, closing transmission channel

HELO
S: 250 Requested mail action okay, completed
E: 500 Syntax error, command unrecognized
501 Syntax error in parameters or arguments
504 Command parameter not implemented
421 <domain> Service not available, closing transmission channel

18
Komunikaty odpowiedzi

MAIL
S: 250 Requested mail action okay, completed
E: 552 Requested mail action aborted: exceeded storage allocation
451 Requested action aborted: local error in processing
452 Requested action not taken: insufficient system storage
500 Syntax error, command unrecognized
501 Syntax error in parameters or arguments
421 <domain> Service not available, closing transmission channel
19
Komunikaty odpowiedzi
RCPT
S: 250 Requested mail action okay, completed
251 User not local; will forward to <forward-path>
E: 550 Requested action not taken: mailbox unavailable [E.g., mailbox not found, no
access]
551 User not local; please try <forward-path>
552 Requested mail action aborted: exceeded storage allocation
553 Requested action not taken: mailbox name not allowed
450 Requested mail action not taken: mailbox unavailable [E.g., mailbox busy]
451 Requested action aborted: local error in processing
452 Requested action not taken: insufficient system storage
500 Syntax error, command unrecognized
501 Syntax error in parameters or arguments
503 Bad sequence of commands
421 domain> Service not available, closing transmission channel

20
Komunikaty odpowiedzi
DATA
I: 354 Start mail input; end with <CRLF>.<CRLF>
S: 250
E: 552, 554, 451, 452 F: 451, 554, 500, 501, 503, 421

RSET
S: 250
E: 500, 501, 504, 421

NOOP
S: 250
E: 500, 421

QUIT
S: 221 <domain> Service closing transmission channel
E: 500

21
Format danych – RFC 822


SMTP dopuszcza tylko dane 128 znakowego alfabetu ASCII (7-mio
bitowe).
Dane binarne muszą być przekodowane np. używając algorytmu
Base64
22
Wiadomość
Wysyłany komunikat składa się z nagłówka oraz treści
Nagłówek ma postać:
Pole: wartość
Obowiązkowe są pola:
From:
Date:
i przynajmniej jedno z:
To:
Cc:
Bcc:
23
Wiadomość
Przykładowe opcjonalne pola:

Sender:

Reply-To:

Subject:

Priority:
Część nagłówka jest tworzona przez UA, część zaś dodawana automatycznie przez MTA
np. pole: Received
Treść wiadomości jest oddzielona od nagłówka pustą linią.
24
MIME (Multipurpose Internet Mail Extensions) – RFC 2045, 2056
MIME definiuje poprzez odpowiednie kodowanie definiuje
rozszerzenie wiadomości SMTP dla obsługi binarnych
załączników. MIME dołącza do wiadomości dodatkowe
nagłówki, które opisują sposób kodowania, poszczególne
części, z których składa się wiadomość, typ załączników
(pozwala klientowi odpowiednio je zinterpretować i
przedstawić).
25
MIME










From: [email protected]
To: [email protected]
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
26
MIME
MIME types
Content-Type: type/subtype; parameters
 Text
example subtypes: plain, html
 Image
example subtypes: jpeg, gif
 Audio
exampe subtypes: basic (8-bit mu-law encoded), 32kadpcm (32kbps
coding)
 Video
example subtypes: mpeg, quicktime
 Application
other data that must be processed by reader before “viewable”
example subtypes: msword, octet-stream
27
MIME – wiadomość z załącznikami
Multipart Type

From: [email protected]

To: [email protected]

Subject: Picture of yummy crepe.

MIME-Version: 1.0

Content-Type: multipart/mixed; boundary=98766789

--98766789

Content-Transfer-Encoding: quoted-printable

Content-Type: text/plain

Dear Bob,

Please find a picture of a crepe.

--98766789

Content-Transfer-Encoding: base64

Content-Type: image/jpeg

base64 encoded data .....

.........................

......base64 encoded data

--98766789--
28
Protokoły transferu poczty na stację roboczą

POP 3 Post Office Protocol [RFC 1939]




Autoryzacja
Transfer poczty z serwera na stację roboczą
Usuwanie poczty z serwera
IMAP Internet Mail Access Protocol [RFC 1730]


Autoryzacja
Operacje na poczcie na serwerze lub transfer poczty na stację
roboczą i synchronizcja operacji
29
POP – Post Office Protocol
Mail
Server
POP
UA
File
System


Używany do transferu poczty na stację roboczą
Trzy fazy działania:
 Autoryzacji
 Transakcji
 Uaktualnienia
30
Komendy POP3
Faza autoryzacji:

USER nazwa użytkownika

PASS hasło
Faza transakcji:

STAT
 Informuje nas o liczbie wiadomośći i ich rozmiarze

LIST [nr]
- Informuje nas o rozmiarze konkrtenej wiadomośći lib daje listę
zawierającą numer wiadomości i jej rozmiar

RETR nr
- pobiera wiadomość
31
Komendy POP3


DELE nr
– zaznacza wiadomość do usunięcia
NOOP
- testuje połączenie
Faza uaktualnienia:

RSET
- odznacza zaznaczone do usunięcia wiadomośći i kończy sesję.

QUIT
- usuwa zanaczone wiadomości i kończy sesję.
32
Sesja POP3



















S: +OK POP3 server ready
C: user alice
S: +OK
C: pass hungry
S: +OK user successfully logged on
C: list
S: 1 498
S: 2 912
S: .
C: retr 1
S: <message 1 contents>
S: .
C: dele 1
C: retr 2
S: <message 2 contents>
S: .
C: dele 2
C: quit
S: +OK POP3 server signing off
33
Komendy opcjonalne

TOP

– wysyła linie nagłówka wiadomości
APOP
- alternatywna autentyfikacja
34
IMAP



Zarządzanie
wiadomościami na
serwerze
Współpraca z wieloma
serwerami
Silniejsza autentyfikacja
np. w oparciu o Kerberos
35

Podobne dokumenty