Nh ngl nh SMTP ữệ (Commands SMTP) 1 Ng ngh a l nh ữĩ ệ:

Một phần của tài liệu Tìm hiểu về các Web server thông dụng hiện nay Microsoft Internet Information Server; Apache Web Server (Trang 42)

IV. ĐẶ CT SMTP Ả

A.Nh ngl nh SMTP ữệ (Commands SMTP) 1 Ng ngh a l nh ữĩ ệ:

Nh ng l nh SMTP đ nh ngh a s truy n mail hay ch c n ng c a hữ ệ ị ĩ ự ề ứ ă ủ ệ th ng mail đ c yêu c u b i user. Nh ng l nh SMTP là nh ng chu i ký t k t thúcố ượ ầ ở ữ ệ ữ ỗ ự ế b ng <CRLF>. B n thân mã l nh là nh ng ký t ch k t thúc b i chu i <SP> n u cóằ ả ệ ữ ự ữ ế ở ỗ ế nh ng tham s theo sau và <CRLF> khác. Cú pháp c a nh ng mailbox ph i tuân theoữ ố ủ ữ ả nh ng tho hi p phía ng i nh n. Nh ng reply SMTP đ c bàn đ n trong ph n B.ữ ả ệ ườ ậ ữ ượ ế ầ

M t s giao d ch mail bao g m vài đ i t ng d li u đ c giao ti p khiộ ự ị ồ ố ượ ữ ệ ượ ế nh ng đ i s cho các l nh khác nhau. ữ ố ố ệ Reverse-path là đ i s c a l nh MAIL.ố ố ủ ệ

Forward-path là đ i s c a l nh RCPT. Và mail data là đ i s c a l nh DATA. Baố ố ủ ệ ố ố ủ ệ đ i s và nh ng đ i t ng d li u đ c duy trì cho đ n khi xác nh n truy n xongố ố ữ ố ượ ữ ệ ượ ế ậ ề b i s ch đ nh k t thúc c a mail data thì th t s k t thúc giao d ch. Mô hình cho nóở ự ỉ ị ế ủ ậ ự ế ị là nh ng buffer riêng bi t đ c cung c p đ gi ki u c a đ i t ng d li u. M tữ ệ ượ ấ ể ữ ể ủ ố ượ ữ ệ ộ s l nh đ c tr ng sinh ra thông tin đ c g n vào m t buffer đ c tr ng, hay làm choố ệ ặ ư ượ ắ ộ ặ ư m t hay nhi u buffer b xoá.ộ ề ị

HELLO (HELO) : L nh này dùng đ nh danh Sender-SMTP đ n Receiver-ệ ị ế SMTP. Tr ng đ i s ch a host name c a Sender-SMTP. Receiver-SMTP đ nhườ ố ố ứ ủ ị danh nó đ n Sender-SMTP trong tr l i b t tay cho vi c k t n i, và trong câu trế ả ờ ắ ệ ế ố ả l i cho l nh này.L nh này và m t reply OK đ xác nh n c hai Sender-SMTP vàờ ệ ệ ộ ể ậ ả Receiver-SMTP đang trong tình tr ng kh i đ ng, đi u đó là: Không có m t giao d chạ ở ộ ề ộ ị mail nào đang ti n hành và t t c các b ng tr ng thái và buffer đã đ c xoá.ế ấ ả ả ạ ượ

MAIL : L nh này đ c dùng kh i t o m t giao d ch mail trong đó mail dataệ ượ ở ạ ộ ị đ c phân ph i đ n m t hay nhi u mailbox. Feild đ i s ch a m t reverse-path.ượ ố ế ộ ề ố ố ứ ộ Reverse-path bao g m m t danh sách các host tu ý và mailbox c a user. Khi danhồ ộ ỳ ủ sách các host hoàn t t nó là m t l trình ngu n “tr v ” và ch đ nh mail đó đ c chia caấ ộ ộ ồ ở ề ỉ ị ượ thông qua m i host trên danh sách đó (host đ u tiên trong list là host chia ca g n nh t).ỗ ầ ầ ấ List này đ c dùng nh m t l trình ngu n đ tr v ng i g i nh ng thông báoượ ư ộ ộ ồ ể ả ề ườ ử ữ không th phân phát. T i m i host chia ca nó thêm ph n đ nh danh c a b n thân vàoể ạ ỗ ầ ị ủ ả ch b t đ u c a list đó và ph i dùng tên c a nó đ c bi t trong IPCE n i nó s chia caổ ắ ầ ủ ả ủ ượ ế ơ ẽ mail đ n đó, đúng h n là ICPE có mail đ n t đó (n u chúng khác nhau). Trong m t sế ơ ế ừ ế ộ ố lo i message thông báo l i (ví d thông báo mail không th phân phát) reverse-pathạ ỗ ụ ể có th là null.ể

RECIPIENT (RCPT) : Lệnh này dùng định danh một người nhận mail riêng lẻ, nhiều recipient được đặc tả bằng nhiều lệnh này. Forward-path bao gồm một danh sách các host tuỳ ý và một mailbox đích được yêu cầu. Khi danh sách host đó hoàn tất. Nó là một lộ trình nguồn và chỉ định mail phải được chia ca đến host kế tiếp trên list đó. Nếu Receiver-SMTP không thực thi chức năng chia ca nó có thể dùng được reply này và sẽ cho một unknown local user (550). Khi mail được chia ca, host chia ca phải chuyển phần định danh nó từ chổ bắt đầu forward-path và đặt vào chổ bắt đầu của reverse-path. Khi mail trải ra tới đích cuối cùng (forward-path chỉ chứa một mailbox đích) receiver-SMTP chèn nó vào trong mailbox đích trong sự đồng ý với thoả hiệp host mail của nó.

Ví d mail đ c nh n t i host chia ca A v i nh ng đ i s :ụ ượ ậ ạ ớ ữ ố ố

FROM:<USERX@HOSTY.ARPA>

TO:<@HOSTA.ARPA,@HOSTB.ARPA:USERC@HOSTD.ARPA> Sẽ được chia ca đến host B với đối số

FROM:<@HOSTA.ARPA:USERX@HOSTY.ARPA> TO:<@HOSTB.ARPA:USERC@HOSTD.ARPA>.

Lệnh này sinh ra đối số forward-path của nó được gắn vào forward-path buffer.

DATA(DATA) : Receiver-SMTP x lý nh ng dòng theo saử ữ u l nh này khi mailệ t Sender-SMTP đ n. Nó làm cho mail data t l nh này đ c ghi vào data buffer.ừ ế ừ ệ ượ Mail data này có th ch a nh ng ký t c a 128 mã ACSII. Data mail đ c k t thúcể ứ ữ ự ủ ượ ế b ng m t dòng ch ch a m t d u ch m. ó là m t dãy ký t "<CRLF>. <CRLF>"ằ ộ ỉ ứ ộ ấ ấ Đ ộ ự (xem ph n 4.D.2). Và đó là ch đ nh k t thúc c a mail data.ầ ỉ ị ế ủ

S ch đ nh k t thúc m t chu i đòi h i ng i nh n ph i x lý vi c l u trự ỉ ị ế ộ ổ ỏ ườ ậ ả ử ệ ư ữ nh ng thông tin giao d ch mail ngay l p t c. Quá trình x lý này dùng thông tinữ ị ậ ứ ử trong reverse-path buffer, forward-path buffer, mail data buffer, và khi hoàn t tấ l nh này nh ng buffer đó s b xóa, nh ng message đ c chia ca s có nhi u dòngệ ữ ẽ ị ữ ượ ẽ ề đánh d u th i gian.ấ ờ

Khi m t Receiver-SMTP t o ra “ộ ạ final delivery” c a m t message nó chènủ ộ vào ch b t đ u c a mail data m t dòng ổ ắ ầ ủ ộ return-path. Dòng return-path đó b o qu nả ả thông tin trong “reverse-path” t l nh mail. đây ừ ệ Ơ deliver final có ngh a là messageĩ

đó r i kh i th gi i SMTP. Thông th ng có ngh a là nó đã đ c chuy n đ n userờ ỏ ế ớ ườ ĩ ượ ể ế đích, nh ng trong m t s tr ng h p nó có th đ c x lý n a và và đ c giaoư ộ ố ườ ợ ể ượ ử ữ ượ chuy n b i h th ng mail khác.ể ở ệ ố

Có th cho mailbox trong ể return-path là khác bi t v i mailbox th t s c aệ ớ ậ ự ủ Sender-SMTP, ví d nh n u nh ng tr l i error đ c dùng phân phát m t l i đ cụ ư ế ữ ả ờ ượ ộ ỗ ặ bi t đi u khi n mailbox. ệ ề ể

Hai đo n tr c ý nói mail data cu i cùng s b t đ u v i m t dòng ạ ướ ố ẽ ắ ầ ớ ộ return- path theo sau là m t hay nhi u dòng đánh d u th i gian , sau nh ng dòng này s làộ ề ấ ờ ữ ẽ ph n header và body c a mail data [2]. ầ ủ

S đ c p đ c bi t c n thi t cho s tr l i (ự ề ậ ặ ệ ầ ế ự ả ờ response) và s hành đ ng ti pự ộ ế n a đ c yêu c u khi quá trình x lý theo sau s ch đ nh k t thúc mail data là s thànhữ ượ ầ ữ ự ỉ ị ế ự công c c b . i u này có th phát sinh n u sau khi ch p nh n m t vài ng i nh nụ ộ Đ ề ể ế ấ ậ ộ ườ ậ và data mail c a receiver-SMTP th y mail data đó có th đ c phân phát đ n m t sủ ấ ể ượ ế ộ ố ng i thành công nh ng l i không th đ n nh ng ng i khác (ví d nh x y raườ ư ạ ể ế ữ ườ ụ ư ả v n đ v vi c ch đ nh v trí c a mailbox). Trong tình tr ng nh v y câu tr l iấ ề ề ệ ỉ ị ị ủ ạ ư ậ ả ờ cho l nh DATA ph i là m t reply OK. Nh ng receiver-SMTP ph i so n và g iệ ả ộ ư ả ạ ử v n i xu t x c a message đó m t message thông báo “ề ơ ấ ứ ủ ộ undelivered mail”. M tộ thông báo đ n li t kê t t c các recipient không nh n đ c message, hay nh ngơ ệ ấ ả ậ ượ ữ message thông báo riêng l ph i đ c g i cho t ng recipient m t , t t c nh ngẽ ả ượ ử ừ ộ ấ ả ữ thông báo mail không th phân phát đ c g i dùng l nh MAIL (ngay c n u k t quể ượ ử ệ ả ế ế ả đó t quá trình x lý m t l nh SEND, SOML, hay SAML ).ừ ử ộ ệ

Ví d cho đ ng d n tr v và nh n đánh d u th i gian nh n: ụ ườ ẫ ả ề ậ ấ ờ ậ

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) : L nh này dùng kh i t o m t giao d ch mail trong đó mailệ ở ạ ộ ị data đ c phân phát đ n m t hay nhi u terminal. Tr ng đ i s ch a m t reverse-ượ ế ộ ề ườ ố ố ứ ộ path. L nh này thành công n u message đ c phân phát đ n m t terminal.ệ ế ượ ế ộ Reverse-path bao g m m t list các host và mailbox ng i g i tu ý khi list đóồ ộ ườ ử ỳ hoàn t t, nó là m t l trình ngu n “tr v ” và ch đ nh mail đã đ c chia ca thông quaấ ộ ộ ồ ở ề ỉ ị ượ các host trong list đó (host đ u tiên trong list là host chia ca g n nh t) danh sách nàyầ ầ ấ đ c dùng nh m t l trình ngu n đ tr v cho ng i g i nh ng thông báo vượ ư ộ ộ ồ ể ả ề ườ ử ữ ề vi c không phân phát đ c. Khi m i host chia ca thêm ph n đ nh danh vào trong vệ ượ ỗ ầ ị ị

trí b t đ u c a list , nó ph i dùng tên mà nó đ c bi t đ n trong IPCE n i nó s chiaắ ầ ủ ả ượ ế ế ơ ẽ ca mail t i đó , đúng h n là IPCE có mail t i t đó.ớ ơ ớ ừ

L nh này xoá ệ reverse-path buffer, forward-path buffer và mail data buffer và chèn thông tin reverse-path t l nh này vào trong ừ ệ reverse-path buffer.

END OR MAIL (SOML) : L nh này dùng kh i t o m t giao d ch mailệ ở ạ ộ ị trong đó mail data đ c phân phát đ n m t hay nhi u terminal hay mailbox. Choượ ế ộ ề t ng recipient, data mail đ c phân phát đ n terminal c a ng i nh n n u ng iừ ượ ế ủ ườ ậ ế ườ nh n đó đang ho t đ ng trên host đó (và ch p nh n nh ng terminal message ), m tậ ạ ộ ấ ậ ữ ặ khác là đ n mailbox c a nh ng ng i nh n đó. Tr ng đ i s ch a m t ế ủ ữ ườ ậ ườ ố ố ứ ộ reverse- path . L nh này thành công khi message đ c phân phát đ n m t terminal hayệ ượ ế ộ mailbox.

Reverse-path bao g m m t danh sách các host tu ý và mailbox c a ng iồ ộ ỳ ủ ườ g i. Khi danh sách các host đó hoàn t t, nó là m t l trình ngu n “tr v ” và ch đ nhử ấ ộ ộ ồ ở ề ỉ ị mail đó đã đ c chia ca thông qua các host trên danh sách (host đ u tiên trong danh sách làượ ầ host chia ca g n nh t). Danh sách này đ c dùng nh m t l trình ngu n tr v choầ ấ ượ ư ộ ộ ồ ả ề ng i g i nh ng thông báo v vi c không th phân phát. Khi m i host chia ca thêmườ ử ữ ề ệ ể ỗ ph n đ nh danh nó vào ch b t đ u c a danh sách đó, nó ph i dùng tên đ c bi t đ nầ ị ổ ắ ầ ủ ả ượ ế ế trong IPCE n i nó s chia ca mail đ n đó đúng h n là IPCE có mail đ n t đó(n uơ ẽ ế ơ ế ừ ế chúng khác nhau).

L nh này xoá ệ reverse-path buffer, forward-path buffer và mail data buffer và chèn thông tin reverse-path t l nh này vào trong ừ ệ reverse-path buffer.

SEND AND MAIL (SAML) : L nh này dùng kh i t o m t giao d ch mailệ ở ạ ộ ị trong đó mail data đ c phân phát đ n m t hay nhi u terminal và các mailbox. Choượ ế ộ ề t ng ng i nh n mail đ c phân phát đ n terminal c a ng i nh n n u ng iừ ườ ậ ượ ế ủ ườ ậ ế ườ nh n đó đang ho t đ ng trên host đó (và ch p nh n nh ng terminal message ) và choậ ạ ộ ấ ậ ữ t t c recipient thì đ n mailbox c a các recipient đo. Tr ng đ i s ch a m tấ ả ế ủ ườ ố ố ứ ộ reverse-path. L nh này thành công khi message đ c phân phát đ n mailbox.ệ ượ ế (adsbygoogle = window.adsbygoogle || []).push({});

Reverse-path bao g m m t danh sách các host tu ý và mailbox c a ng iồ ộ ỳ ủ ườ g i. Khi danh sách hoàn t t nó là m t l trình ngu n “tr v ” và ch đ nh mail đã đ cử ấ ộ ộ ồ ở ề ỉ ị ượ chia ca thông qua các host trong danh sách đó(host đ u tiên trong danh sách là host chiaầ ca g n nh t ) Danh sách này đ c dùng nh m t l trình ngu n tr v cho ng iầ ấ ượ ư ộ ộ ồ ả ề ườ g i nh ng thông báo v vi c không th phân phát. Khi m i host chia ca thêm ph nử ữ ề ệ ể ỗ ầ đ nh danh nó vào ch b t đ u c a danh sách đó nó ph i dùng tên mà nó đ c bi t đ nị ổ ắ ầ ủ ả ượ ế ế trong IPCE mà nó s chia ca mail đ n đó đúng h n là IPCE mà mail đ n t đó (n uẽ ế ơ ế ừ ế chúng khác nhau).

L nh này xoá ệ reverse-path buffer, forward-path buffer và mail data buffer và chèn thông tin reverse-path t l nh này vào trong ừ ệ reverse-path buffer.

RESET (RSET) : L nh này đ nh rõ giao d ch mail hi n hành b hu b . Cácệ ị ị ệ ị ỷ ỏ ng i g i, recipient, mail data đã l u s b hu b và t t c các b ng tr ng thái, cácườ ử ư ẽ ị ỷ ỏ ấ ả ả ạ buffer b xoá. Receiver ph i g i m t reply OK.ị ả ử ộ

VERIFY (VRFY) : L nh này yêu c u receiver xác nh n đ i s đ nh danh m tệ ầ ậ ố ố ị ộ user. N u nó là m t user name, full name c a user đó (n u receiver bi t) vàế ộ ủ ế ế mailbox đ c t đ y đ đ c tr v .L nh này không nh h ng đ n reverse-pathặ ả ầ ủ ượ ả ề ệ ả ưở ế buffer, forward-path buffer và data mail buffer.

EXPAND (EXPN) : L nh này yêu c u receiver xác nh n m t mailing listệ ầ ậ ộ (danh sách đ a ch ) và tr v m t thành ph n trong danh sách đó. Full name c a cácị ỉ ả ề ộ ầ ủ user (n u bi t) và nh ng mailbox đ c đ c t đ y đ đ c tr v trong m t replyế ế ữ ượ ặ ả ầ ủ ượ ả ề ộ nhi u dòng.ề

L nh này không nh h ng đ n reverse-path buffer, forward-path buffer vàệ ả ưở ế data mail buffer.

HELP (HELP) : L nh này làm cho receiver thông tin giúp đ cho ng i g iệ ỡ ườ ử l nh HELP. L nh này có th nh n m t đ i s (có th là tên l nh) và tr v thông tinệ ệ ể ậ ộ ố ố ể ệ ả ề chi ti t.ế

L nh này không nh h ng đ n reverse-path buffer, forward-path buffer vàệ ả ưở ế data mail buffer.

NOOP (NOOP) : L nh này không nh h ng các tham s hay các l nh đ cệ ả ưở ố ệ ượ đ a vào tr c nó, nó ư ướ đ c t không có m t hành đ ng nào khác h n là receiver g i m t replyặ ả ộ ộ ơ ử ộ OK.

L nh này không nh h ng đ n reverse-path buffer, forward-path buffer vàệ ả ưở ế data mail buffer.

QUIT (QUIT) : L nh này đ nh rõ receiver ph i g i m t reply OK và sau đóệ ị ả ử ộ đóng kênh giao d ch . Receiver s không đóng kênh giao d ch cho đ n khi nó nh n vàị ẽ ị ế ậ tr l i cho l nh QUIT (ngay c n u có m t l i xãy ra). Ng i g i s không đóngả ờ ệ ả ế ộ ỗ ườ ử ẽ kênh giao d ch cho đ n khi nó g i m t l nh QUIT và nh n reply đó (ngay c n u cóị ế ử ộ ệ ậ ả ế m t l i tr l i cho l nh tr c đó). N u k t n i b đóng tr c th i gian mongộ ỗ ả ờ ệ ướ ế ế ố ị ướ ờ mu n receiver s làm vi c nh v a nh n đ c m t l nh RSET (b t t c cácố ẽ ệ ư ừ ậ ượ ộ ệ ỏ ấ ả giao d ch đang treo mà ch a làm, nh ng không “undo” nh ng giao d ch đã hoàn t tị ư ư ữ ị ấ tr c đó) ng i g i s hành đ ng nh n u l nh hay giao d ch đó trong quá trình x lýướ ườ ử ẽ ộ ư ế ệ ị ử nh n đ c m t l i t m th i (4xx).ậ ượ ộ ỗ ạ ờ

TURN (TURN) : L nh này đ nh rõ Receiver-SMTP ph i g i m t trong haiệ ị ả ử ộ reply sau: (1) reply OK và sau đó nh n vai trò c a m t Sender-SMTP, hay (2) g iậ ủ ộ ử m t reply t ch i và gi l i vai trò m t Receiver-SMTP.ộ ừ ố ữ ạ ộ

N u program-A hi n t i là m t Sender-SMTP g i m t l nh TURN vàế ệ ạ ộ ử ộ ệ nh n m t reply OK (250) thì program-A tr thành Receiver-SMTP sau đóậ ộ ở program-A s trong tr ng thái kh i đ ng ch n u kênh giao chuy n đã đ c m , sauẽ ạ ở ộ ỉ ế ể ượ ở đó nó ch nh n m t chào h i d ch v đã s n sàng 220.ờ ậ ộ ỏ ị ụ ẵ

Để ừ t ch i thay đ i vai trò Receiver-SMTP g i m t reply 502.ố ổ ử ộ Có s h n ch trong tr t t khi dùng nh ng l nh này.ự ạ ế ậ ự ữ ệ

u tiên trong m t cu c trao i ph i là l nh HELLO, l nh này

Đầ ộ ộ đổ ả ệ ệ

trong l nh HELLO không ệ được ch p nh n m t reply failure 501ấ ậ ộ ph i ả được tr v và Receiver-SMTP ó ph i trong tr ng c .ả ề đ ả ở ạ ũ

Nh ng l nh NOOP, HELP, EXPAND và VRFY có th đ c dùng nhi u l nữ ệ ể ượ ề ầ

Một phần của tài liệu Tìm hiểu về các Web server thông dụng hiện nay Microsoft Internet Information Server; Apache Web Server (Trang 42)