Przykład usługi internetowej Poczta elektroniczna EMAIL SMTP,POP3 i MAP4 Zarys tematyki obsługi poczty Struktura wiadomości opisana w dokumentach RFC822 MIME Transport wiadomości w sieci Architektura klient-serwer Agenci użytkowników, serwery, przekaźniki wysyłanie SMTP Simple Mail Transfer Protocol odbieranie POP3 (Post Office Protocol), IMAP4 ( Internet Message Access Protocol) 2 1
Email konstrukcja, struktura RFC822 Nagłówki[headers] <pusta linia> Zawartość [Body] Typowe nagłówki zobaczymy Tylko tekst!!!! Multipurpose Internet Mail Extensions (MIME) N. Borenstein, N. Freed, RFC1521, 1993 Email body Opis obiektu, typ obiektu Key Headers MIME-Version Content-Transfer- Encoding how binary is mapped to ASCII Content-Type 3 MIME Content-Types (przykłady) Hierarchiczny układ przykłady Text/Plain Image/Gif Image/Jpeg Application/Octet-stream Application/Postscript Multipart/Mixed Złożone i mieszane (Multipart/Mixed) Separatory części ( unikalne!!!!! Ciągi znaków) boundary="------------c725bd4ec548463c 4 2
Typowe nagłówki i parametry konfiguracyjne FROM: od kogo, nadawca TO: adresat, adresaci główni CC: Carbon Copy (adresaci kopii) BCC: Blind Carbon Copy (adresaci kopii) Subject: temat RETURN-PATH (RETURN-TO): zwrot Inne: DATE, X-???, np. X-MAILER 5 Mail przykład Return-Path: <siropulu@hal.forthnet.gr> Received: from zsku.zsk.p.lodz.pl (zsku.zsk.p.lodz.pl [212.51.220.2]) by zskl.zsk.p.lodz.pl (8.12.8/8.12.8) with ESMTP id i159c5zn029235 for <arendt@zskl.zsk.p.lodz.pl>; Thu, 5 Feb 2004 10:38:05 +0100 Received: from forthnet.gr (athmta01.forthnet.gr [193.92.150.23]) by zsku.zsk.p.lodz.pl (8.12.2/8.12.2) with ESMTP id i159v9fn020520 for <arendt@zsk.p.lodz.pl>; Thu, 5 Feb 2004 10:31:17 +0100 (MET) Received: from hewlettnw969vm (ppp1-16.hal.forthnet.gr [213.16.238.16]) by forthnet.gr (8.12.2-20030919/8.12.2) with SMTP id i159bux9021137 for <arendt@zsk.p.lodz.pl>; Thu, 5 Feb 2004 11:37:41 +0200 Message-ID: <001901c3ebcb$ab5fb310$10ee10d5@hewlettnw969vm> From: =?iso-8859-7?b?09xrz9dp1cvp1sdbw83h?= <siropulu@hal.forthnet.gr> To: "Daniel Arendt" <arendt@zsk.p.lodz.pl> Subject: Re: house Agni Date: Thu, 5 Feb 2004 11:37:22 +0200 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_nextpart_000_0016_01c3ebdc.6b5cc440" X-Priority: 3 X-MSMail-Priority: Normal This is a multi-part message in MIME format. ------=_NextPart_000_0016_01C3EBDC.6B5CC440 Content-Type: text/plain; charset="iso-8859-7" Content-Transfer-Encoding: quoted-printable Dear Daniel,. Agni Siropoulou =20 ------=_NextPart_000_0016_01C3EBDC.6B5CC440 Content-Type: text/html; charset="iso-8859-7" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD>. ------=_NextPart_000_0016_01C3EBDC.6B5CC440 6 3
Mail przenoszenie: Agenci użytkownika (UA), Serwery, Przekaźniki UA nadawca Przekaźnik SERWER odbiorca UA odbiorca SERWER odbiorca (zastępczy) SERWER docelowy Przekaźnik Przekaźnik Widać drogę w polach Received: w nagłówku 7 Przykład Received: Received: from zsku.zsk.p.lodz.pl (zsku.zsk.p.lodz.pl [212.51.220.2]) by zskl.zsk.p.lodz.pl (8.12.8/8.12.8) with ESMTP id i5nerzv2027748 for <arendt@zskl.zsk.p.lodz.pl>; Wed, 23 Jun 2004 16:27:35 +0200 Received: from mailhub01.readyhosting.com (mailhub01.readyhosting.com [63.99.224.71]) by zsku.zsk.p.lodz.pl (8.12.2/8.12.2) with ESMTP id i5neoof8001446 for <arendt@zsk.p.lodz.pl>; Wed, 23 Jun 2004 16:24:24 +0200 (MET DST) Received: from kalampaka.com (mail021.readyhosting.com [63.99.224.34]) by mailhub01.readyhosting.com (Postfix) with ESMTP id 702EB1A72BB for <arendt@zsk.p.lodz.pl>; Wed, 23 Jun 2004 08:51:10-0500 (CDT) Received: from hotelrn3tro7yf [195.167.65.105] by kalampaka.com with ESMTP (SMTPD32-8.05) id A312134B0126; Wed, 23 Jun 2004 09:26:26-0500 8 4
SMTP Simple Mail Transfer Protocol +----------+ +----------+ +------+ User <--> SMTP +------+ Sender- Commands/Replies Receiver- +------+ SMTP <--------------> SMTP +------+ File <--> and Mail <--> File System System +------+ +----------+ +----------+ +------+ Sender-SMTP klient Receiver-SMTP serwer Model SMTP 9 SMTP wysyłanie email cel Niezawodne działanie Prostota implementacji Połączenie TCP na port 25 Minimum Implementation Commands HELO <SP> <domain> <CRLF> MAIL <SP> FROM:<reverse-path> <CRLF> RCPT <SP> TO:<forward-path> <CRLF> DATA QUIT RSET NOOP 10 5
SMTP sesja transmisji prompt:> telnet zsku.p.lodz.pl 25 220 zsku.zsk.p.lodz.pl ESMTP Sendmail 8.12.2/8.12.2; Mon, 28 Feb 2004 12:27:26 +0100 (MET) helo przedstawiam_sie 250 zsku.zsk.p.lodz.pl Hello blacknose.toya.net.pl [217.113.226.36], pleased to meet you rcpt to:arendt 250 2.1.5 arendt... Recipient ok data 354 Enter mail, end with "." on a line by itself To: zenek@szprycha.pl Cc: zenek@szprycha.pl Subject: temat Tresc. 250 2.0.0 j1sbrqm0011401 Message accepted for delivery Quit 221 2.0.0 zsku.zsk.p.lodz.pl closing connection Connection to host lost. prompt:> 11 SMTP efekt Return-Path: <smutny.mundek@o2.pl> Delivered-To: arendt@zskl.zsk.p.lodz.pl Received: from localhost (localhost [127.0.0.1]) by zskl.zsk.p.lodz.pl (Postfix) with ESMTP id 26A745DFB2 for <arendt@zskl.zsk.p.lodz.pl>; Mon, 28 Feb 2005 12:32:59 +0100 (CET) Received: from zskl.zsk.p.lodz.pl ([127.0.0.1]) by localhost (zskl.zsk.p.lodz.pl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07969-01 for <arendt@zskl.zsk.p.lodz.pl>; Mon, 28 Feb 2005 12:32:54 +0100 (CET) Received: from zsku.zsk.p.lodz.pl (zsku.zsk.p.lodz.pl [212.51.220.2]) by zskl.zsk.p.lodz.pl (Postfix) with ESMTP id 8D49E5DFAF for <arendt@zskl.zsk.p.lodz.pl>; Mon, 28 Feb 2005 12:32:54 +0100 (CET) Received: from zzzzz.aaaa (blacknose.toya.net.pl [217.113.226.36]) by zsku.zsk.p.lodz.pl (8.12.2/8.12.2) with SMTP id j1sbrqm0011401 for arendt; Mon, 28 Feb 2005 12:31:04 +0100 (MET) Date: Mon, 28 Feb 2005 12:27:26 +0100 (MET) From: smutny.mundek@o2.pl Message-Id: <200502281131.j1SBRQM0011401@zsku.zsk.p.lodz.pl> To: zenek@szprycha.pl Cc: zenek@szprycha.pl Subject: temat Tresc 12 6
Selected SMTP REPLY CODES (by function groups) 500 Syntax error, command unrecognized 501 Syntax error in parameters or arguments 503 Bad sequence of commands 211 System status, or system help reply 214 Help message 220 <domain> Service ready 221 <domain> Service closing transmission channel 421 <domain> Service t available, closing transmission channel 250 Requested mail action okay, completed 251 User t local; will forward to <forward-path> 450 Requested mail action t taken: mailbox unavailable 451 Requested action aborted: error in processing 452 Requested action t taken: insufficient system storage 552 Requested mail action aborted: exceeded storage allocation 354 Start mail input; end with <CRLF>.<CRLF> 554 Transaction failed 13 Odbiór Email- modele usług RFC 1733, M Crispin, 94 POP - Offline, IMAP - wszystkie Cecha / stan Offline Online Dis- ------- connected Can use multiple clients Y Y Minimum use of server connect time Y Y Minimum use of server resources Y Minimum use of client disk resources Y Multiple remote mailboxes Y Y Fast startup Y Mail processing when not online Y Y 14 7
Post Office Protocol - Version 3 (POP3) Odbiór emailów ze skrzynek Pozwala stacjom na dynamiczny dostęp do skrzynek pocztowych na serwerze Odbiór nagłówków Obiór całości Usuwanie Połączenie TCP na port 110 serwera 15 POP3 - stany, następstwo AUTHORIZATION: natychmiast po nawiązaniu połączenia TCP TRANSACTION: po pomyślnej autentykacji klienta gdy POP3 server zablokuje i otworzy skrzynkę (maildrop) UPDATE: klient wydał polecenie QUIT ze stanu TRANSACTION 16 8
POP3 komendy początek sesji Autentykacja, autoryzacja USER name PASS password APOP name digest - digest' jest funkcją MD5 obliczoną na podstawie znacznika czasu i hasłą znanego obu stronom ( client / server ) 17 POP3 w stanie po autoryzacji TRANSACTION STAT - status LIST list messages UIDL [msg] - unique-id listing RETR msg retrieve msg DELE msg delete msg QUIT enter UPDATE state UPDATE QUIT remove messages marked as deleted; release any lock on the maildrop and close the connection 18 9
Internet Message Access Protocol - Version 4rev1 (IMAP) zastosowanie Dostęp do zdalnych folderów (mailboxes) w taki sposób jakby były lokalnie dostępne - online Offline klient może być synchronizowany z serwerem operacje tworzenie, kasowanie i zmiana nazwy mailboxów Sprawdzanie nowych i kasowanie starych wiadomości przeglądanie, wyszukiwanie, selektywne pobieranie wiadomości, atrybutów, tekstów lub ich części 19 IMAP4 flagi i ich atrybuty \Seen \Answered \Deleted \Draft \Recent Była czytana Została wysłana odpowiedź Zaznaczona jako "deleted" skutek będzie po wykonaniu polecenia EXPUNGE Wiadomość nie została zakończona, wersja robocza (draft) Wiadomość ostatnio" napłynęła, tzn: to jest pierwsza sesja połączenia po wpłynięciu wiadomości 20 10
IMAP4 Stany serwera Non-Authenticated klient MUSI podać dane identyfikacyjne może nie wystąpić, jeśli identyfikacja wynika z połączenia Authenticated klient MUSI podać dane skrzynki mailbox Selected skrzynka mailbox została podana Logout serwer zamknie połączenie 21 IMAP4 = Server State = maszyna stanów (1) connection without pre-authentication (OK greeting) (2) pre-authenticated connection (PREAUTH greeting) (3) rejected connection (BYE greeting) (4) successful LOGIN or AUTHENTICATE command (5) successful SELECT or EXAMINE command (6) CLOSE command, or failed SELECT or EXAMINE command (7) LOGOUT command, server shutdown, or connection closed +--------------------------------------+ initial connection and server greeting +--------------------------------------+ (1) (2) (3) VV +-----------------+ non-authenticated +-----------------+ (7) (4) VV VV +----------------+ authenticated <=++ +----------------+ (7) (5) (6) VV +--------+ selected ==++ +--------+ (7) VV VV VV VV +--------------------------------------+ logout and close connection 22 +--------------------------------------+ 11
IMAP4 polecenia klienta Any State LOGOUT Non-Authenticated AUTHENTICATE authentication mechanism name LOGIN username password Authenticated SELECT mailbox_name CREATE mailbox_name DELETE mailbox_name SUBSCRIBE mailbox_name STATUS mailbox_name 23 12