You are on page 1of 34

CHNG 3

Cng vic pht trin cc h thng Mail (Mail System) i hi hnh thnh cc chun v Mail. iu ny gip cho vic gi nhn cc thng ip c m bo , lm cho nhng ngi cc ni khc nhau c th trao i thng tin cho nhau. C 2 chun v Mail quan trng nht v c s dng nhiu nht t trc n nay l X.400 v SMTP ( Simple Mail Transfer Protocol). SMTP thng i km vi chun POP3 v do hn ch ca SMTP m ngy nay ngi ta dng chun m rng ca n l ESMTP (Extended SMTP). Mc ch chnh ca X.400 l cho php cc mail c th c truyn nhn thng qua cc loi mng khc nhau bt chp cu hnh phn cng, h iu hnh mng , giao thc truyn dn c dng. Cn mc ch ca chun SMTP miu t cch iu khin cc thng ip trn mng Internet. iu quan trng ca chun SMTP l gi nh my nhn phi dng giao thc SMTP gi Mail cho 1 Server lun lun hot ng. Sau , ngi nhn s n ly Mail ca h t Server khi no h mun dng giao thc POP (Post Office Protocol), ngy nay POP c ci tin thnh POP3 (Post Officce Protocol vertion 3). Cc giao thc Mail thng dng : chun X.400, chun MAIP, SMTP (ESMTP), POP3 . y ch trnh by chi tit v POP3 v SMTP .

CC NGHI THC TRUYN NHN ---- ----

Phn 1

Giao thc SMTP (Simple Mail transfer Protocol )


-----***----B phn chnh ca h thng Internet Mail chnh l cc MTA ( Message Transfer Agent), cc MTA gi 1 vai tr quan trng trong vic chuyn giao email. V d sau khi mt ngi s dng gi mt bc mail ti hng i message, MTA s ly v chuyn n ti mt MTA khc. Qu trnh s tip tc tip din cho n khi message n c ni nhn. c th lin lc vi cc MTA thng qua kt ni TCP cc MTA ca h thng Internet Mail c th s dng nhiu nghi thc khc nhau chuyn giao cc thng tin (X400,ESMTP,....), Nhng y ta ch xt nghi thc SMTP. y l mt nghi thc cho php chuyn mail t im ny sang im khc cho n ch trn mng Internet. N c cu to bi tp cc cu lnh Client c th yu cu Sever thc hin mt s tc v v tp cc cu tr li Server hi p li cho Client v kt qu thc hin cc tc v . Mt chng trnh mun gi c mail th n phi bit a ch ca mt SMTP server. Server ny c nhim v chuyn mail n ni cn thit.

I- Gii thiu
Mt c trng quan trng ca SMTP l kh nng chia ca Mail qua mi trng dch v giao chuyn, mt dch v giao chuyn cung cp mt mi trng truyn thng lin qu trnh (Interprocess Communication Environment IPCE ). Mt mi trng truyn thng lin qu trnh c th bao gm mt Network, vi Network, hay mt tp hp con ca Network.

iu quan trng cho vic thc hin h thng giao chuyn (hay cc IPCE) one-to-one vi Network, mt qu trnh c th giao tip vi mt qu trnh khc thng qua vic nhn bit IPCE. Mail l ng dng hay l cch dng ca giao tip lin qu trnh, Mail c th giao tip gia cc qu trnh trong nhng IPCE khc bng cch chia ca thng qua mt qu trnh c kt ni n hai (hay nhiu ) IPCE. Chi tit hn Mail c th chia ca gia nhng Host trn h thng giao chuyn khc nhau bng mt Host trn c hai h thng chuyn giao.

II- M hnh SMTP


SMTP c thit k da trn m hnh giao tip sau: nh kt qu ca mt yu cu Mail ca user . Sender- SMTP thit lp mt knh hai ng vn chuyn n mt receiverSMTP . Receiver- SMTP c th l ch n cui cng hay mt trung gian. Nhng lnh SMTP c sinh ra bi Sender-SMTP gi n Receiver- SMTP. Nhng reply SMTP c gi t Receiver- SMTP n Sender- SMTP trong s p ng cho nhng lnh . Khi mt knh giao chuyn c thit lp sender-SMTP gi i 1 lnh Mail biu th cho Sender ca mail . Nu Receiver-SMTP c th chp nhn mail, n tr li vi mt OK reply. Sau Sender-SMTP gi mt lnh RCPT nhn din Receiver mail nu ReceiverSMTP c th chp nhn mail n tr li vi 1 OK reply nu khng n s li vi 1 reply bc b receiver (nhng khng phi ton b s giao dch ). Sender- SMTP v ReceiverSMTP c th iu nh vi vi recipient, khi nhng recipient c dn xp SenderSMTP gi mail data kt thc vi mt chui c bit nu receiver x l mail data thnh cng n tr li vi 1 OK reply. Cuc hi thoi mt cch ch lock step (one-at-a-time). User File Syste m Sender SMTP
SMTP Commands/Replie s

and Mail

Receiv er
SMTP

File

Syst em

S trn l m hnh cho cch dng SMTP. SMTP cung cp nhng c ch giao chuyn Mail mt cch trc tip t Host ca User gi n host ca user nhn khi c hai host c kt ni n cng dch v giao chuyn hay qua nhiu SMTP-Sever tip vn khi host xut pht hay ch n khng c kt ni n cng dch v chuyn giao. c th cung cp kh nng tip vn SMTP-Sever phi c cung cp tn ca host n cng chng hn nh hn ca Mailhost n . i s ca lnh mail l 1 reverse-path n c t mail t u n; i s cho RCPT l 1 Forward-path n c t mail i n u. Forward-path l mt l trnh ngun, reverse-path l mt l trnh tr v (n c th c dng tr v mt message cho sender- khi xy ra li vi 1 message c tip vn). Khi cng mt message c gi cho nhiu recipient SMTP khuyn khch chuyn giao ch mt bn sao ca data cho tt c cc Receiver cng mt host ch. Nhng command v reply mail c nhng c php khc khe. Nhng reply cng c mt m s. Trong nhng th d theo sau s xut hin nhng lnh (commands) v nhng tr li (replies) , mt danh sch cc lnh v reply hon chnh trong phn 4.

SenderSMTP

ReceiverSMTP

Cc command v reply khng phn bit kiu ch hoa hay thng. Lu , iu ny khng ng vi tn ca User mailbox. Cho mt s host tn ca user c phn bit kiu ch, SMTP phi thi hnh y vic nhn kiu ch v gi gn kiu ch ca nhng user name nh chng xut hin trong nhng i s ca mailbox. Host names khng phn bit kiu ch. Cc command v reply l nhng k t c to ra t tp k t ASCII{1}, khi dch v vn chuyn cung cp mt knh chuyn giao 8 bit (octet). Mi mt k t 7 bit c truyn ng bng cch chuyn n v h 8 (octet) vi bit c th t cao nht b xa v 0. Khi c t cu trc thng thng ca command v reply, mt i s (hay mt k hiu c bit ) s c biu th bng mt bin meta-linguistic (hay mt hng s), v d nh : <string>, hay <reverse-path>. y du ngoc nhn ch nh chng l nhng bin meta-linguistic. Tuy nhin cc i s th dng du ngoc nhn mt cch literal. V d nh, mt reverse-path thc c bao trong du ngoc nhn nh, <John.Smith@USCISI.ARPA> l mt trng hp ca <reverse-path> (du ngoc nhn c giao chuyn trong command v reply l m thc ca n).

III . Mail
1- Khi qut : C 3 bc cho s giao dch SMTP mail. Giao dch c bt u vi yu cu Mail mang s nhn din sender, tip theo sau l mt chui ca mt hay nhiu lnh RCPT trao nhng thng tin ca receiver, sau mt lnh DATA cho mail data.V cui cng l phn ch nh kt thc mail data xc nhn giao dch . Bc u tin trong th tc l lnh MAIL...<reverse-path> cha mailbox ngun MAIL <SP> FROM : <reverse-path> <CRLF> Lnh ny bo cho receiver bit mt giao dch mail mi s bt u v reset tt c cc bng trng thi v cc buffer ca n bao gm tt c recipient hay mail data. N pht ra reverse-path c th c dng bo li. Nu c chp nhn receiver-SMTP tr v mt reply 250 OK. <Reverse-path> c th cha nhiu hn mt mailbox.<Reverse-path> l mt l trnh ngun tr v lit k cc host v mailbox ngun. Host u tin trong reverse-path s l host gi lnh ny. Bc th hai trong th tc ny l lnh RCPT RCPT <SP> To : <forward-path> <CRLF> Lnh ny pht i mt forward-path nhn din recipient. Nu c chp nhn receiver-SMTP tr v mt reply 250 OK. V lu li forward-path. Nu recipient khng nhn bit th receiver tr v reply 550 Failure. Bc th hai ca th tc ny c th lp li nhiu ln. Forward-path c th cha nhiu hn mt mailbox. Forward-path l l trnh ngun lit k cc host v mailbox ch. Host u tin trong <forword-path> s l host nhn lnh ny. Bc th ba trong th tc l lnh DATA DATA <CRLF> Nu chp nhn receiver-SMTP tr v mt reply 354 v coi tt c cc dng ni tip l message text. Khi vn bn cui cng c nhn v lu tr receiver-SMTP gi mt reply 250 OK.

K t mail data c gi trn knh chuyn giao, im kt thc ca mail data phi c ch nh hi thoi command v reply c th bt u tr li. SMTP ch nh kt thc ca mail data bng cch gi mt dng cha ch mt du chm. Ch rng mail data bao gm nhng mc (item) memo header chng hn nh Subject, To, Cc, From. Phn ch nh kt thc ca mail data cng xc nhn s giao dch mail v bo cho receiver-SMTP bit x l vic lu tr recipient v mail data ngay lc . Nu c chp nhn receiver-SMTP tr v mt reply 250 OK. Lnh DATA s ch fail nu giao dch mail khng hon thnh (v d khng c receiver) hoc nu ti nguyn khng c hiu lc. Th tc trn l mt v d ca mt giao dch mail. Nhng lnh ny ch c dng trong nhng trt t c trnh by trn. V d : Mt minh ha cch dng nhng lnh ny tron ut; end with <CRLF>.<CRLF> S: Blah blah blah... S: ...etc. etc. etc. S: <CRLF>.<CRLF> R: 250 OK By gi mail c chp nhn cho Jones v Brown. Green khng c mt mailbox trn Beta host. 2- S nh hng : C mt s trng hp thng tin ca ch n trong <forward-path> b sai nhng receiver-SMTP bit ch n ng. Trong trng hp nh vy mt trong nhng reply sau s c dng cho php sender tip xc ch n ng : 251 User not local ; will forward to <forward-path> Reply ny ch cho receiver-SMTP bit mailbox ca user nm trn mt host khc v ch nh forward-path ng sau s dng. Lu mt trong hai host hay user hay c hai c th khc nhau . Receiver chu trch nhim cho vic phn phi nhng message. 551 User not local ; please try <forward-path> Reply ny ch cho receiver-SMTP bit mailbox ca user nm trn mt host khc v ch nh forward-path ng s dng . Lu host hoc l user hay c hai c th khc nhau . Receiver t chi chp nhn mail cho user A. Sender phi nh hng li cho mail tu theo nhng thng tin c cung cp hoc l tr tr li error cho user khi u.V d sau minh ho cch dng ca nhng p ng ny : S: RCPT TO:Postel@USC-ISI.ARPA R: 251 User not local; will forward to <Postel@USC-ISIF.ARPA> Hay S: RCPT TO:<Paul@USC-ISIB.ARPA> R: 551 User not local; please try Mockapetris@USC-ISIF.ARPA 3- Kim tra v m rng : SMTP cung cp thm nhng im c trng, cc lnh kim tra mt user name hay m rng mt danh sch a ch c lm vi lnh VRFY v EXPN n dng i s

kiu chui k t. Vi lnh VRFY chui l mt user name, v cu tr li(response) c th bao gm full name ca user v phi bao gm mailbox ca user . Vi lnh EXPN chui nh danh mt danh sch a ch v cu tr li c nhiu dng c th cha full name ca cc user v phi cha nhng mailbox trn danh sch a ch (mailing list). Nu mt host c b sung lnh VRFY hay EXPN th t nht nhng mailbox cc b phi c tha nhn nh luser names. Nu mt host chn la tha nhn nhng chui khc nh user names th iu c cho php. Trong mt s host s phn bit gia mt mailing list v mt b danh cho single mailbox hi m h. T mt cu trc d liu ph bin c th gi c hai kiu phn t v n c th dng cc mailing list ca mt mailbox. Nu mt yu cu c to ra kim tra mt mailing list mt cu tr li khng nh c th c cho nu trn message nhn c c nh a ch n s c phn pht cho tt c mi ngi trong danh sch . Mt khc mt li s c bo co (e.g., "550 That is a mailing list, not a user"). Nu mt yu cu c to ra m rng mt user name mt cu tr li khng nh c th c cu hnh bng cch tr v mt danh sch cha mt tn hay mt li c th c bo co (e.g., "550 That is a user name, not a mailing list"). Trong trng hp mt reply nhiu dng (thng cho EXPN) l mt mailbox c c t trn tng dng ca reply mt cch chnh xc. Trong trng hp ny mt yu cu nhp nhng kh hiu nh : VRFY Smith c hai cu tr li ca Smith phi l "553 User ambiguous". V d kim tra mt user name S: VRFY Smith R: 250 Fred Smith <Smith@USC-ISIF.ARPA> Hay S: VRFY Smith R: 251 User not local; will forward to <Smith@USC-ISIQ.ARPA> Hay S: VRFY Jones R: 550 String does not match anything. Hay S: VRFY Jones R: 551 User not local; please try <Jones@USC-ISIQ.ARPA> Hay S: VRFY Gourzenkyinplatz R: 553 User ambiguous. Trng hp m rng mt mailbox list i hi mt reply nhiu dng xem trong v d sau: m rng mt mailing list (danh sch a ch) S: EXPN Example-People R: 250-Jon Postel <Postel@USC-ISIF.ARPA> R: 250-Fred Fonebone <Fonebone@USC-ISIQ.ARPA> R: 250-Sam Q. Smith <SQSmith@USC-ISIQ.ARPA> R: 250-Quincy Smith <@USC-ISIF.ARPA:Q-Smith@ISI-VAXA.ARPA> R: 250-<joe@foo-unix.ARPA> R: 250 <xyz@bar-unix.ARPA> Hay S: EXPN Executive-Washroom-List R: 550 Access Denied to You.

Nhng i s chui k t ca lnh VRFY v EXPN khng th vt qua gii hn c quyn trn s b sung a dng ca user name v khi nim mailbox. Trn mt s h thng n c th dnh ring cho i s ca lnh EXPN l mt file name cho mt file cha mt mailing list nhng li c mt qui c a dng ca vic c tn file trong internet. Lnh VRFY v EXPN khng c bao gm trong s thc thi ti thiu (trnh by trong phn sau) v khng c i hi lm vic thay ca khi chng c thc thi. 4- Sending and Mailing : Mc ch chnh ca SMTP l phn phi nhng message n nhng mailbox ca user . Mt dch v rt ph bin c cung cp bi mt s host l phn phi nhng message n nhng terminal ca user( cung cp cho user lm vic trn host ) . S phn pht n nhng mail box ca user c gi l mailing, s phn pht n nhng user terminal c gi l sending. Bi v mt s host c s thc thi ca sending gn ging vi s thc thi ca mailing chng l hai chc nng c lin kt vi SMTP. Mc d lnh sending khng bao gm trong yu cu thc thi ti thiu( xem phn sau). Nhng user c kh nng iu khin vic ghi message ln nhng terminal ca h. Hu ht cc host cho php chp nhn hay t chi nhng message. Ba lnh sau c nh ngha cung cp nhng option cho sending. Chng c dng trong giao dch mail thay cho lnh MAIL v cung cp cho receiver-SMTP nhng ng ngha giao dch c bit SEND <SP> FROM:<reverse-path> <CRLF> Lnh SEND i hi mail data c gi n user terminal. Nu user khng hot ng (hay khng chp nhn nhng terminal message) trn host mt reply 450 c th c tr cho mt lnh RCPT. Giao chuyn mail thnh cng khi message c phn pht n terminal. SOML <SP> FROM:<reverse-path> <CRLF> Lnh ny l SEND Or MAIL i hi mail data c phn pht n terminal ca user nu user ang hot ng (v chp nhn nhng message terminal) trn host . Nu user khng hot ng (haykhng chp nhn terminal message) th mail data c a vo trong mailbox ca user . Giao chuyn mail thnh cng khi message c phn pht n terminal hay mailbox. SAML <SP> FROM:<reverse-path> <CRLF> Lnh ny l SEND And MAIL i hi mail data c phn pht n terminal ca user nu user ang hot ng (v chp nhn nhng message terminal) trn host . Trong nhng tt c trng hp mail data c a vo trong mailbox ca user. Giao dch mail thnh cng khi message c phn pht n mailbox. Nhng m reply tng t c dng cho lnh MAIL cng c dng cho nhng lnh ny. 5- Opening and Closing : Ngay thi im m knh giao chuyn c open c mt s trao i m bo nhng host ang giao tip vi nhng host khc. Hai lnh sau c dng trong vic ng m knh truyn HELLO <SP> <domain><CRLF>

QUIT <CRLF> Trong lnh HELLO host ny gi i nhng nhn dng lnh ca n c th c dch nh "HELLO, I am <domain>". * V d m kt ni : Opening R : 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready S : HELO USC-ISIF.ARPA R: 250 BBN-UNIX.ARPA * V d ng kt ni : Closing S: QUIT R :221 BBN-UNIX.ARPA Service transmission channel. 6- Chia ca (Relaying) : Forward-path c th l mt l trnh ngun ca form "@ONE, @TWO:JOE@THREE" vi ONE ,TWO, THREE l cc host. Form ny c dng nhn mnh s phn bit gia mt address v mt route. Mailbox l mt address tuyt i, v route l thng tin v vic ly chng nh th no . Nhng thnh phn ca forward-path c chuyn n reverse-path khi message c chia ca t mt server SMTP n mt server-SMTP khc. Reverse-path l mt l trnh ngun tr v (khc vi mt l ngun l t v tr hin hnh ca message n im khi u ca message ). Khi mt server SMTP xa phn nhn dng ca n trong forward-path v chn phn nhn dng ca n vo trong reverse-path, n phi dng ci tn m n c bit ti trong mi trng m n s gi vo, khng phi l mi trng m mail t n, trong trng hp server-SMTP c bit n vi nhng tn khc nhau trong nhng mi trng khc nhau. Nu mt message n mt SMTP thnh phn u tin ca forward-path khng phi l phn nhn dng ca SMTP , thnh phn ny khng b xo trong forward-path v c dng xc nh SMTP k gi message n. Trong trng hp ny SMTP thm phn nhn dng ca n vo reverse-path.. Dng l trnh ngun receiver-SMTP nhn mail chia ca n mt server-SMTP khc. Receiver-SMTP c th chp nhn hoc bc b cng vic chia ca cho mail, nh cch n chp nhn hay bc b mail cho mt user cc b. Receiver-SMTP thay i nhng i s lnh bng cch chuyn phn nhn dng ca n t forward-path vo ch m u ca reverse-path. Sau receiver-SMTP tr thnh sender-SMTP, thit lp mt knh truyn n SMTP k trong forward-path,v gi mail cho n. Host u tin trong reverse-path s l host gi cc lnh SMTP v host u tin trong forward-path s l host cc nhn cc lnh SMTP . Lu rng forward-path v reverse-path xut hin trong cc lnh v cc reply SMTP, nhng n khng cn thit xut hin trong message . N khng cn thit cho nhng ng dn v c php c bit ny xut hin trong nhng field ca message header nh "To:" , "From:", "CC:",. Nu mt server-SMTP chp nhn cng vic chia ca mail v sau thy forwardpath khng ng hay mail khng th c phn pht c v bt c l do no, th n phi xy dng mt message thng bo "undeliverable mail" (mail khng th phn pht) v gi n n ni xut pht ca mail khng th phn pht (c ch nh trong reversepath). Message thng bo ny phi l t server-SMTP ti host . D nhin nhng server-

SMTP s khng gi nhng message thng bo v nhng s c xy ra cho message thng bo . Mt cch ngn chn s lp li trong vic thng bo li l c t mt null reversepath trong lnh MAIL ca message mt thng bo. Khi mt message thng bo nh vy c chia ca n c dng loi b reverse-path null. Mt lnh MAIL vi null reversepath nh di y: MAIL FROM:< > Thng bo ny nm trong tr li cho mt message c khi ng bi JOE ti HOSTW v gi thng qua HOSTX n HOSTY vi ch th chia ca n n HOSTZ, n l bc u tin trong vic tr v message thng bo . V d message thng bo mail khng th phn pht S: MAIL FROM:<> R: 250 ok S: RCPT TO:<@HOSTX.ARPA:JOE@HOSTW.ARPA> R: 250 ok S: DATA R: 354 send the mail data, end with . S: Date: 23 Oct 81 11:22:33 S: From: SMTP@HOSTY.ARPA S: To: JOE@HOSTW.ARPA S: Subject: Mail System Problem S: S: Sorry JOE, your message to SAM@HOSTZ.ARPA lost. S: HOSTZ.ARPA said this: S: "550 No Such User" S: . R: 250 ok 8-Thay i vai tr : Lnh TURN c th dng o vai tr ca hai chng trnh ang giao tip trn knh giao chuyn. Nu chng trnh A ang l sender-SMTP hin hnh v n gi lnh TURN v nhn mt reply OK(250) th chng trnh A tr thnh receiver-SMTP. Nu chng trnh B ang hin hnh receiver-SMTP hin hnh v n gi lnh TURN v nhn mt reply OK(250) th chng trnh B tr thnh sender-SMTP. t chi thay i vai tr receiver gi reply 502 Lu l lnh ny khng bt buc. Thng n khng c dng trong tnh trng knh giao chuyn l TCP. Tuy nhin khi tr gi cho vic thit lp knh giao chuyn cao, lnh ny c th rt c ch. V d nh lnh ny c ch trong vic h tr l trao i mail dng h thng public switched telephone lm mt knh giao chuyn, c bit nu mt s host c cc host khc cho vic trao i mail.

IV. c t SMTP
A. Nhng lnh SMTP (Commands SMTP) 1. Ng ngha lnh : Nhng lnh SMTP nh ngha s truyn mail hay chc nng ca h thng mail c yu cu bi user. Nhng lnh SMTP l nhng chui k t kt thc bng <CRLF>. Bn thn m lnh l nhng k t ch (alphabetic) kt thc bi <SP> nu c nhng tham

s theo sau v <CRLF> khc. C php ca nhng mailbox phi tun theo nhng tho hip pha receiver. Nhng reply SMTP c bn n trong phn B. Mt s giao dch mail bao gm vi i tng d liu c giao tip khi nhng i s cho cc lnh khc nhau. Reverse-path l i s ca lnh MAIL. Forward-path l i s ca lnh RCPT. V mail data l i s ca lnh DATA. Ba i s v nhng i tng d liu c duy tr cho n khi xc nhn truyn xong bi s ch nh kt thc ca mail data th tht s kt thc giao dch. M hnh cho n l nhng buffer ring bit c cung cp gi kiu ca i tng d liu. Mt s lnh c trng sinh ra thng tin c gn vo mt buffer c trng, hay lm cho mt hay nhiu buffer b xo. HELLO (HELO) : Lnh ny dng nh danh sender-SMTP n receiver-SMTP. Field i s cha host name ca sender-SMTP. Receiver-SMTP nh danh n n senderSMTP trong tr li bt tay cho vic kt ni, v trong cu tr li cho lnh ny.Lnh ny v mt reply OK xc nhn c hai sender-SMTP v receiver-SMTP ang trong tnh trng khi ng, iu l: khng c mt giao dch mail no ang tin hnh v tt c cc bng trng thi v buffer c xo. MAIL : Lnh ny c dng khi to mt giao dch mail trong mail data c phn phi n mt hay nhiu mailbox. Feild i s cha mt reverse-path. Rever _se path bao gm mt danh sch cc host tu v mailbox ca user. Khi danh sch cc host hon tt n l mt l trnh ngun tr v v ch nh mail c chia ca thng qua mi host trn danh sch (host u tin trong list l host chia ca gn nht). List ny c dng nh mt l trnh ngun tr v sender nhng thng bo khng th phn pht. Ti mi host chia ca n thm phn nh danh ca bn thn vo ch bt u ca list v phi dng tn ca n c bit trong IPCE ni n s chia ca mail n , ng hn l ICPE c mail n t (nu chng khc nhau). Trong mt s loi message thng bo li (v d thng bo mail khng th phn pht) reverse-path c th l null. RECIPIENT (RCPT) : Lnh ny dng nh danh mt recipient (ngi nhn) mail data ring l, nhiu recipient c c t bng nhiu lnh ny. Forward-path bao gm mt danh sch cc host tu v mt mailbox ch c yu cu. Khi danh sch host hon tt. N l mt l trnh ngun v ch nh mail phi c chia ca n host k tip trn list . Nu receiver-SMTP khng thc thi chc nng chia ca n c th dng c reply ny v s cho mt unknown local user (550). Khi mail c chia ca, host chia ca phi chuyn phn nh danh n t ch bt u forward-path v t vo ch bt u ca reverse-path. Khi mail tri ra ti ch cui cng (forward-path ch cha mt mailbox ch) receiver-SMTP Insert n vo trong mailbox ch trong s ng vi tho hip host mail ca n. V d mail c nhn ti host chia ca A vi nhng i s: FROM:<USERX@HOSTY.ARPA> TO:<@HOSTA.ARPA,@HOSTB.ARPA:USERC@HOSTD.ARPA> S c chia ca n host B vi i s FROM:<@HOSTA.ARPA:USERX@HOSTY.ARPA> TO:<@HOSTB.ARPA:USERC@HOSTD.ARPA>.

Lnh ny sinh ra i s forward-path ca n c gn vo forward-path buffer. DATA(DATA) : Receiver x l nhng dng theo sau lnh ny khi mail data t sender n. N lm cho mail data t lnh ny c ghi vo data buffer. Mail data ny c th cha nhng k t ca 128 m ACII. Data mail c kt thc bng mt dng ch cha mt du chm. l mt dy k t "<CRLF>. <CRLF>" (xem phn 4.D.2). V l ch nh kt thc ca mail data. S ch nh kt thc mt chui i hi receiver phi x l vic lu tr nhng thng tin giao dch mail ngay lp tc. Qu trnh x l ny dng thng tin trong reversepath buffer, forward-path buffer, mail data buffer, v khi hon tt lnh ny nhng buffer s b xoa c nhn, nhng message c chia ca s c nhiu dng nh du thi gian. Khi mt receiver-SMTP to ra final delivery ca mt message n insert vo ch bt u ca mail data mt dng return-path . Dng return-path bo qun thng tin trong reverse-path t lnh mail. y deliver final c ngha l message ri khi th gii SMTP. Thng thng c ngha l n c chuyn n user ch . nhng trong mt s trng hp n c th c x l na v v c giao chuyn bi h thng mail khc. C th cho mailbox trong return path l khc bit vi mailbox tht s ca sender, v d nh nu nhng tr li error c dng phn pht mt li c bit iu khin mailbox. Hai on trc ni mail data cui cng s bt u vi mt dng return path theo sau l mt hay nhiu dng nh du thi gian , sau nhng dng ny s l phn header v body ca mail data [2]. S cp c bit cn thit cho s tr li (response) v s hnh ng tip na c yu cu khi qu trnh x l theo sau s ch nh kt thc mail data l s thnh cng cc b. iu ny c th pht sinh nu sau khi chp nhn mt vi recipient v data mail receiver-SMTP thy mail data c th c phn pht n mt s recipient thnh cng nhng li khng th n nhng ngi khc (v d nh xy ra vn v vic ch nh v tr ca mailbox). Trong tnh trng nh vy cu tr li cho lnh DATA phi l mt reply OK. Nhng receiver-SMTP phi son v gi v ni xut x ca message mt message thng bo undelivered mail. Mt thng bo n lit k tt c cc recipient khng nhn c message, hay nhng message thng bo ring l phi c gi cho tng recipient mt , tt c nhng thng bo mail khng th phn pht c gi dng lnh MAIL (ngay c nu kt qu t qu trnh x l mt lnh SEND, SOML, hay SAML ). V d cho ng dn tr v v nhn nh du thi gian nhn Return-Path: <@GHI.ARPA,@DEF.ARPA,@ABC.ARPA:JOE@ABC.ARPA> Received: from GHI.ARPA by JKL.ARPA ; 27 Oct 81 15:27:39 PST Received: from DEF.ARPA by GHI.ARPA ; 27 Oct 81 15:15:13 PST Received: from ABC.ARPA by DEF.ARPA ; 27 Oct 81 15:01:59 PST Date: 27 Oct 81 15:01:01 PST From: JOE@ABC.ARPA Subject: Improved Mailing System Installed To: SAM@JKL.ARPA This is to inform you that ...

SEND (SEND) : Lnh ny dng khi to mt giao dch mail trong mail data c phn pht n mt hay nhiu terminal. Field i s cha mt reverse-path. Lnh ny thnh cng nu message c phn pht n mt terminal. Reverse-path bao gm mt list cc host v mailbox sender tu khi list hon tt, n l mt l trnh ngun tr v v ch nh mail c chia ca thng qua cc host trong list (host u tin trong list l host chia ca gn nht) danh sch ny c dng nh mt l trnh ngun tr v cho sender nhng thng bo v vic khng phn pht c. Khi mi host chia ca thm phn nh danh vo trong v tr bt u ca list , n phi dng tn m n c bit n trong IPCE ni n s chia ca mail ti , ng hn l IPCE c mail ti t . Lnh ny xo reverse-path buffer, forward-path buffer v mail data buffer v chn thng tin reverse-path t lnh ny vo trong reverse-path buffer. ?????????? END OR MAIL (SOML) : Lnh ny dng khi to mt giao dch mail trong mail data c phn pht n mt hay nhiu terminal hay mailbox. Cho tng recipient, data mail c phn pht n terminal ca recipient nu recipient ang hot ng trn host (v chp nhn nhng terminal message ), mt khc l n mailbox ca nhng recipient . Field i s cha mt reverse-path . Lnh ny thnh cng khi message c phn pht n mt terminal hay mailbox. Reverse-path bao gm mt danh sch cc host tu v mailbox ca sender . Khi danh sch cc host hon tt, n l mt l trnh ngun tr v v ch nh mail c chia ca thng qua cc host trn danh sch (host u tin trong danh sch l host chia ca gn nht). Danh sch ny c dng nh mt l trnh ngun tr v cho sender nhng thng bo v vic khng th phn pht. Khi mi host chia ca thm phn nh danh n vo ch bt u ca danh sch , n phi dng tn c bit n trong IPCE ni n s chia ca mail n ng hn l IPCE c mail n t (nu chng khc nhau). Lnh ny xo reverse-path buffer, forward-path buffer v mail data buffer v chn thng tin reverse-path t lnh ny vo trong reverse-path buffer. SEND AND MAIL (SAML) : Lnh ny dng khi to mt giao dch mail trong mail data c phn pht n mt hay nhiu terminal v cc mailbox. Cho tng recipient data mail c phn pht n terminal ca recipient nu recipient ang hot ng trn host (v chp nhn nhng terminal message ) v cho tt c recipient th n mailbox ca cc recipient o. Field i s cha mt reverse-path . lnh ny thnh cng khi message c phn pht n mailbox. Reverse-path bao gm mt danh sch cc host tu v mailbox ca sender. Khi danh sch hon tt n l mt l trnh ngun tr v v ch nh mail c chia ca thng qua cc host trong danh sch (host u tin trong danh sch l host chia ca gn nht ) Danh sch ny c dng nh mt l trnh ngun tr v cho sender nhng thng bo v vic khng th phn pht. Khi mi host chia ca thm phn nh danh n vo ch bt u ca danh sch n phi dng tn m n c bit n trong IPCE m n s chia ca mail n ng hn l IPCE m mail n t (nu chng khc nhau). Lnh ny xo reverse-path buffer, forward-path buffer v mail data buffer v chn thng tin reverse-path t lnh ny vo trong reverse-path buffer. ????????

RESET (RSET) : Lnh ny nh r giao dch mail hin hnh b hu b. Cc sender, recipient, mail data lu s b hu b v tt c cc bng trng thi, cc buffer b xo. Receiver phi gi mt reply OK. VERIFY (VRFY) : Lnh ny yu cu receiver xc nhn i s nh danh mt user. Nu n l mt user name, full name ca user (nu receiver bit) v mailbox c t y c tr v.Lnh ny khng nh hng n reverse-path buffer, forward-path buffer v data mail buffer. EXPAND (EXPN) : Lnh ny yu cu receiver xc nhn mt mailing list ( danh sch a ch) v tr v mt thnh phn trong danh sch . Full name ca cc user (nu bit) v nhng mailbox c c t y c tr v trong mt reply nhiu dng. Lnh ny khng nh hng n reverse-path buffer, forward-path buffer v data mail buffer. HELP (HELP) : Lnh ny lm cho receiver thng tin gip cho sender lnh HELP. Lnh ny c th nhn mt i s (c th l tn lnh) v tr v thng tin chi tit. Lnh ny khng nh hng n reverse-path buffer, forward-path buffer v data mail buffer. NOOP (NOOP) : Lnh ny khng nh hng cc tham s hay cc lnh c a vo trc n, n c t khng c mt hnh ng no khc hn l receiver gi mt reply OK. Lnh ny khng nh hng n reverse-path buffer, forward-path buffer v data mail buffer. QUIT (QUIT) : Lnh ny nh r receiver phi gi mt reply OK v sau ng knh giao dch . Receiver s khng ng knh giao dch cho n khi n nhn v tr li cho lnh QUIT (ngay c nu c mt li xy ra). Sender s khng ng knh giao dch cho n khi n gi mt lnh QUIT v nhn reply (ngay c nu c mt li tr li cho lnh trc ). Nu kt ni b ng trc thi gian mong mun receiver s lm vic nh va nhn c mt lnh RSET (b tt c cc giao dch ang treo m cha lm, nhng khng undo nhng giao dch hon tt trc ) sender s hnh ng nh nu lnh hay giao dch trong qu trnh x l nhn c mt li tm thi (4xx). TURN (TURN) : Lnh ny nh r receiver phi gi mt trong hai reply sau: (1) reply OK v sau nhn vai tr ca mt sender-SMTP, hay (2) gi mt reply t chi v gi li vai tr mt receiver-SMTP. Nu program-A hin ti l mt sender-SMTP gi mt lnh TURN v nhn mt reply OK (250) th program-A tr thnh receiver-SMTP sau program-A s trong trng thi khi ng ch nu knh giao chuyn c m, sau n ch nhn mt cho hi dch v sn sng 220. t chi thay i vai tr receiver gi mt reply 502. C s hn ch trong trt t khi dng nhng lnh ny. u tin trong mt cuc trao i phi l lnh HELLO, lnh ny c th c dng sau trong mt cuc trao i khc. Nu i s trong lnh HELLO khng c chp

nhn mt reply failure 501 phi c tr v v receiver-SMTP phi trong trng c. Nhng lnh NOOP, HELP, EXPAND v VRFY c th c dng nhiu ln trong mt cuc giao dch. Cc lnh MAIL, SEND, SOML, v SAML bt u mt giao dch mail. Khi bt u mt giao dch mail bao gm mt lnh khi to giao dch , mt hay nhiu lnh RCPT, v mt lnh DATA l mt trt t . mt giao dch mail c th c b qua bi mt lnh RSET c th c hay khng c nhiu giao dch trong mt cuc trao i (session). Nu i s ca lnh khi ng giao dch khng th chp nhn mt reply failure 501 phi c tr v v sercer-SMTP phi nm trong trng thi c. Nu nhng lnh trong cuc giao dch khng ng trt t mt reply failure 503 c tr v v receiverSMTP phi nm trong trng thi c. Lnh cui cng trong cuc trao i phi l lnh QUIT v lnh QUIT khng th c dng nhiu ln trong mt cuc trao i. 2- C php lnh : Nhng lnh ny bao gm mt m lnh theo sau l mt field i s . M lnh l bn k t ch . Nhng k t thng v hoa c x l nh nhau . Vy nhng t sau y c th i din cho lnh MAIL: MAIL Mail mail MaIl mAIl y cng dng mt s k hiu trnh by cho nhng gi tr ca tham s , chng hn nh TO hay to cho forward-path. M lnh v nhng field i s c tch ra bi mt hay nhiu khong trng. Tuy nhin bn trong nhng i s reverse-path v forwardpath kiu ch rt quan trng. Trong mt s host user vu khc vi user Vu. Field i s gm c mt bin chiu di chui k t, kt thc vi chui <CLRF>. Receiver khng nhn hnh ng cho n khi nhn c chui <CLRF> ny. Du ngoc vung biu th mt field i s tu . Nu khng nhn chn la ny mt defaul ph hp s c p dng.

Sau y l nhng lnh SMTP: HELO <SP> <domain> <CRLF> MAIL <SP> FROM:<reverse-path> <CRLF> RCPT <SP> TO:<forward-path> <CRLF> DATA <CRLF> RSET <CRLF> SEND <SP> FROM:<reverse-path> <CRLF> SOML <SP> FROM:<reverse-path> <CRLF> SAML <SP> FROM:<reverse-path> <CRLF> VRFY <SP> <string> <CRLF> EXPN <SP> <string> <CRLF> HELP [<SP> <string>] <CRLF> NOOP <CRLF> QUIT <CRLF> TURN <CRLF>

C php ca nhng field i s trn( dng k hiu BNF c th p dng c y) c cho bn di. K hiu ch nh m field c th c lp mt hay nhiu ln. <reverse-path> ::= <path> <forward-path> ::= <path> <path> ::= "<" [ <a-d-l> ":" ] <mailbox> ">" <a-d-l> ::= <at-domain> | <at-domain> "," <a-d-l> <at-domain> ::= "@" <domain> <domain> ::= <element> | <element> "." <domain> <element> ::= <name> | "#" <number> | "[" <dotnum> "]" <mailbox> ::= <local-part> "@" <domain> <local-part> ::= <dot-string> | <quoted-string> <name> ::= <a> <ldh-str> <let-dig> <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str> <let-dig> ::= <a> | <d> <let-dig-hyp> ::= <a> | <d> | "-" <dot-string> ::= <string> | <string> "." <dot-string> <string> ::= <char> | <char> <string> <quoted-string> ::= """ <qtext> """ <qtext> ::= "\" <x> | "\" <x> <qtext> | <q> | <q> <qtext> <char> ::= <c> | "\" <x> <dotnum> ::= <snum> "." <snum> "." <snum> "." <snum> <number> ::= <d> | <d> <number> <CRLF> ::= <CR> <LF> <CR> ::= the carriage return character (ASCII code 13) <LF> ::= the line feed character (ASCII code 10) <SP> ::= the space character (ASCII code 32) <snum> ::= one, two, or three digits representing a decimal integer value in the range 0 through 255 <a> ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case <c> ::= any one of the 128 ASCII characters, but not any <special> or <SP> <d> ::= any one of the ten digits 0 through 9 <q> ::= any one of the 128 ASCII characters except <CR>, <LF>, quote ("), or backslash (\) <x> ::= any one of the 128 ASCII characters (no exceptions) <special> ::= "<" | ">" | "(" | ")" | "[" | "]" | "\" | "." | "," | ";" | ":" | "@" """ | the control characters (ASCII codes 0 through 31 inclusive and 127) Ch du suyt ngc \ l mt k t nh t, n c dng ch nh k t k tip c dng mt cch literal (thay cho s thng dch thng thng ca n) v d nh "Van\,Sam" s c dng ch nh mt k t mt field by k t n vi du phy l k t th t ca field. Thng nhng host c bit n bng nhng ci tn , n c bin dch thnh a ch ca mi host. Lu tn phn t ca domains phi l tn chnh thc, khng dng tn hiu hay b danh.

Thnh thong mt host khng bit n chc nng bin dch v s giao tip b kho. pht l chng ngi ny hai cu trc dng s cng c chp nhn cho names ca host. Mt dng l mt s nguyn h thp phn nm sau k hiu gii hn # n ch nh s ny l a ch ca host. Mt dng khc l bn s nguyn nh bao trong du ngoc vung v cch nhau bi nhng du chm nh "[123.255.37.2]". N ch nh mt a ch 32 bitARPA internet trong bn field 8 bit. Dng nh du thi gian v dng ng dn tr v thng c nh ngha nh v d sau : <return-path-line> ::= "Return-Path:" <SP><reverse-path><CRLF> <time-stamp-line> ::= "Received:" <SP> <stamp> <CRLF> <stamp> ::= <from-domain> <by-domain> <opt-info> ";" <daytime> <from-domain> ::= "FROM" <SP> <domain> <SP> <by-domain> ::= "BY" <SP> <domain> <SP> <opt-info> ::= [<via>] [<with>] [<id>] [<for>] <via> ::= "VIA" <SP> <link> <SP> <with> ::= "WITH" <SP> <protocol> <SP> <id> ::= "ID" <SP> <string> <SP> <for> ::= "FOR" <SP> <path> <SP> <link> ::= The standard names for links are registered with the Network Information Center ( Tn chun cho nhng lin kt c ng k vi Net Work Information Center) <protocol> ::= The standard names for protocols are registered with the Network Information Center.( Tn chun cho nhng protocol c ng k vi Net Work Information Center) <daytime> ::= <SP> <date> <SP> <time> <date> ::= <dd> <SP> <mon> <SP> <yy> <time> ::= <hh> ":" <mm> ":" <ss> <SP> <zone> <dd> ::= the one or two decimal integer day of the month in the range 1 to 31. <mon> ::= "JAN" | "FEB" | "MAR" | "APR" | "MAY" | "JUN" | "JUL" | "AUG" | "SEP" | "OCT" | "NOV" | "DEC" <yy> ::= the two decimal integer year of the century in the range 00 to 99. <hh> ::= the two decimal integer hour of the day in the range 00 to 24. <mm> ::= the two decimal integer minute of the hour in the range 00 to 59. <ss> ::= the two decimal integer second of the minute in the range 00 to 59. <zone> ::= "UT" for Universal Time (the default) or other time zone designator (as in [2]). V d : Return Path Return-Path: <@CHARLIE.ARPA,@BAKER.ARPA:JOE@ABLE.ARPA> V d : dng nh du thi gian : Received: FROM ABC.ARPA BY XYZ.ARPA ; 22 OCT 81 09:23:59 PDT

Receive h by trong Sequencing ca phn V.3 v lc trng thi ca phn V.4 Mt reply SMTP bao gm mt s ba ch s (c truyn nh ba k t ch s) theo sau l mt s vn bn (text). S c dnh cho cc chng trnh t ng xc nh trng thi a vo k tip. Text trn c ngha cho user con ngi(khng phi my). Ba ch s c n nh cha y thng tin c m ho sender-SMTP khng cn kim tra text v c th hu b hay chuyn n qua mt user thch hp. c bit text ny c th c lp vi receiver v c lp vi ng cnh, do c s ging nhau trong nhng text khc nhau tng m reply. Nguyn l ca nhng m reply cho trong ph lc E. thng thng mt reply c nh ngha l chui gm: mt m ba ch s, <SP>, mt dng text, v <CRLF>, hay mt reply nhiu dng (nh nh ngha trong ph lc E) ch nhng lnh EXPN v HELP c kt qu l nhng reply nhiu dng trong nhng tnh hung bnh thng, tuy nhin nhng reply nhiu dng c chp nhn cho nhiu lnh. 1. Nhng m Reply cho mt nhm cc chc nng: 500 Li c php, khng chp nhp lnh [n c th bao gm nhng li nh: lnh qu di] 501 Li c php trong nhng i s hay nhng tham s lnh khng c cung cp dng lnh sai tham s ca lnh khng c cung cp 211 Trng thi h thng, hay tr li gip v h thng 214 Thng ip gip [thng tin v lm th no dng receiver hay ngha ca mt lnh khng chun c bit ; reply ny rt c ch cho ngi s dng] 220 <domain> dch v sn sng 221 <domain> dch v ng knh giao chuyn 421 <domain> dch v khng dng c, ng knh giao chuyn [n c th l mt reply cho nhiu lnh nu dch v bit reply ny phi shut down] 250 Hnh dng mail yu cu ok, hon thnh 251 User khng cc b, s hng n forward-path 450 Khng ly hnh ng mail yu cu: mailbox khng c hiu lc [chng hn nh mailbox khng tm thy, khng truy xut c] 451 B qua hnh ng c yu cu; li trong qu trnh x l 551 User khng cc b, vui lng th li <forward-path> 452 Khng nhn hnh ng c yu cu : lu tr ca h thng khng 552 B qua hnh ng mail yu cu: vt qu ch nh lu tr 553 Khng nhn hnh ng c yu cu : khng chp nhn tn mailbox [nh sai c php mailbox]. 554 Khi ng vic nhn mail; kt thc vi <CLRF>.<CLRF> giao chuyn b sai. 2. Th t ca danh sch nhng m Reply s : 211 Tnh trng h thng, hay reply gip h thng .

214 Thng ip gip . {thng tin lm th no dng receiver hay ngha ca mt lnh khng chun c bit ; reply ny rt c ch cho ngi s dng] 220 <domain> dch v sn sng 221 <domain> dch v ng knh giao chuyn 250 Hnh ng mail yu cu OK, hon thnh 251 User khng cc b; s hng n <forward-path> 354 Khi ng vic nhp mail; kt thc vi <CLRF>. <CLRF> 421 <domain> dch v khng s dng c, ng knh giao chuyn [n c th l mt reply cho nhiu lnh nu dch v bit reply ny phi shut down] 450 Khng ly hnh ng mail yu cu; mailbox khng hiu lc [nh mailbox bn] 450 B qua hnh ng c yu cu ; li cc b trong qu trnh x l 451 Khng nhn hnh ng c yu cu; lu tr ca h thng khng . 500 Li c php; khng chp nhn lnh [n c th bao gm nhng li nh: lnh qu di] 501 Li c php trong tham s hay i s 502 Lnh khng c cung cp 503 Dng lnh sai 504 Tham s ca dng lnh khng c cung cp 550 Khng nhn hnh ng c yu cu ; mailbox khng hiu lc [nh mailbox khng tm thy hay khng truy cp c] 551 User khng cc b; vui lng th <forward-path> 552 B qua hnh ng m mail yu cu, vt qu ch nh lu tr 554 Khng nhn hnh ng c yu cu; tn mailbox khng c chp nhn. [nh sai c php mailbox] giao chuyn sai. 3. S lin tc ca nhng Command & Reply : S giao tip gia sender v receiver c nh l mt cuc hi thoi tun t do sender iu khin. Chng hn nh sender sinh ra mt lnh v receiver tr li vi mt reply. Sender phi ch s tr li ny trc khi gi thm lnh. Mt reply quan trng l cho hi kt ni. Thng thng mt receiver s gi mt reply 220 service ready khi kt ni hon thnh. Sender phi ch thng ip cho hi ny trc khi gi cc lnh. Lu : tt c cc reply kiu cho hi dng tn chnh thc ca host server l t u tin theo sau m reply V d : 220 <SP> USC-ISIF.ARPA <SP> Service ready <CRLF> Bng bn di lit k nhng reply thnh cng v tht bi cho mi lnh n phi c gia nhp vo mt cch nghim ngt ; mt receiver c th thay th text trong cc reply nhng ngha v hnh ng c nh bi m s v bi chui command reply c trng khng th b thay i.

*- Nhng chui COMMAND-REPLY


Mi lnh c lit k vi cc reply c th ca n. Nhng tin t c dng trc nhng reply c th l P khi u (khng dng trong SMTP) I cho phn gia, S cho s thnh cng v E cho li. Reply 421 (dch v khng hiu lc, ng knh giao chuyn) c th cho mt s lnh nu receiver-SMTP nhn bit rng n phi shut down. S lit k sau y l cu trc c bn cho s trng thi(state diagram) trong phn IV.C CONNECTION ESTABLISHMENT (thit lp kt ni) S: 220 F: 421 HELLO S: 250 E: 500, 501, 504, 421 MAIL S: 250 F: 552, 451, 452 E: 500, 501, 421 RCPT S: 250, 251 F: 550, 551, 552, 553, 450, 451, 452 E: 500, 501, 503, 421 DATA I: 354 -> data -> S: 250 F: 552, 554, 451, 452 F: 451, 554 E: 500, 501, 503, 421 RSET S: 250 E: 500, 501, 504, 421 SEND S: 250 F: 552, 451, 452 E: 500, 501, 502, 421 SOML S: 250 F: 552, 451, 452 E: 500, 501, 502, 421 SAML S: 250 F: 552, 451, 452 E: 500, 501, 502, 421 VRFY S: 250, 251 F: 550, 551, 553 E: 500, 501, 502, 504, 421 EXPN

S: 250 F: 550 E: 500, 501, 502, 504, 421 HELP S: 211, 214 E: 500, 501, 502, 504, 421 NOOP S: 250 E: 500, 421 QUIT S: 221 E: 500 TURN S: 250 F: 502 E: 500, 503

C- S trng thi (STATE DIAGRAM)


Di y l s trng thi cho mt s thi hnh SMTP n gin. Ch mt ch s u tin ca nhng m reply c s dng . y l mt bng trng thi cho tng nhm lnh SMTP nhng nhm lnh ny c xc nh bng cch xy dng mt m hnh cho mi lnh v sau gom nhng lnh li vi nhau vi nhng m hnh ging nhau v cu trc. Cho mi lnh c ba kt qu thnh cng (S), tht bi (F), li (E) trong s trng thi sau chng ta dng k hiu B cho begin v k hiu W cho wait for reply. u tin s trnh by cho hu ht cc lnh SMTP : 1,3

E S F

cmd

2 4,5

S ny m hnh cho nhng lnh sau: HELO, MAIL, RCPT, RSET, SEND, SOML, SAML, VRFY, EXPN, HELP, NOOP, QUIT, TURN

1,2 DATA W Mt s B phc tp hn m hnh cho lnh DATA : 3 1,3 data 4,5 2 4,5

E S F

Lu : data y l mt chui nhng dng gi t sender n receiver khng cn s tr li cho n khi dng cui cng c gi. D- Chi tit 1. S thc thi ti thiu : Lp l lm cho SMTP c th lm vic, s thc thi ti thiu sau c yu cu cho tt c cc receiver COMMANDS -- HELO MAIL RCPT DATA RSET NOOP QUIT 2. Tnh trong sut : Khng c mt s cung cp no cho tnh trong sut d liu, chui k t <CRLF>.<CRLF> kt thc mail text v khng c user gi i. Thng thng user khng nhn bit c s ngn cn nhng chui k t . cho php tt c cc text son tho ca user c truyn mt cch r rng nhng th tc sau y c s dng. 1> Trc khi gi mt dng mail text sender-SMTP kim tra k t u tin ca dng . Nu n l mt du chm, mt du chm ph c thm vo u dng. 2> Khi receiver-SMTP nhn mt dng mail text n kim tra dng . Nu dng ch c mt du chm n th n l kt thc ca mail. Nu k t u tin l mt du chm v theo sau l nhng k t khc nm trn cng dng. Th k t u tin b xo. Mail data c th cha cc k t m ASCII (128 k t) tt c cc k t c phn pht n mailbox ca recipient bao gm phn nh dng v nhng k t iu khin khc. Nu knh chuyn giao cung cp mt lung d liu 8 bit (octet), nhng m ASCII 7 bit trn c vn chuyn ng iu chnh li trong h bt phn vi bit cao nht b xo v 0. N c th cn thit bin i d liu c nhn hay lu tr . Trong mt s h thng, iu ny cn thit cho nhng host dng mt tp hp k t khc vi tp ASCII , nh tp k t cc b ca chng hay d liu lu trong nhng record nhiu hn chui. Nu nhng thay i trn l cn thit, chng phi khi phc li( bin i hai chiu) c nu nhng bin i c p dng cho mail c chia ca. 3. Kch thc :

C vi i tng i hi kch thc nh nht ln nht. l tt c tt c s thc thi phi c nhn nhng i tng c kch thc ti thiu, nhng khng bt buc phi gi nhng i tng ln hn kch thc ny C PHM VI LN NHT C TH, THC THI K THUT NH LA KHNG GII HN CHIU DI CA NHNG I TNG S C DNG

user : Chiu di tng cng ln nht ca user name l 64 k t. domain : Chiu di tng cng ln nht ca domain name hay s l 64 k t. path : Chiu di tng cng ln nht ca mt dng lnh bao gm nhng t lnh v <CRLF> l 512 k t. text line (dng vn bn) : Chiu di tng cng ln nht ca dng vn bn bao gm <CRLF> l 1000 k t (khng tnh du chm u c nhn ln cho vn trong sut). recipients buffer : Tng s recipient ln nht l 100 recipient.

* Li vt qu quyn c gii hn c th c bo co bng cch dng nhng m reply. V d nh : 500 Line too long.(dng qu di) 501 Path too long (ng dn qu di) 552 Too many recipients.(qu nhiu recipient) 552 Too much mail data (qu nhiu mail data)

V- Ph lc
Dch v vn chuyn TCP Transmission Control Protocol (iu khin giao chuyn [3]) c dng trong ARPA internet v trong mt s mng theo tiu chun US DoD cho cc protocol internetwork . * Thit lp kt ni : Mt knh giao chuyn SMTP l mt kt ni c thit lp the sender process port U and the receiver process port L. n l mt kt ni full duplex n gin c dng nh knh kt ni trn protocol ny c gn mt dch v port 25 (31 h mi) l L=25. * Truyn d liu : Kt ni TCP h tr truyn nhng byte 8 bit. D liu SMTP l nhng k t 7 bit m ASCII. Mi k t c truyn nh mt byte 8 bit vi bit cao nht b xo v 0.
A.

B. Dch v vn chuyn NCP ARPANET Host-to-Host Protocol [4] (c cung cp bi Network Control Program) c th c dng trong ARPANET . * Thit lp kt ni : Knh giao chuyn SMTP c thit lp qua NCP gia sender process socket U v receiver process socket L. The Initial Connection Protocol [5] l kt qu l kt qu tip theo mt cp kt ni simplex. Cp kt ni ny c dng nh knh giao chuyn . protocol ny c gn ton b socket 25 , l L=25.

* Truyn d liu: Kt ni NCP data c thit lp trong ch 8 bit . SMTP data l nhng k t ASCII 7 bit . Mi k t c truyn nh mt byte 8 bit vi bit cao nht b xo v 0. C. NTTS Network Independent Transport Service [6] (dch v vn chuyn mng c lp) c th c dng . * Thit lp kt ni : Knh giao chuyn SMTP c thit lp qua NTTS sender process v receiver process . Sender process thi hnh CONNECT ban u v ch receiver process thc thi ACCEPT ban u . * Truyn d liu : Kt ni NTTS h tr giao chuyn cc byte 8 bit . SMTP data l nhng k t ASCII 7 bit . Mi k t c truyn nh mt byte 8 bit vi bit cao nht b xo v 0 D. Dch v vn chuyn X.25 N c th dng X.25 service [7] cung cp bi Public Data Networks mt cch trc tip , tuy nhin n c ngh mt protocol ng tin cy chng hn nh TCP c dng trn kt ni X.25. E. Nguyn l ca cc m Reply Ba ch s ca m reply mi ch c mt ngha c bit. K t u tin biu th response, good hay bad hay khng hon tt. Mt sender-SMTP tht s c th xc nhn hnh ng k tip ca n (tin hnh theo k hoch, lm li, ct gim bt, ..) bng mt cch n gin l kim tra ch s u tin ny. Mt ssender-SMTP mun bit mt cch gn ng cc kiu li xy ra (nh mail system error, command syntax error) c th kim tra ch s th hai, dnh ch s th ba cho vic kt thc s sp t tng dn ca thng tin (the finest gradation of information. ) . * C nm gi tr cho ch s u tin ca m reply: 1yz Positive Preliminary reply (reply khng nh ban u ) : Lnh ny c chp nhn nhng hnh ng yu cu s c gi hon li, tr hon s xc nhn thng tin trong reply ny. Sender-SMTP s gi mt lnh khc nh r tip tc hay b qua hnh ng ny. [ Lu : SMTP khng c lnh no tha nhn kiu reply ny, vdo khng c lnh tip tc hay b qua]. 2yz Positive Completion reply (reply khng nh s hon thnh) : Hnh ng c yu cu hon tt mt cch thnh cng, mt yu cu mi c th c bt u . 3yz Positive Intermediate reply (reply khng nh gia chng) : Lnh ny c chp nhn nhng hnh ng yu cu s c gi hon li, tr hon s nhn thng tin thm. Sender-SMTP s gi mt lnh khc nh r thng tin ny. Reply ny c dng trong nhng nhm lnh tun t. 4yz Transient Negative Completion reply (reply ph nh s hon thnh ngn hn): Lnh ny khng c chp nhn v hnh ng yu cu khng xy ra, tuy nhin trng thi li l tm thi, hnh ng c th c yu cu tr li. Sender s quay tr li bt u

chui lnh (nu c) kh gn mt ngha tc thi cho n khi hai site khc nhau (receiverv sender- SMTPs) phi ng s thng dch. Mi reply loi ny c mt gi tr thi gian khc nhau nhng sender-SMTP c khuyn khch th li. Mt quy tc lt trang xc nh nu mt reply c vo trong loi 4yz hay 5yz (xem bn di) th nhng reply l 4yz nu chng c th c lp li m khng cn thay i g trong cu trc lnh hay trong nhng thuc tnh ca sender hay receiver (nh mt lnh c lp li mt cch ging nhau v receiver khng a ra mt s thc thi mi). 5yz Permanent Negative Completion reply (reply ph nh s hon thnh di hn): Lnh ny khng c chp nhn v hnh ng c yu cu khng xy ra . SenderSMTP ngn cn vic lp li yu cu (trong chui tun t ). Ngay c mt s hon cnh li di hn c th hiu chnh c, do ngi s dng mun hng sender-SMTP khi to li chui lnh bng cch ch o hnh ng ti mt s thi im trong tng lai(nh: sau khi chnh t c thay i, hay user thay i trng thi account ) . a/ Ch s th hai m ho nhng loi tr li(response) c trng : * x0z Syntax : Nhng reply ny xem xt li c php, nhng lnh ng c php khng a vo mt loi chc nng no. V khng thc thi cc lnh khng cn thit. * x1z Information : Nhng reply ny yu cu thng tin, nh trng thi hay gip . * x2z Connections : Nhng reply ny tham kho n knh giao chuyn. * x3z : Cho n hin ti cha c c t. * x4z : Cho n hin ti cha c c t. * x5z Mail system : Reply ny ch nh tnh trng ca receiver mail system vis-a-vis yu cu truyn hay hot ng h thng mail khc . b/ Ch s th ba mang li mt mc ngha nhiu hn cho mi loi (category) c c t bi ch s th hai. Danh sch cc reply minh ho iu ny. Mi reply text c ngh nhiu hn l lnh, v c th thay i tu theo lnh vi nhng kt hp ca lnh . Trong s kim sot khc nhng m reply ny phi theo s c t nghim ngt trong phn ny s thc thi ca receiver s khng pht sinh ra m mi cho tnh trng khc nhau khng ng k ca nhng g c c t y. Nhng nhng m thch hp hn c nh ngha sn. V d nh, mt lnh nh NOOP chng hn n thc thi thnh cng khng cn ngh sender-SMTP mt thng tin mi no s tr v mt reply 250. Cu tr li l 502 khi lnh yu cu mt hnh ng non-site-specific khng thc thi c. Mt s ci tin cho iu l reply 504 cho mt lnh c thc thi nhng n yu cu mt tham s khng thc thi. Reply text c th di hn mt dng n, trong trng hp ny mt text hon tt phi c nh du do sender bit khi no n c th ngng c reply ny. iu ny i hi mt nh dng ch nh mt reply nhiu dng. nh dng cho cc reply nhiu dng quy nh tt c cc dng, chp nhn ch cui cng v bt u ca m reply, theo sau l mt du gch ni - (du tr) theo sau l text dng cui cng s bt u vi m reply theo ngay sau l <SP> , cc text v <CRLF> . Cho v d: 123-First line 123-Second line 123-234 text beginning with numbers

123 The last line Trong mt s trng hp sender-SMTP cn tm m reply theo sau l <SP> u dng, v pht l tt c cc dng trc. Mt t trng hp c d liu quan trng cho sender trong reply text sender s nhn bit trng hp ny t ng cnh hin hnh.

Phn 2 Giao thc POP 3 (Post Office Protocol version 3)

-----***----I . Gii thiu


Nghi thc POP3 c ci tin t nghi thc POP ( Post Office Protocol ). Trn internet mt loi no nh hn node thng khng thc t duy tr mt h thng vn chuyn message (message transport system: MTS), v d nh mt workstation khng c ti nguyn (recycle, disk space) hp l cho php mt SMTP server v mt h thng phn pht mail cc b kt hp gi thng tr v chy mt cch lin tc . Thng th n c th rt t (hay khng thch hp) gi mt personal computer ni vi mt IPstyle netwrork trong mt thi gian di (node c bit s thiu ti nguyn nh connectivity) . Mc d vy, c th qun l mail rt hu hiu trn nhng node nh hn ny. V chng thng h tr mt user agent (UA) gip cng vic iu khin mail. gii quyt vn mt node c th cung cp mt thc th MTS a ra mt maildrop service n nhng node c cp nh hn ny. Post Office Protocol - Version 3 (POP3) c dng cho php mt workstation truy xut ng n mt maildrop trn mt server host. Thng iu c ngha l POP3 c dng chp nhn mt workstation gi mail c server ang gi cho n. Khi mt user agent trn mt client host mong mun a mt message vo trong h thng vn chuyn, n thit lp mt kt ni SMTP n host chia ca ca n( host chia ca ny c th, hay khng cn POP3 server host cho client host ).

II.

Thao tc c bn

Ban u server host bt u mt POP3 service bng cch lng nghe trn TCP port 110. Khi mt client host mong mun dng POP3 service, n thit lp mt kt ni TCP vi server host . Khi kt ni c thit lp, POP3 server gi mt cho hi. Client v server POP3 sau trao i nhng lnh v cc tr li cho n khi kt ni c ng hay loi b. Lnh trong POP3 bao gm mt keyword (t kho) theo sau c th l mt hay nhiu i s tt c cc lnh c kt thc bi mt cp CRLF. Cc t kho v i s c tch ring ra bi mt k t trng n , t kho di 3 hay 4 k t. Mi i s c th ln n chiu di 40 k t. Cc tr li trong POP3 bao gm phn ch nh trng thi v mt t kho c th theo sau l thng tin thm vo. Tt c cc tr li c kt thc bi mt cp CRLF. Ch c hai loi tr li l: ch nh trng thi khng nh (+OK) v ph nh (-ERR) . Tr li cho cc lnh l tr linhiu dng. Trong trng hp ny, n cho php ch nh mt cch r rng, sau khi gi dng u tin ca cu tr li v mt CRLF, mt s

dng thm vo c gi i, mi dng kt thc bng mt cp CRLF. Khi tt c cc dng ca tr li c gi i bao gm mt s kt thc h bt phn (termination octe) (m 046 h mi, . ) v mt cp CRLF. Nu dng no ca tr li nhiu dng bt u vi termination octet dng l "byte-stuffed" bng cch (pre-pending) treotermina_ tion octe ca dng tr li. K t y mt tr li nhiu dng c kt thc vi nm octet "CRLF.CRLF". Khi xem xt mt tr li nhiu dng client kim tra xem nu dng bt u vi termintion octet. Nu ng v nu nhng octet theo sau khc vi CRLF, octet u tin ca dng ny (termination octet) c b i. Nu ng v nu nhng k t kt thc theo ngay sau n, th tr li t POP3 server ny c kt thc vi mt dng cha .CRLF khng c coi l mt phn ca tr li nhiu dng . Mt POP3 session tin hnh qua mt s trng thi trong thi gian sng ca n. Khi kt ni TCP c m v mt POP3 server gi mt cho hi. Hi ngh s i vo trng thi AUTHORIZATION (xc nhn). Trong trng thi ny client phi nh danh n n POP3 server. Khi client nh danh thnh cng, server thu c nhng ti nguyn kt hp vi clients maildrop, v hi ngh i vo trng thi TRANSACTION (giao dch). Trong trng thi ny client yu cu cc hnh ng trong vai tr ca POP3 server khi client pht ra lnh QUIT, hi ngh i vo trng thi UPDATE. Trong trng thi ny gii phng cc ti nguyn thu nhn c trong trng thi TRANSACTION v say goodbye. Sau kt ni TCP ng li. Mt POP3 server c th c mt timer t ng logout khng ch ng. Mt timer nh vy phi tn ti trong khong thi gian t nht l 10 pht. Trong khon thi gian nhn cc lnh t client reset timer t ng logout . Khi timer ht hiu lc, hi ngh khng i vo trng thi UPDATE, server s ng kt ni TCP m khng remove hay gi mt message no cho client.

III. Trng thi xc nhn (authorization state)


Khi kt ni TCP c m ra bi mt cleint. POP3 server s xut ra mt dng cho hi n c th l mt chui no c kt thc bi CRLF. V d : S: +OK POP3 server ready Cho hi l mt POP3 reply. POP3 server bao gi cng s truyn i mt tr li khng nh nh cho hi trn. POP3 session hin nm trong trng thi AUTHORIZATION. Client phi nh danh v xc nhn n vi POP3 server. C hai c ch thch hp thc hin. S kt hp lnh USER v PASS , v lnh APOP. xc nhn dng s kt hp lnh USER v PASS. u tin client phi pht mt lnh USER, nu POP3 server tr li vi mt ch th trng thi khng nh (+OK), th client c th pht i lnh PASS hon tt s xc nhn hay lnh QUIT kt thc POP3 session. Nu POP3 server tr li vi mt ch th trng thi ph nhn (-ERR) cho lnh USER, th client c th pht ra mt lnh xc nhn mi hay c th pht mt lnh QUIT. Khi client pht ra mt lnh PASS, POP3 server dng cp i s t lnh USER v PASS xc nh nu client s c cho truy xut n maildrop thch hp. Khi POP3 server c xc nh bng cc lnh xc nhn, n cho client truy xut n nhng mailbox thch hp, sau POP3 server thu c mt kho truy xut loi tr trn maildrop, v s cn thit ngn chn message b sa i hay b loi b trc khi hi ngh i vo trng thi UPDATE. Nu thu nhn kho thnh cng POP3 server tr li vi

mt ch nh trng thi khng nh. V lc ny hi ngh i vo trng thi TRANSACTION m khng c message no b nh du xo. Nu maildrop khng m c v mt s l do no (v d : mt kho khng th nhn c, pha client b t chi truy cp ti maldrop thch hp , hay maildrop khng c phn tch c php ), POP3 server tr li vi mt ch nh trng thi ph nh (nu mt kho c thu nhn nhng POP3 server d nh tr li vi mt ch nh trng thi ph nh, POP3 server phi gii phng kho trc khi loi b lnh ). Sau khi tr v mt ch nh trng thi ph nh server phi ng kt ni, nu server khng ng kt ni client c th pht mt lnh xc nhn mi v bt u tr li, hoc l client pht ra mt lnh QUIT. Sau khi POP3 server m c maildrop n gn mt message-number cho mi message v biu th kch thc ca mi message trong h tm (octet), message u tin trong maildrop c gn message-number 1, message th hai l 2 Trong cc lnh v cc tr li POP3 tt c cc message-number v kch thc message c trnh by da trn h 10 (decimal) . y l nhng tm tt cho ba lnh POP3 bn lun trn : USER name - i s: Mt chui nh danh mt mailbox (c yu cu), n ch c ngha vi server. - Gii hn : Ch c th c cho trong trng thi AUTHORIZATION sau khi POP3 cho hi hay sau khi mt lnh USER PASS khng thnh cng . - Cu tr li c th : +OK tn mailbox c hiu lc -ERR khng chp nhn tn mailbox V d : C: USER mrose S: +OK mrose is a real hoopy frood ... C: USER frated S: -ERR sorry, no mailbox for frated here PASS string - i s: Mt password cho mailbox hay server (c yu cu) a server/mailbox-specific password (required) - Gii hn : Ch c th dc cho trong trng thi AUTHORIZATION sau khi mt lnh user thnh cng. - Discussion: (tho lun) : K t y lnh PASS ch c mt i s, mt POP3 server c th x l khong trng trong i s ny nh l mt phn ca password, thay v l tch i s ra . - Cu tr li c th: +OK kho maildrop v sn sng -ERR password khng hiu lc -ERR khng c php kho maildrop V d : C: USER mrose S: +OK mrose is a real hoopy frood

C: PASS secret S: +OK mrose's maildrop has 2 messages (320 octets) ... C: USER mrose S: +OK mrose is a real hoopy frood C: PASS secret S: -ERR maildrop already locked QUIT - i s: khng - Gii hn: khng - Cu tr li c th: +OK

IV.

Trng thi giao dch (transaction)

Khi client nh danh n n POP3 server thnh cng v POP3 server kho v m maildrop thch hp, POP3 session by gi trong trng thi TRANSACTION client c th pht nhiu ln cc lnh POP3 sau y. Sau mi lnh POP3 server pht ra mt cu tr li. Cui cng client pht ra mt lnh QUIT v POP3 session i vo trng thi UPDATE . y l cc lnh POP3 c hiu lc trong trng thi TRANSACTION: STAT - i s: khng - Gii hn : Ch c th c cho trong trng thi TRANSACTION. - Discussion: (tho lun) : POP3 server pht ra mt tr li khng nh vi mt dng cha thng tin ca maildrop. Dng ny c gi l mt "drop listing" cho maildrop . Thch hp phn tch c php mt cch n gin, tt c cc POP3 server yu cu dng mt nh dng cho drop listings. Cu tr li khng nh gm c +OK theo sau l mt khong trng n, v kch thc ca maildrop trong h tm. Khng yu cu ci g theo sau maildrop size. Lu y: Vic ngn cn mt cch mnh m s thc thi cc thng tin ph cung cp trong drop listing. Mt khc iu kin c bn lun sau, n cho php client phn tch c php cc message trong maildrop. Ch y : Nhng message c nh du xo khng c m trong tng s - Cu tr li c th: +OK nn mm V d : C: STAT S: +OK 2 320 LIST [msg] - i s : Mt message-number (tu ) c th khng tham kho n mt message c nh du xo. - Gii hn : Ch c th c cho trong trng thi transaction.

- Discussion: Nu mt i s c cho v POP3 server pht ra mt tr li khng nh vi mt dng cha thng tin cho message , dng ny c gi l scan listing cho message . Nu khng c i s c trao cho v POP3 server pht ra mt tr li khng nh th tr li c cho l multi-line. Sau khi khi to +OK , cho mi message trong maildrop, POP3 server tr li vi mt dng cha thng tin cho message . Dng ny cng c gi l mt scan listing cho message . Ph hp n gin ho vic phn tch c php, tt c cc POP3 server yu cu dng mt nh dng cho scan listing. Mt scan listing bao gm message number ca message , theo sau l mt khong trng n v kch thc chnh xc ca message bng h tm, khng yu cu nhng g theo sau message size trong scan listing . Lu : y ngn cn mt cch mnh m s thc thi cc thng tin ph cung cp trong scan listing. Mt khc, iu kin c bn lun sau , n cho php client phn tch c php cc message trong maildrop. Nhng message c nh du xo khng c lit k . - Cu tr li c th: +OK scan listing follows -ERR no such message V d : C: LIST S: +OK 2 messages (320 octets) S: 1 120 S: 2 200 S: . ... C: LIST 2 S: +OK 2 200 ... C: LIST 3 S: -ERR no such message, only 2 messages in maildrop RETR msg - i s : Mt message-number (c yu cu) n c th khng tham kho n mt message c nh du xa. - Gii hn : Ch c cho trong trng thi TRASACTION - Discussion : Nu POP3 server pht ra mt tr li khng nh, th tr li c trao l multi-line. Sau khi khi to +OK , POP3 server gi mt message tng ng vi messagenumber c cho, mt cch cn thn byte-stuff k t cui cng (nh vi cc tr li multi-line) . - Cu tr li c th: +OK message follows -ERR no such message V d : C: RETR 1 S: +OK 120 octets

S: <the POP3 server sends the entire message here> S: . DELE msg - i s : Mt message-number (c yu cu) c th khng tham kho n mt message c nh du xo. - Gii hn : Ch c cho trong trng thi TRANSACTION . - Discussion : POP3 server nh du xo message . Nhng tham kho sau n message-number kt hp vi message ca mt lnh POP3 s sinh ra li. POP3 server khng tht s xo message cho n khi POP3 session i vo trng thi UPDATE . - Cu tr li c th: +OK message deleted -ERR no such message V d : C: DELE 1 S: +OK message 1 deleted ... C: DELE 2 S: -ERR message 2 already deleted nh. NOOP i s: khng Gii hn : Ch c cho trong trng thi TRANSACTION Discussion : POP3 server khng lm g ht , n ch hi m vi mt tr li khng

Cu tr li c th: +OK V d: C: NOOP S: +OK

RSET - i s: khng - Gii hn : Ch c cho trong trng thi TRANSACTION . - Discussion : Nu mt message no c nh du xo bi POP3 server, chng c b nh du xo(unmark ). Sau POP3 server hi m vi mt tr li khng nh. - Cu tr li c th: +OK V d : C: RSET S: +OK maildrop has 2 messages (320 octets)

V. Trng thi cp nht (update)


Khi client pht ra mt lnh QUIT t trng thi TRANSACTION, POP3 session i vo trng thi UPDATE (lu rng nu client pht ra mt lnh QUIT t trng thi AUTHORIZATION, POP3 session kt thc nhng khng i vo trng thi UPDATE).

Nu POP3 session kt thc v cc l do khc sau mt lnh QUIT c pht ra t client, POP3 session khng i vo trng thi UPDATE v PHI khng remove mt message no t maildrop . QUIT - i s: khng - Gii hn: khng - Discussion : POP3 server loi b tt c cc mesasage c nh du xa t maildrop. Sau n gii phng cc kha truy cp loi tr (exclusive-access lock) trn maildrop v cc reply v phn tnh trng ca nhng thao tc ny. Sau kt ni TCP c ng li. - Cu tr li c th: +OK V d : C: QUIT S: +OK dewey POP3 server signing off (maildrop empty) ... C: QUIT S: +OK dewey POP3 server signing off (2 messages left) ...

VI. Cc lnh POP 3 chn la (optional POP3 commands) Nhng lnh POP3 c ni n trn phi c h tr bi s thc thi ti thiu ca
POP3 server. Cc lnh POP3 la chn c m t sau y cho php mt POP3 client t do hn trong vic iu khin message, trong khi vn gi mt s thc thi POP3 server n gin. Lu : S ghi chp khuyn khch nhng s th thi nhm h tr cho nhng lnh ny thay cho vic pht trin tng thm drop v scan listings. Thu gn, trit l ca s ghi nh l nhm t mt s thng minh trong vai tr ca client POP3 v khng cho server POP3. TOP msg n - i s: Mt message-number (c yu cu) n c th khng tham kho n mt message c nh du xa, v mt non-negative number (c yu cu) . - Gii hn : Ch c cho trong trng thi TRANSACTION - Discussion : Nu POP3 server pht ra mt tr li khng nh, th tr li c trao l multi-line. Sau khi to +OK , POP3 server gi header ca message , dng trng tch header khi body, v sau l s dng ch nh phn body ca message, nn cn thn byte-stuff k t cui cng (nh vi tt c cc tr li muti-line) . Ch : Nu s dng c yu cu bi POP3 client ln hn s dng trong body th POP3 server gi ton b message . - Cu tr li c th: +OK top of message follows -ERR no such message V d : C: TOP 1 10 S: +OK

S: < POP3 server gi phn headers ca message, mt dng trng, v 10 dng u tin ca phn body ca message > S: . ... C: TOP 100 3 S: -ERR no such message UIDL [msg] - i s: Mt message-number (tu ) nu mt message number c cho, n c th khng tham kho n mt message c nh du xo. - Gii hn : Ch c th c cho trong trng thi TRANSACTION . - Discussion : Nu mt i s c cho v POP3 server pht ra mt tr li khng nh vi mt dng cha thng tin cho message . Dng ny c gi l mt unique-id listing cho message . Nu khng c i s no c cho v POP3 server pht ra mt tr li khng nh th cu tr li c trao l multi-line. Sau khi khi to OK cho mi message trong maildrop, POP3 server tr li vi mt dng cha thng tin cho message . Dng ny c gi l mt unique-id listing cho message . Hp l n gin ho vic phn tch c php. Tt c cc server c yu cu dng mt nh dng cho cc unique-id-listing. Mt unique-id-listing bao gm message number ca message theo sau l mt khong trng v unique-id ca message. Khng c thng tin khc theo sau unique-id trong unique-id-listing. Unique-id ca mt message l mt chui xc nh server tu , bao gm nhng k t trong phm vi 0x21 n 0x7E, n nh danh mt message bn trong mt maildrop l duy nht v n gi nh vy trong thi gian hi ngh. Server s khng bao gi dng li mt unique-id trong mt maildrop cho. Nhng message c nh du xo khng c lit k. - Cu tr li c th +OK unique-id listing follows -ERR no such message V d : C: UIDL S: +OK S: 1 whqtswO00WBw418f9t5JxYwZ S: 2 QhdPYR:00WBw1Ph7x7 S: . ... C: UIDL 2 S: +OK 2 QhdPYR:00WBw1Ph7x7 ... C: UIDL 3 S: -ERR no such message, only 2 messages in maildrop APOP name digest

- i s : Mt chui nh danh mt mailbox v mt chui MD5 digest ( yu cu c hai). - Gii hn : Ch c th c cho trong trng thi AUTHORIZATION sau khi POP3 cho hi. - Discussion : Thng th, mi POP3 session bt u vi mt s trao i USER/PASS, n dn n mt password c t server/user-id c gi ln mng . Nhng s thc thi ca POP3 client kt ni n POP3 server theo mt quy tc c bn kim tra mail mi. Hn na khong thi gian khi to mt POP3 session theo quy tc l nm pht. Lc kh nng b nh cp password rt ln. i hi phi c mt thay i trong phng thc xc nhn cung cp c s xc nhn v xem li s bo v, nhng n khng bao gm vic gi mt passsword khng c m ho ln mng. Lnh APOP cung cp chc nng ny. Mt POP3 server thc thi lnh APOP n s a mt dng nh du thi gian vo trong banner greeting ca n. POP3 client ghi nh dng nh du thi gian ny v sau pht ra lnh APOP. Tham s name ging nh tham s name trong lnh USER tham s digest cb tnh ton bng cch p dng gii thut MD5 [RFC1321] cho mt chui cha mc thi gian (nm trong du ngoc trn) theo sau l mt share secret. Share secret l mt chui ch nhn bit client v server. Tham s digest l mt gi tr 16-octet n c g theo format ca h hex. Khi mt server POP3 nhn c mt lnh APOP, n kim tra digest. Nu digest ng, POP3 server pht ra mt tr li khng nh v POP3 session i vo trng thi TRANSACTION. Ngc li n pht ra mt tr li ph nh v POP3 session vn gi trng thi AUTHORIZATION - Cu tr li c th: +OK maildrop locked and ready -ERR permission denied V d : S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> C: APOP mrose c4c9334bac560ecc979e58001b3e22fb S: +OK maildrop has 1 message (369 octets) Trong v d ny share secret l chui `tan-staaf'. Gii thut MD5 c p dng cho chui <1896.697170952@dbc.mtview.ca.us>tanstaaf n sinh ra mt gi tr digest c4c9334bac560ecc979e58001b3e22fb

VII. Tm tc cc lnh POP3


A. Cc lnh cn phi c : USER name c hiu lc trong trng thi AUTHORIZATION PASS string QUIT STAT LIST [msg] RETR msg c hiu lc trong trng thi TRANSACTION

DELE msg NOOP RSET QUIT c hiu lc trong trng thi UPDATE c hiu lc trong trng thi AUTHORIZATION c hiu lc trong trng thi TRANSACTION

* Cc lnh POP3 chn la: APOP name digest TOP msg n UIDL [msg} * Cc reply POP3 : +OK -ERR

LU Y : Vi s chp nhn cc lnh STAT, LIST, v UIDL , reply m POP3 server gi cho cc lnh ch mang ngha "+OK" v "-ERR". Nhng text xut hin sau trply ny s c client pht l.

B. Cc chun truyn khc :


Ngoi hai chun truyn trn, Mail cn c cc chun truyn khc nh : - MAIP : Chun MAPI da trn nn tng m hnh COM. Chun ny c rt nhiu chi tit, nhiu mc, hm, interface, Object... Trong chun MAPI, tt c nhng thnh phn b phn u c xem nh l nhng i tng, mun thao tc vi nhng b phn , u phi theo cch thc truy nhp vo mt Object, sau mi c th s dng cc method ca Interface m Objectt tng ng h tr. V d nh ngay c thng ip cng c xem l mt i tng, l Message Object. - ESMTP (Extender SMTP) - Nghi thc m rng SMTP SMTP c mt hn ch gy kh khn ln trong vic truyn nhn mail l gii hn ti a kch thc ni dung mt bc mail ch l 128KB.Ngy nay ni dung cc bc mail khng ch l dng vn bn n thun m cn bao gm hnh nh, m thanh v nhiu loi d liu khc na, gii hn 128KB tr nn qu nh. Do vy ngi ta ci tin chun SMTP thnh mt chun m rng mi gi l ESMTP. Chun ny cho php tng kch thc mail, n a thm t kha SIZE=nnnnnnn sau lnh khi ng cuc giao dch, nh ta c th tng gii hn kch thc ca mail ln trn 1MB, cha thm vo cc m thanh, hnh nh bit xem Server MTA c theo chun ESMTP hay khng, thay v dng lnh HELLO u mt cuc giao dch, Client MTA dng lnh mi EHLO, nu Server MTA c trang b, n s tr v m thnh cng l 250. Hin nay hu nh chun ESMTP thay th chun SMTP a s cc h thng. X.400 : Chun X.400 l mt b phn ca cc chun Open Systems Interconnection ( OSI ) v truyn dn thng ip in t ( electronic Messaging Handling System -

MHS ) c pht trin bi t chc in thoi v Truyn thng quc t ( Comite Consultatif International de Telegraphique et Telephonique - CCITT ), c xy dng trn vic tham kho m hnh 7 lp ca OSI v cc protocol c nh ngha bi T chc tiu chun quc t ( International Organization for Standardization - ISO ) *. Thng ip theo chun X.400 : Mt thng ip X.400 c 2 thnh phn : Phn phong b cha thng tin cn thit phn phi mt thng ip v phn ni dung cha thng tin cn truyn. Phn phong b c dng bi MTA v phn Ni dung c dng bi UA. Phn Ni dung thng tin t chc theo dng IPM ( Interpersonal Message : Dng th tn c nhn ring t ) bao gm 2 phn cch bit nhau : Heading v Body. Heading bao gm cc thng tin nh a ch ni i v n, cho bit loi th hoc yu cu phn hi.Body cha ni dung cn gi. Cc ti liu v X.400 ra i nm 1984, v c gi l " red book " ( v chng c ba mu ). c tu chnh v in ln hai vo nm 1988 v c gi l " blue book " ( v chng c ba xanh ).

You might also like