II- MƠ HÌNH SMTP:
trang 34Sender
đ n m t receiver- SMTP . Receiver- SMTP cĩ th là đích đ n cu i cùng hay m tế ộ ể ế ố ộ trung gian. Nh ng l nh SMTP đ c sinh ra b i Sender-SMTP g i đ n Receiver-ữ ệ ượ ở ử ế SMTP. Nh ng reply SMTP đ c g i t Receiver- SMTP đ n Sender- SMTPữ ượ ử ừ ế trong s đáp ng cho nh ng l nh đĩ.ự ứ ữ ệ
Khi m t kênh giao chuy n đ c thi t l p Sender-SMTP g i đi 1 l nh Mail bi uộ ể ượ ế ậ ử ệ ể th cho ng i g i c a mail đĩ. N u Receiver-SMTP cĩ th ch p nh n mail, nĩ tr l iị ườ ử ủ ế ể ấ ậ ả ờ v i m t OK reply. Sau đĩ Sender-SMTP g i m t l nh RCPT nh n di n Receiverớ ộ ử ộ ệ ậ ệ mail n u Receiver-SMTP cĩ th ch p nh n mail nĩ tr l i v i 1 OK reply n u khơngế ể ấ ậ ả ờ ớ ế nĩ s l i v i 1 reply bác b receiver đĩ (nh ng khơng ph i tồn b s giao d ch đĩ).ẽ ờ ớ ỏ ư ả ộ ự ị Sender- SMTP và Receiver- SMTP cĩ th đi u đình v i vài ể ề ớ recipient, khi nh ngữ
recipient đã đ c dàn x p Sender-SMTP g i mail data k t thúc v i m t chu i đ c bi tượ ế ử ế ớ ộ ỗ ặ ệ n u receiver x lý mail data thành cơng nĩ tr l i v i 1 OK reply. Cu c h i tho i m tế ử ả ờ ớ ộ ộ ạ ộ cách ch ý lock –step (one-at-a-time).ủ
trang 34Sender Sender SMTP Receiver SMTP User File System File System SMTP Commands/Replies and Mail
S trên là mơ hình cho cách dùng SMTPơ đồ .
SMTP cung c p nh ng c ch giao chuy n Mail m t cách tr c ti p tấ ữ ơ ế ể ộ ự ế ừ Host c a user g i đ n host c a user nh n khi c hai host đ c k t n i đ n cùngủ ử ế ủ ậ ả ượ ế ố ế d ch v giao chuy n hay qua nhi u SMTP-Sever ti p v n khi host xu t phát hayị ụ ể ề ế ậ ấ đích đ n khơng đ c k t n i đ n cùng d ch v chuy n giao. ế ượ ế ố ế ị ụ ể Để cĩ th cung c pể ấ kh n ng ti p v n SMTP-Sever ph i đ c cung c p tên c a host đ n cùng ch ngả ă ế ậ ả ượ ấ ủ ế ẳ h n nh h n c a mailhost đ n .ạ ư ạ ủ ế
i s c a l nh 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à m t l trìnhặ ả ế ộ ộ ngu n, reverse-path là m t l trình tr v (nĩ cĩ th đ c dùng đ tr v m tồ ộ ộ ở ề ể ượ ể ả ề ộ message cho ng i g i khi x y ra l i v i 1 message đ c ti p nh n).ườ ử ả ỗ ớ ượ ế ậ
Khi cùng m t message đ c g i cho nhi u ộ ượ ử ề recipient SMTP khuy n khíchế chuy n giao ch m t b n sao c a data cho t t c các Receiver cùng m t hostể ỉ ộ ả ủ ấ ả ở ộ đích.
Nh ng command và reply mail cĩ nh ng cú pháp kh c khe. Nh ng replyữ ữ ắ ữ c ng cĩ m t mã s . Trong nh ng thí d theo sau s xu t hi n nh ng l nhũ ộ ố ữ ụ ẽ ấ ệ ữ ệ (commands) và nh ng tr l i (replies) , m t danh sách các l nh và reply hồn ch nhữ ả ờ ộ ệ ỉ trong ph n 4.ầ
Các command và reply khơng phân bi t ki u ch hoa hay th ng. L u ý,ệ ể ữ ườ ư đi u này khơng đúng v i tên c a User mailbox. Cho m t s host tên c a user cĩ phânề ớ ủ ộ ố ủ bi t ki u ch , SMTP ph i thi hành đ y đ vi c nh n ki u ch và gi gìn ki u chệ ể ữ ả ầ ủ ệ ậ ể ữ ữ ể ữ c a nh ng user name nh chúng đã xu t hi n trong nh ng đ i s c a mailbox.ủ ữ ư ấ ệ ữ ố ố ủ Host names khơng phân bi t ki u ch .ệ ể ữ
Các command và reply là nh ng ký t đ c t o ra t t p ký t ASCII{1}, khiữ ự ượ ạ ừ ậ ự d ch v v n chuy n cung c p m t kênh chuy n giao 8 bit (octet). M i m t ký tị ụ ậ ể ấ ộ ể ỗ ộ ự 7 bit đ c truy n đúng b ng cách chuy n nĩ v h 8 (octet) v i bit cĩ th t caoượ ề ằ ể ề ệ ớ ứ ự nh t b xĩa v 0.ấ ị ề
Khi đ c t c u trúc thơng th ng c a command và reply, m t đ i s (hay m tặ ả ấ ườ ủ ộ ố ố ộ ký hi u đ c bi t ) s đ c bi u th b ng m t bi n meta-linguistic (hay m t h ngệ ặ ệ ẽ ượ ể ị ằ ộ ế ộ ằ s ), ví d nh : ố ụ ư “<string>”, hay “<reverse-path>”. đây d u ngo c nh n chỞ ấ ặ ọ ỉ đ nh chúng là nh ng bi n meta-linguistic. Tuy nhiên các đ i s thì dùng d u ngo cị ữ ế ố ố ấ ặ nh n m t cách literal. Ví d nh , m t reverse-path th c đ c bao trong d uọ ộ ụ ư ộ ự ượ ấ ngo c nh n nh , “<ặ ọ ư John.Smith@USC-ISI.ARPA>” là m t tr ng h p c aộ ườ ợ ủ
<reverse-path> (d u ngo c nh n đ c giao chuy n trong command và reply là mãấ ặ ọ ượ ể th c c a nĩ).ự ủ
III. MAIL:
1- Khái quát :
Cĩ 3 b c cho s giao d chướ ự ị SMTP mail. Giao d ch đ c b t đ u v i yêu c uị ượ ắ ầ ớ ầ Mail mang s nh n di n ng i g i, ti p theo sau là m t chu i c a m t hayự ậ ệ ườ ử ế ộ ỗ ủ ộ nhi u l nh RCPTề ệ trao nh ng thơng tin c a receiver, sau đĩ m t l nh DATA choữ ủ ộ ệ mail data.Và cu i cùng là ph n ch đ nh k t thúc mail data xác nh n giao d ch đĩ. ố ầ ỉ ị ế ậ ị
B c đ u tiên trong th t c là l nh MAIL...<reverse-path> ch a mailboxướ ầ ủ ụ ệ ứ ngu n:ồ
MAIL <SP> FROM : <reverse-path> <CRLF>
L nh này báo cho receiver bi t m t giao d ch mail m i s b t đ u và đ resetệ ế ộ ị ớ ẽ ắ ầ ể t t c các b ng tr ng thái và các buffer c a nĩ bao g m t t c recipient hay mailấ ả ả ạ ủ ồ ấ ả data. Nĩ phát ra reverse-path cĩ th đ c dùng đ báo l i. N u đ c ch p nh nể ượ ể ỗ ế ượ ấ ậ receiver-SMTP tr v m t reply 250 OK.ả ề ộ
<Reverse-path> cĩ th ch a nhi u h n m t mailbox.<Reverse-path> làể ứ ề ơ ộ m t l trình ngu n tr v li t kê các host và mailbox ngu n. Host đ u tiên trongộ ộ ồ ở ề ệ ồ ầ reverse-path s là host g i l nh này.ẽ ử ệ
B c th hai trong th t c này là l nh RCPT :ướ ứ ủ ụ ệ RCPT <SP> To : <forward-path> <CRLF>
L nh này phát đi m t forward-path nh n di n recipient. N u đ c ch pệ ộ ậ ệ ế ượ ấ nh n receiver-SMTP tr v m t reply 250 OK. Và l u l i forward-path. N uậ ả ề ộ ư ạ ế recipient khơng nh n bi t thì receiver tr v reply 550 Failure. B c th haiậ ế ả ề ướ ứ c a th t c này cĩ th l p l i nhi u l n.ủ ủ ụ ể ặ ạ ề ầ
Forward-path cĩ th ch a nhi u h n m t mailbox. Forward-path là l trìnhể ứ ề ơ ộ ộ ngu n li t kê các host và mailbox đích. Host đ u tiên trong <forword-path> s là hostồ ệ ầ ẽ nh n l nh này.ậ ệ
B c th ba trong th t c là l nh DATAướ ứ ủ ụ ệ DATA <CRLF>
N u ch p nh n receiver-SMTP tr v m t reply 354 và coi t t c các dịngế ấ ậ ả ề ộ ấ ả n i ti p đĩ là message text. Khi v n b n cu i cùng đ c nh n và l u tr receiver-ố ế ă ả ố ượ ậ ư ữ SMTP g i m t reply 250 OK.ử ộ
K t khi mail đ c g i trên kênh chuy n giao, đi m k t thúc c a mail ph iể ừ ượ ử ể ể ế ủ ả đ c ch đ nh đ h i tho i command và reply cĩ th b t đ u tr l i. SMTP ch đ nhượ ỉ ị ể ộ ạ ể ắ ầ ở ạ ỉ ị k t thúc c a mail b ng cách g i m t dịng ch a ch m t d u ch m.ế ủ ằ ử ộ ứ ỉ ộ ấ ấ
Chú ý r ng ằ mail data bao g m nh ng m c (item) memo header ch ng h nồ ữ ụ ẳ ạ nh Subject, To, Cc, From.ư
Ph n ch đ nh k t thúc c a mail data c ng xác nh n s giao d ch mail và báoầ ỉ ị ế ủ ũ ậ ự ị cho receiver-SMTP bi t đ x lý vi c l u tr recipient và mail data ngay lúc đĩ.ế ể ử ệ ư ữ N u đ c ch p nh n receiver-SMTP tr v m t reply 250 OK. L nh DATA sế ượ ấ ậ ả ề ộ ệ ẽ ch l i n u giao d ch mail khơng hồn thành (ví d khơng cĩ receiver) ho c n u tàiỉ ỗ ế ị ụ ặ ế nguyên khơng cĩ hi u l c.ệ ự
Th t c trên là m t ví d c a m t giao d ch mail. Nh ng l nh này ch đ củ ụ ộ ụ ủ ộ ị ữ ệ ỉ ượ dùng trong nh ng tr t t đ c trình bày trên. Ví d :ữ ậ ự ượ ở ụ
M t minh h a cách dùng nh ng l nh này:ộ ọ ữ ệ Ut; end with <CRLF>.<CRLF>
S: Blah blah blah... S: ...etc. etc. etc. S: <CRLF>.<CRLF> R: 250 OK
Bây gi mail đ c ch p nh n cho Jones và Brown. Green khơng cĩ m tờ ượ ấ ậ ộ mailbox trên Beta host.
2- S nh hự đị ướng :
Cĩ m t s tr ng h p thơng tin c a ích ộ ố ườ ợ ủ đ đến trong <forward-path> b sai nh ng receiver-SMTP bi t ích ị ư ế đ đến úng.đ
Trong tr ng h p nh v y m t trong nh ng reply sau s ườ ợ ư ậ ộ ữ ẽ được dùng cho phép ng i g i ti p xúc n ích úng :để ườ ử ế đế đ đ