tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

34
 CHƯƠNG 3 CÁC NGHI THC TRUYN NHN ---- χ  ---- Công vic phát trin các hthng Mail (Mail System) đòi hi hình thành các chun vMail. Điu này giúp cho vic gi nhn các thông đip được đảm bo , làm cho nhng người các nơi khác nhau có thtrao đổi thông tin cho nhau. Có 2 chun vMail quan trng nht và được sdng nhiu nht ttrước đến nay là X.400 và SMTP ( Simple Mail Transfer Protocol). SMTP thường đi kèm vi chun POP3 và do hn chế ca SMTP mà ngày nay người ta dùng chun mrng ca nó là ESMTP (Extended SMTP). Mc đích chính ca X.400 là cho phép các mail có thđược truyn nhn thông qua các loi mng khác nhau bt chp cu hình phn cng, hđiu hành mng , giao thc truyn dn được dùng. Còn mc đích ca chun SMTP miêu tcách điu khin các thông đip trên mng Internet. Điu quan trng ca chun SMTP là giđịnh máy nhn phi dùng giao thc SMTP gi Mail cho 1 Server luôn luôn hot động. Sau đó, người nhn sđến ly Mail ca htServer khi nào hmun dùng giao thc POP (Post Office Protocol), ngày nay POP được ci tiến thành POP3 (Post Officce Protocol vertion 3). Các giao thc Mail thông dng : chun X.400, chun MAIP, SMTP (ESMTP), POP3 . đây chtrình bày chi tiết vPOP3 và SMTP .  Phn 1 Giao thc SMTP  ( Simple Mail transfer Protocol ) ----- *** ----- Bphn chính ca hthng Internet Mail chính là các MTA ( Message Transfer Agent), các MTA gi1 vai trò quan trng trong vic chuyn giao email. Ví dsau khi mt người sdng gi mt bc mail ti hàng đợi message, MTA sly đó và chuyn nó ti mt MTA khác. Q uá trình đó stiếp tc tiếp din cho đến khi message đến được nơi nhn. Để có thliên lc vi các MTA thông qua kết ni TCP các MTA ca hthng Internet Mail có thsdng nhiu nghi thc khác nhau để chuyn giao các thông tin (X400,ESMTP,....), Nhưng đây ta chxét nghi thc SMTP. Đây là mt nghi thc cho  phép chuyn mail tđim này sang đim khác cho đến đích trên mng Internet. Nó được cu to bi tp các câu lnh để Client có thyêu cu Sever thc hin mt stác vvà tp các câu trli để Server hi đáp li cho Client vkết quthc hin các tác vđó. Mt chương trình mun gi được mail thì nó phi biết địa chca mt SMTP server. Server này có nhim vchuyn mail đến nơi cn thiết. I- Gii thiu Mt đặc trưng quan trng ca SMTP là khnăng chia ca Mail qua môi trường dch vgiao chuyn, mt dch vgiao chuyn cung cp mt môi trường truyn thông liên quá trình (Inter process Communication Environment –  IPCE ). Mt môi trường truyn thông liên quá trình có thbao gm mt Network, vài Network, hay mt tp hp con ca Network.

Transcript of tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

Page 1: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 1/34

 

CHƯƠNG 3CÁC NGHI THỨC TRUYỀN NHẬN

---- χ  ----Công việc phát triển các hệ thống Mail (Mail System) đòi hỏi hình thành các chuẩn về

Mail. Điều này giúp cho việc gởi nhận các thông điệp được đảm bảo , làm cho nhữngngười ở các nơi khác nhau có thể trao đổi thông tin cho nhau.Có 2 chuẩn về Mail quan trọng nhất và được sử dụng nhiều nhất từ trước đến nay là

X.400 và SMTP ( Simple Mail Transfer Protocol). SMTP thường đi kèm với chuẩnPOP3 và do hạn chế của SMTP mà ngày nay người ta dùng chuẩn mở rộng của nó làESMTP (Extended SMTP). Mục đích chính của X.400 là cho phép các mail có thểđược truyền nhận thông qua các loại mạng khác nhau bất chấp cấu hình phần cứng, hệđiều hành mạng , giao thức truyền dẫn được dùng. Còn mục đích của chuẩn SMTPmiêu tả cách điều khiển các thông điệp trên mạng Internet. Điều quan trọng của chuẩnSMTP là giả định máy nhận phải dùng giao thức SMTP gởi Mail cho 1 Server luônluôn hoạt động. Sau đó, người nhận sẽ đến lấy Mail của họ từ Server khi nào họ

muốn dùng giao thức POP (Post Office Protocol), ngày nay POP được cải tiến thànhPOP3 (Post Officce Protocol vertion 3). Các giao thức Mail thông dụng : chuẩn X.400,chuẩn MAIP, SMTP (ESMTP), POP3 . Ở đây chỉ trình bày chi tiết về POP3 vàSMTP .

 Phần 1Giao thức SMTP  ( Simple Mail transfer Protocol ) 

-----***-----Bộ phận chính của hệ thống Internet Mail chính là các MTA ( Message Transfer 

Agent), các MTA giữ 1 vai trò quan trọng trong việc chuyển giao email. Ví dụ sau khi mộtngười sử dụng gửi một bức mail tới hàng đợi message, MTA sẽ lấy đó và chuyển nó tớimột MTA khác. Quá trình đó sẽ tiếp tục tiếp diễn cho đến khi message đến được nơi nhận.Để có thể liên lạc với các MTA thông qua kết nối TCP các MTA của hệ thống InternetMail có thể sử dụng nhiều nghi thức khác nhau để chuyển giao các thông tin(X400,ESMTP,....), Nhưng ở đây ta chỉ xét nghi thức SMTP. Đây là một nghi thức cho phép chuyển mail từ điểm này sang điểm khác cho đến đích trên mạng Internet. Nó đượccấu tạo bởi tập các câu lệnh để Client có thể yêu cầu Sever thực hiện một số tác vụ và tậpcác câu trả lời để Server hồi đáp lại cho Client về kết quả thực hiện các tác vụ đó. Mộtchương trình muốn gởi được mail thì nó phải biết địa chỉ của một SMTP server. Server nàycó nhiệm vụ chuyển mail đến nơi cần thiết.

I- Giới thiệuMột đặc trưng quan trọng của SMTP là khả năng chia ca Mail qua môi trường dịch vụ

giao chuyển, một dịch vụ giao chuyển cung cấp một môi trường truyền thông liên quá trình(Inter process Communication Environment –  IPCE ). Một môi trường truyền thông liênquá trình có thể bao gồm một Network, vài Network, hay một tập hợp con của Network.

Page 2: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 2/34

 

Điều đó quan trọng cho việc thực hiện hệ thống giao chuyển (hay các IPCE) one-to-onevới Network, một quá trình có thể giao tiếp với một quá trình khác thông qua việc nhận biết IPCE. Mail là ứng dụng hay là cách dùng của giao tiếp liên quá trình, Mail có thể giaotiếp giữa các quá trình trong những IPCE khác bằng cách chia ca thông qua một quá trìnhđược kết nối đến hai (hay nhiều ) IPCE. Chi tiết hơn Mail có thể chia ca giữa những Host

trên hệ thống giao chuyển khác nhau bằng một Host trên cả hai hệ thống chuyển giao.

II- Mô hình SMTPSMTP được thiết kế dựa trên mô hình giao tiếp sau: như kết quả của một yêu cầu Mail

của user . Sender- SMTP thiết lập một kênh hai đường vận chuyển đến một receiver-SMTP . Receiver- SMTP có thể là đích đến cuối cùng hay một trung gian. Những lệnhSMTP được sinh ra bởi Sender-SMTP gửi đến Receiver- SMTP. Những reply SMTP đượcgử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ị choSender 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 toà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ànhcô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).

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 hayqua nhiều SMTP-Sever tiếp vận khi host xuất phát hay đích đến không được kết nối đếncùng dịch vụ chuyển giao. Để có thể cung cấp khả năng tiếp vận SMTP-Sever phải đượccung 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ìnhnguồn, reverse-path là một lộ trình trở về (nó có thể được dùng để trả về một message chosender- khi xảy ra lỗi với 1 message được tiếp vận).

Khi cùng một message được gửi cho nhiều recipient SMTP khuyến khích chuyểngiao 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 hoàn chỉnh trong phần 4.

SenderSMTP

Receiver

SMTP

User

FileSyste

m

File

System

SMTP

Commands/Replies

and Mail

Sender-SMTP

Receiver-SMTP

Page 3: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 3/34

 

Các command và reply không phân biệt kiểu chữ hoa hay thường. Lưu ý, điều nàykhô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 namenhư chúng đã xuất hiện trong những đối số của mailbox. Host names không phân biệt kiểuchữ.

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ếnmeta-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ư, “<[email protected]>” là một trường hợp của <reverse-path> (dấu ngoặc nhọn được giao chuyểntrong command và reply là mã thực của nó).

III . Mail1- 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 sender, tiếp theo sau là một chuỗi của một hay nhiều lệnh RCPT traonhững thông tin của receiver, sau đó một lệnh DATA cho mail data.Và cuối cùng là phầnchỉ đị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 rareverse-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à hostgữ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ôngnhận biết thì receiver trả về reply 550 Failure. Bước thứ hai của thủ tục này có thể lặplạ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à hostnhận lệnh này.

Bước thứ ba trong thủ tục là lệnh DATADATA <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ộtreply 250 OK.

Page 4: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 4/34

 

Kể từ mail data được gửi trên kênh chuyển giao, điểm kết thúc của mail data phảiđược chỉ định để hội thoại command và reply có thể bắt đầu trở lại. SMTP chỉ định kếtthúc của mail data 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 choreceiver-SMTP biết để xử lý việc lưu trữ recipient và mail data ngay lúc đó. Nếu đượcchấp nhận receiver-SMTP trả về một reply 250 OK. Lệnh DATA sẽ chỉ fail nếu giao dịchmail không hoà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ùngtrong 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 tronut; 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 mailboxtrê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 sausẽ được dùng để cho phép sender tiếp xúc đích đến đúng :

251 User not local  ; will forward to <forward-path>

Reply này chỉ cho receiver-SMTP biết mailbox của user đó nằm trên một host khácvà chỉ định forward-path đúng để sau đó sử dụng. Lưu ý một trong hai host hay user hay cả hai có thể khác nhau . Receiver chịu trách nhiệm cho việc phân phối nhữngmessage.

551 User not local ; please try <forward-path>Reply này chỉ cho receiver-SMTP biết mailbox của user nằm trên một host khác và

chỉ định forward-path đúng để sử dụng . Lưu ý host hoặc là user hay cả hai có thể khácnhau . Receiver từ chối chấp nhận mail cho user A. Sender phải định hướng lại chomail đó tuỳ theo những thông tin được cung cấp hoặc là trả trả lời error cho user khởiđầu.Ví dụ sau minh hoạ cách dùng của những đáp ứng này :

S: RCPT TO:[email protected]

R: 251 User not local; will forward to <[email protected]>Hay

S: RCPT TO:<[email protected]>R: 551 User not local; please try [email protected]

3- Kiểm tra và mở rộng :  SMTP cung cấp thêm những điểm đặc trưng, các lệnh để kiểm tra một user namehay mở rộng một danh sách địa chỉ được làm với lệnh VRFY và EXPN nó dùng đối số

Page 5: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 5/34

 

kiểu chuổi ký tự. Với lệnh VRFY chuỗi đó là một user name, và câu trả lời(response) cóthể bao gồm full name của user đó và phải bao gồm mailbox của user đó. Với lệnh EXPNchuổi đó định danh một danh sách địa chỉ và câu trả lời có nhiều dòng có thể chứa fullname của các user đó và phải chứa những mailbox trên danh sách địa chỉ (mailing list).

Nếu một host được bổ sung lệnh VRFY hay EXPN thì ít nhất những mailbox cục

 bộ phải được thừa nhận như là“user names”. Nếu một host chọn lựa để thừa nhận nhữngchuổi khác như “user names” thì điều đó được cho phép.Trong một số host sự phân biệt giữa một mailing list và một bí danh cho single

mailbox hơi mơ hồ. Từ đó một cấu trúc dữ liệu phổ biến có thể giữ cả hai kiểu phần tử vànó có thể dùng các mailing list của một mailbox. Nếu một yêu cầu được tạo ra để kiểm tramột mailing list một câu trả lời khẳng định có thể được cho nếu trên message nhận được đãđược định địa chỉ nó sẽ được phân phát cho tất cả mọi người trong danh sách đó. Mặt khácmột lỗi sẽ được báo cáo (e.g., "550 That is a mailing list, not a user"). Nếu một yêu cầuđược tạo ra để mở rộng một user name một câu trả lời khẳng định có thể được cấu hình bằng cách trả về một danh sách chứa một tên hay một lỗi có thể được báo cáo (e.g., "550That is a user name, not a mailing list").

Trong trường hợp một reply nhiều dòng (thường cho EXPN) là một mailbox đượcđặc tả trên từng dòng của reply đó một cách chính xác. Trong trường hợp này một yêu cầunhập nhằng khó hiểu như : “VRFY Smith” có hai câu trả lời của Smith phải là "553 User ambiguous".  Ví dụ kiểm tra một user name

S: VRFY SmithR: 250 Fred Smith <[email protected]>

HayS: VRFY SmithR: 251 User not local; will forward to <[email protected]>

Hay

S: VRFY JonesR: 550 String does not match anything.Hay

S: VRFY JonesR: 551 User not local; please try <[email protected]>

HayS: VRFY GourzenkyinplatzR: 553 User ambiguous.

Trường hợp mở rộng một mailbox list đòi hỏi một reply nhiều dòng xem trong vídụ sau: mở rộng một mailing list (danh sách địa chỉ)

S: EXPN Example-People

R: 250-Jon Postel <[email protected]>R: 250-Fred Fonebone <[email protected]>R: 250-Sam Q. Smith <[email protected]>R: 250-Quincy Smith <@USC-ISIF.ARPA:[email protected]>R: 250-<[email protected]> R: 250 <[email protected]>

HayS: EXPN Executive-Washroom-ListR: 550 Access Denied to You.

Page 6: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 6/34

 

 Những đối số chuổi ký tự của lệnh VRFY và EXPN không thể vượt qua giới hạnđược quyền trên sự bổ sung đa dạng của user name và khái niệm mailbox. Trên một số hệthống nó có thể dành riêng cho đối số của lệnh EXPN để là một file name cho một filechứa một mailing list nhưng lại có một qui ước đa dạng của việc đặc tên file trong internet.

Lệnh VRFY và EXPN không được bao gồm trong sự thực thi tối thiểu (trình bày

trong phần sau) và không được đòi hỏi để làm việc thay ca khi chúng được thực thi.

4- Sending and Mailing :Mục đích chính của SMTP là phân phối những message đến những mailbox của

user . Một dịch vụ rất phổ biến được cung cấp bởi một số host là để phân phối nhữngmessage đến những terminal của user( cung cấp cho user làm việc trên host đó) . Sự phân phát đến những mail box của user được gọi là “mailing”, sự phân phát đến những user terminal được gọi là “sending”. Bởi vì một số host có sự thực thi của sending gần giốngvới sự thực thi của mailing chúng là hai chức năng được liên kết với SMTP. Mặc dù lệnhsending không bao gồm trong yêu cầu thực thi tối thiểu( xem phần sau). Những user có khảnăng điều khiển việc ghi message lên những terminal của họ. Hầu hết các host cho phép

chấp nhận hay từ chối những message.Ba lệnh sau được định nghĩa để cung cấp những option cho sending. Chúng đượcdùng trong giao dịch mail thay cho lệnh MAIL và cung cấp cho receiver-SMTP những ngữnghĩa giao dịch đặc biệt

SEND <SP> FROM:<reverse-path> <CRLF>

Lệnh SEND đòi hỏi mail data được gửi đến user terminal. Nếu user đó không hoạtđộng (hay không chấp nhận những terminal message) trên host đó một reply 450 có thểđược trả cho một lệnh RCPT. Giao chuyển mail thành công khi message đó được phân phát đến terminal.

  SOML <SP> FROM:<reverse-path> <CRLF>

Lệnh này là SEND Or MAIL đòi hỏi mail data được phân phát đến terminal củauser nếu user đó đang hoạt động (và chấp nhận những message terminal) trên host đó. Nếuuser không hoạt động (haykhông chấp nhận terminal message) thì mail data được đưa vàotrong mailbox của user . Giao chuyển mail thành công khi message đó được phân phát đếnterminal hay mailbox.

  SAML <SP> FROM:<reverse-path> <CRLF>

Lệnh này là SEND And MAIL đòi hỏi mail data được phân phát đến terminal củauser nếu user đó đang hoạt động (và chấp nhận những message terminal) trên host đó.Trong những tất cả trường hợp mail data được đưa vào trong mailbox của user. Giao dịchmail thành công khi message đó được phân phát đến mailbox.

 Những mã reply tương tự được dùng cho lệnh MAIL cũng được dùng cho nhữnglệnh này.

5- Opening and Closing :   Ngay thời điểm mà kênh giao chuyển được open có một sự trao đổi để đảm bảonhững host đó đang giao tiếp với những host khác.

Hai lệnh sau được dùng trong việc đóng mở kênh truyềnHELLO <SP> <domain><CRLF>

Page 7: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 7/34

 

QUIT <CRLF>Trong lệnh HELLO host này gửi đi những nhận dạng lệnh của nó có thể được dịch

như "HELLO, I am <domain>".* Ví dụ mở kết nối :

Opening R : 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready

S : HELO USC-ISIF.ARPAR: 250 BBN-UNIX.ARPA* Ví dụ đóng kết nối :

Closing S: QUITR :221 BBN-UNIX.ARPA Service transmission channel.

6- Chia ca (Relaying) :Forward-path có thể là một lộ trình nguồn của form

"@ONE, @TWO:JOE@THREE"với ONE ,TWO, THREE là các host.

Form này được dùng để nhấn mạnh sự phân biệt giữa một address và một route.

Mailbox là một address tuyệt đối, và route là thông tin về việc lấy chúng như thế nào . Những thành phần của forward-path được chuyển đến reverse-path khi message đóđược chia ca từ một server SMTP đến một server-SMTP khác. Reverse-path là một lộ trìnhnguồn trở về (khác với một lộ nguồn là từ vị trí hiện hành của message đến điểm khởi đầucủa message đó). Khi một server SMTP xóa phần nhận dạng của nó trong forward-path vàchèn phần nhận dạng của nó vào trong reverse-path, nó phải dùng cái tên mà nó được biếttới trong môi trường mà nó sẽ gửi vào, không phải là môi trường mà mail từ đó đến, trongtrường hợp server-SMTP được biết đến với những tên khác nhau trong những môi trườngkhác nhau.

 Nếu một message đến một SMTP thành phần đầu tiên của forward-path không phảilà phần nhận dạng của SMTP đó, thành phần này không bị xoá trong forward-path và được

dùng để xác định SMTP kế để gửi message đến. Trong trường hợp này SMTP thêm phầnnhận dạng của nó vào reverse-path..Dùng lộ trình nguồn receiver-SMTP nhận mail để chia ca đến một server-SMTP

khác. Receiver-SMTP đó có thể chấp nhận hoặc bác bỏ công việc chia ca cho mail, nhưcách nó chấp nhận hay bác bỏ mail cho một user cục bộ. Receiver-SMTP thay đổi nhữngđối số lệnh bằng cách chuyển phần nhận dạng của nó từ forward-path vào chổ mở đầu củareverse-path. Sau đó receiver-SMTP trở thành sender-SMTP, thiết lập một kênh truyền đếnSMTP kế trong forward-path,và gửi mail đó cho nó.

Host đầu tiên trong reverse-path sẽ là host gửi các lệnh SMTP và host đầu tiêntrong forward-path sẽ là host các nhận các lệnh SMTP .

Lưu ýrằng forward-path và reverse-path xuất hiện trong các lệnh và các reply

SMTP, nhưng nó không cần thiết xuất hiện trong message . Nó không cần thiết cho nhữngđường dẫn và cú pháp đặc biệt này xuất hiện trong những field của message header như"To:" , "From:", "CC:",….

 Nếu một server-SMTP chấp nhận công việc chia ca mail và sau đó thấy forward- path không đúng hay mail đó không thể được phân phát được vì bất cứ lí do nào, thì nó phải xây dựng một message thông báo "undeliverable mail" (mail không thể phân phát) vàgửi nó đến nơi xuất phát của mail không thể phân phát đó(được chỉ định trong reverse- path). Message thông báo này phải là từ server-SMTP tại host đó. Dĩ nhiên những server-

Page 8: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 8/34

 

SMTP sẽ không gữi những message thông báo về những sự cố xảy ra cho message thông báo đó. Một cách ngăn chặn sự lặp lại trong việc thông báo lỗi là đặc tả một null reverse- path trong lệnh MAIL của message một thông báo. Khi một message thông báo như vậyđược chia ca nó được dùng để loại bỏ reverse-path null. Một lệnh MAIL với null reverse- path như dưới đây:

MAIL FROM:< >Thông báo này nằm trong trả lời cho một message được khởi động bởi JOE tạiHOSTW và gửi thông qua HOSTX đến HOSTY với chỉ thị chia ca nó đến HOSTZ, nó là bước đầu tiên trong việc trả về message thông báo .

Ví dụ message thông báo mail không thể phân phátS: MAIL FROM:<>R: 250 ok S: RCPT TO:<@HOSTX.ARPA:[email protected]>R: 250 ok S: DATA R: 354 send the mail data, end with .S: Date: 23 Oct 81 11:22:33 S: From: [email protected]

S: To: [email protected]: Subject: Mail System ProblemS:S: Sorry JOE, your message to [email protected] lost.S: HOSTZ.ARPA said this:S: "550 No Such User"S: .R: 250 ok 

8-Thay đổi vai trò :Lệnh TURN có thể dùng để đảo vai trò của hai chương trình đang giao tiếp trên

kênh giao chuyển. Nếu chương trình A đang là sender-SMTP hiện hành và nó gửi lệnh TURN và nhậnmột reply OK(250) thì chương trình A trở thành receiver-SMTP.

 Nếu chương trình B đang hiện hành receiver-SMTP hiện hành và nó gửi lệnhTURN và nhận một reply OK(250) thì chương trình B trở thành sender-SMTP.

Để từ chối thay đổi vai trò receiver gửi reply 502Lưu ý là lệnh này không bắt buộc. Thường nó không được dùng trong tình trạng

kênh giao chuyển là TCP. Tuy nhiên khi trị giá cho việc thiết lập kênh giao chuyển cao,lệnh này có thể rất có ích. Ví dụ như lệnh này có ích trong việc hổ trợ là trao đổi mail dùnghệ thống public switched telephone làm một kênh giao chuyển, đặc biệt nếu một số host đềcử các host khác cho việc trao đổi mail.

IV. Đặc tả SMTPA. Những lệ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ữ (alphabetic) kết thúc bởi <SP> nếu có những tham

Page 9: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 9/34

 

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 receiver. 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 đốisố 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 datathì 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. Fieldđố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àyvà một reply OK để xác nhận cả hai sender-SMTP và receiver-SMTP đang trong tìnhtrạ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. Rever _se - path bao gồm một danh sách các host tuỳ ý và mailbox của user. Khi danh sách cáchost hoàn tất nó là một lộ trình nguồn “trở về” và chỉ định mail đó được chia ca thôngqua mỗi host trên danh sách đó (host đầu tiên trong list là host chia ca gần nhất). Listnày được dùng như một lộ trình nguồn để trả về sender 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 đầucủ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ạimessage 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 recipient (người nhận) mail datariêng lẻ, nhiều recipient được đặc tả bằng nhiều lệnh này. Forward-path bao gồm mộtdanh 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ếptrên list đó. Nếu receiver-SMTP không thực thi chức năng chia ca nó có thể dùng đượcreply 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ủareverse-path. Khi mail trải ra tới đích cuối cùng (forward-path chỉ chứa một mailboxđích) receiver-SMTP Insert 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:<[email protected]>TO:<@HOSTA.ARPA,@HOSTB.ARPA:[email protected]>

Sẽ được chia ca đến host B với đối sốFROM:<@HOSTA.ARPA:[email protected]>TO:<@HOSTB.ARPA:[email protected]>.

Page 10: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 10/34

 

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

DATA(DATA) : Receiver xử lý những dòng theo sau lệnh này khi mail data từ sender đế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ã ACII. 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 receiver 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ị xoaược nhận, 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ó insert vàochổ bắt đầu của mail data một dòng return-path . Dòng return-path đó bảo quản thôngtin trong “reverse-path” từ lệnh mail. Ơ đây deliver final có nghĩa là message đó rờikhỏ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ởihệ 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,

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ểnmailbox.

Hai đoạn trước ý nói mail data cuối cùng sẽ bắt đầu với một dòng return paththeo 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ầnheader 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ànhcô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 recipient và data

mail receiver-SMTP thấy mail data đó có thể được phân phát đến một số recipientthà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ệcchỉ định vị trí của mailbox). Trong tình trạng như vậy câu trả lời cho lệnh DATA phảilà 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ácrecipient không nhận được message, hay những message thông báo riêng lẽ phải đượcgử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ửidù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ậnReturn-Path: <@GHI.ARPA,@DEF.ARPA,@ABC.ARPA:[email protected]>

Received: from GHI.ARPA by JKL.ARPA ; 27 Oct 81 15:27:39 PSTReceived: from DEF.ARPA by GHI.ARPA ; 27 Oct 81 15:15:13 PSTReceived: from ABC.ARPA by DEF.ARPA ; 27 Oct 81 15:01:59 PSTDate: 27 Oct 81 15:01:01 PSTFrom: [email protected]: Improved Mailing System InstalledTo: [email protected] This is to inform you that ...

Page 11: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 11/34

 

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. Field đối số chứa một reverse-path. Lệnh nàythà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 sender tuỳ ý khi list đó hoàntấ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 đượcdùng như một lộ trình nguồn để trả về cho sender 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 đó , đúnghơ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ènthô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, datamail được phân phát đến terminal của recipient nếu recipient đó đ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ữngrecipient đó. Field đố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 sender . Khidanh 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à hostchia ca gần nhất). Danh sách này được dùng như một lộ trình nguồn trả về cho sender 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 địnhdanh nó vào chổ bắt đầu của danh sách đó, nó phải dùng tên được biết đến trong IPCEnơi nó sẽ chia ca mail đến đó đúng hơn là IPCE có mail đến từ đó(nếu chúng khácnhau).

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ừngrecipient data mail được phân phát đến terminal của recipient nếu recipient đó đanghoạt động trên host đó (và chấp nhận những terminal message ) và cho tất cả recipientthì đến mailbox của các recipient đo. Field đối số chứa một reverse-path . lệnh nàythành công khi message được phân phát đến mailbox.

Reverse-path bao gồm một danh sách các host tuỳ ý và mailbox của sender.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 cagần nhất ) Danh sách này được dùng như một lộ trình nguồn trả về cho sender nhữngthô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.????????

Page 12: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 12/34

 

RESET (RSET) : Lệnh này định rõ giao dịch mail hiện hành bị huỷ bỏ. Các sender,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à datamail buffer.

HELP (HELP) : Lệnh này làm cho receiver thông tin giúp đỡ cho sender 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àotrướ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 replyOK.

Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer và datamail 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 cholệnh QUIT (ngay cả nếu có một lỗi xãy ra). Sender 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 cholệnh trước đó). Nếu kết nối bị đóng trước thời gian mong muốn receiver sẽ làm việcnhư 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 đó) sender 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 phải gửi một trong hai reply sau: (1) replyOK 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ộtreply OK (250) thì program-A trở thành receiver-SMTP sau đó program-A sẽ trongtrạng thái khởi động chỉ nếu kênh giao chuyển đã được mở, sau đó nó chờ nhận mộtchào hỏi dịch vụ đã sẵn sàng 220.

Để từ chối thay đổi vai trò receiver 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 có thể được dùng

sau đó trong một cuộc trao đổi khác. Nếu đối số trong lệnh HELLO không được chấp

Page 13: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 13/34

 

nhận một reply failure 501 phải được trả về và receiver-SMTP đó phải ở trong trạngcũ.

Những lệnh NOOP, HELP, EXPAND và VRFY có thể được dùng nhiều lần trongmột cuộc giao dịch.

Các lệnh MAIL, SEND, SOML, và SAML bắt đầu một giao dịch mail. Khi bắtđầu một giao dịch mail bao gồm một lệnh khởi tạo giao dịch , một hay nhiều lệnhRCPT, và một lệnh DATA đó là một trật tự . một giao dịch mail có thể được bỏ qua bởi một lệnh RSET có thể có hay không có nhiều giao dịch trong một cuộc trao đổi(session).

Nếu đối số của lệnh khởi động giao dịch không thể chấp nhận một reply failure501 phải được trả về và sercer-SMTP phải nằm trong trạng thái cũ. Nếu những lệnhtrong cuộc giao dịch không đúng trật tự một reply failure 503 được trả về và receiver-SMTP đó phải nằm trong trạng thái cũ.

Lệnh cuối cùng trong cuộc trao đổi phải là lệnh QUIT và lệnh QUIT không thểđược dùng nhiều lần trong một cuộc trao đổi.

  2- Cú pháp lệnh :  Những lệnh này bao gồm một mã lệnh theo sau là một field đối số . Mã lệnh là

 bốn ký tự chữ . Những ký tự thường và hoa được xữ lý như nhau . Vậy những từ sau đâycó thể đại diện cho lệnh MAIL:

MAIL Mail mail MaIl mAIlỞ đây cũng dùng một số ký hiệu trình bày cho những giá trị của tham số , chẳng

hạn như “TO” hay “to” cho forward-path. Mã lệnh và những field đối số được tách ra bởimột hay nhiều khoảng trắng. Tuy nhiên bên trong những đối số reverse-path và forward- path kiểu chữ rất quan trọng. Trong một số host user “vu” khác với user “Vu”.

Field đối số gồm có một biến chiều dài chuổi ký tự, kết thúc với chuổi <CLRF>.

Receiver không nhận hành động cho đến khi nhận được chuổi <CLRF> này.Dấu ngoặc vuông biểu thị một field đối số tuỳ ý. Nếu không nhận chọn lựa nàymột defaul phù hợp sẽ được áp dụng.

  Sau đây là những lệnh 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>

Page 14: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 14/34

 

Cú pháp của những field đối số trên( dùng ký hiệu BNF có thể áp dụng được ở đây)được cho bên dưới. Ký hiệu “…” chỉ định mộ field có thể được lặp một hay nhiều lần.

<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 Zin 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ú ý dấu suyệt ngược “\” là một ký tự định đặt, nó được dùng chỉ định ký tự kếtiếp được dùng một cách literal (thay cho sự thông dịch thông thường của nó) ví dụ như"Van\,Sam" sẽ được dùng chỉ định một ký tự một field bảy ký tự đơn với dấu phẩy là kýtự thứ tư của field.

Thường những host được biết đến bằng những cái tên , nó được biên dịch thành địachỉ của mỗi host. Lưu ý tên phần tử của domains phải là tên chính thức, không dùng tênhiệu hay bí danh.

Page 15: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 15/34

 

Thỉnh thoảng một host không biết đến chức năng biên dịch và sự giao tiếp bị khoá.Để phớt lờ chướng ngại này hai cấu trúc dạng số cũng được chấp nhận cho “names” củahost. Một dạng là một số nguyên hệ thập phân nằm sau ký hiệu giới hạn “#” nó chỉ định sốnày là địa chỉ của host. Một dạng khác là bốn số nguyên nhỏ bao trong dấu ngoặc vuôngvà cách nhau bởi những dấu chấm như "[123.255.37.2]". Nó chỉ định một địa chỉ 32 bit-

ARPA internet trong bốn field 8 bit.Dòng đánh dấu thời gian và dòng đường dẫn trở về thường được định nghĩa 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 ( Tên chuẩn cho những liên kết được đăng ký với   Net Work  Information Center )

<protocol> ::= The standard names for protocols are registered with the Network Information Center.( Tên chuẩn cho những protocol được đăng ký với 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 inthe 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:[email protected]>

Ví dụ : dòng đánh dấu thời gian :Received: FROM ABC.ARPA BY XYZ.ARPA ; 22 OCT 81 09:23:59 PDT

Page 16: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 16/34

 

Receiveh bày trong Sequencing của phần V.3 và lược đồ trạng thái của phần V.4

Một reply SMTP bao gồm một số ba chữ số (được truyền như ba ký tự chữ số) theosau là một số văn bản (text). Số đó được dành cho các chương trình tự động để xác địnhtrạng thái đưa vào kế tiếp. Text ở trên có ý nghĩa cho user con người(không phải máy). Ba

chữ số đó được ấn định chứa đầy đủ thông tin được mã hoá sender-SMTP không cần kiểmtra text đó và có thể huỷ bỏ hay chuyển nó qua một user thích hợp. Đặc biệt text này có thểđộc lập với receiver và độc lập với ngữ cảnh, do có sự giống nhau trong những text khácnhau từng mã reply. Nguyên lý của những mã reply cho trong phụ lục E. thông thườngmột reply được định nghĩa là chuổi gồm: một mã ba chữ số, <SP>, một dòng text, và<CRLF>, hay một reply nhiều dòng (như định nghĩa trong phụ lục E) chỉ những lệnhEXPN và HELP có kết quả là những reply nhiều dòng trong những tình huống bìnhthường, tuy nhiên những reply nhiều dòng được chấp nhận cho nhiều lệnh.

  1. Những mã Reply cho một nhóm các chức năng : 500 Lỗi cú pháp, không chấp nhập lệnh

[nó có thể bao gồm những lỗi như: lệnh quá dài]501 Lỗi cú pháp trong những đối số hay những tham số lệnh không được cung cấp dòng lệnh sai tham số của lệnh không được cung cấp

211 Trạng thái hệ thống, hay trả lời giúp đỡ về hệ thống 214 Thông điệp giúp đỡ 

[thông tin về làm thế nào để dùng receiver hay ý nghĩa của mộtlệnh không chuẩn đặc biệt ; reply này rất có ích cho người sử dụng]

220 <domain> dịch vụ sẳn sàng221 <domain> dịch vụ đóng kênh giao chuyển

421 <domain> dịch vụ không dùng được, đóng kênh giao chuyển[nó có thể là một reply cho nhiều lệnh nếu dịch vụ đó biết replynày phải shut down]

250 Hành dộng mail yêu cầu ok, hoàn thành251 User không cục bộ, sẽ hướng đến “forward-path”450 K hông lấy hành động mail yêu cầu: mailbox không có hiệu lực

[chẳng hạn như mailbox không tìm thấy, không truy xuất được]451 Bỏ qua hành động được yêu cầu; lỗi trong quá trình xử lý551  User không cục bộ, vui lòng thử lại <forward-path>452  K hông nhận hành động được yêu cầu : lưu trữ của hệ thống không

đủ

552  Bỏ qua hành động mail yêu cầu: vượt quá chỉ định lưu trữ553 K hông nhận hành động được yêu cầu : không chấp nhận tênmailbox [như sai cú pháp mailbox].

554 K hởi động việc nhận mail; kết thúc với <CLRF>.<CLRF> giaochuyển bị sai.

  2. Thứ tự của danh sách những mã Reply số  :211 Tình trạng hệ thống, hay reply giúp đỡ hệ thống .

Page 17: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 17/34

 

  214 Thông điệp giúp đỡ.{thông tin làm thế nào để dùng receiver hay ý nghĩa của một lệnh khôngchuẩn đặc biệt ; reply này rất có ích cho người sử dụng]220 <domain> dịch vụ sẳn sàng221 <domain> dịch vụ đóng kênh giao chuyển

250 Hành động mail yêu cầu OK, hoàn thành251 User không cục bộ; sẽ hướng đến <forward-path>354 Khởi động việc nhập mail; kết thúc với <CLRF>. <CLRF>

421 <domain> dịch vụ không sử dụng được, đóng kênh giao chuyển[nó có thể là một reply cho nhiều lệnh nếu dịch vụ đó biết reply

này phải shut down]450 Không lấy hành động mail yêu cầu; mailbox không hiệu lực

[như mailbox bận]450 Bỏ qua hành động được yêu cầu ; lỗi cục bộ trong quá trình xử lý451 Không nhận hành động được yêu cầu; lưu trữ của hệ thống

không đủ.500 Lỗi cú pháp; không chấp nhận lệnh

[nó có thể bao gồm những lỗi như: lệnh quá dài]501 Lỗi cú pháp trong tham số hay đối số502 Lệnh không được cung cấp503 Dòng lệnh sai504 Tham số của dòng lệnh không được cung cấp550 Không nhận hành động được yêu cầu ; mailbox không hiệu lực

[như mailbox không tìm thấy hay không truy cập được]551 User không cục bộ; vui lòng thử <forward-path>

552 Bỏ qua hành động mà mail yêu cầu, vượt quá chỉ định lưu trữ554 Không nhận hành động được yêu cầu; tên mailbox không đượcchấp nhận. [như sai cú pháp mailbox] giao chuyển sai.

3.  Sự liên tục của những Command & Reply :Sự giao tiếp giữa sender và receiver được định là một cuộc hội thoại tuần tự do

sender điều khiển. Chẳng hạn như sender sinh ra một lệnh và receiver trả lời với một reply.Sender phải chờ sự trả lời này trước khi gửi thêm lệnh.

Một reply quan trọng là chào hỏi kết nối. Thông thường một receiver sẽ gửi mộtreply 220 “service ready” khi kết nối hoàn thành. Sender phải chờ thông điệp chào hỏi nàytrước khi gửi các lệnh.

Lưu ý: tất cả các reply kiểu chào hỏi dùng tên chính thức của host server là từ đầu

tiên theo sau mã replyVí dụ :

220 <SP> USC-ISIF.ARPA <SP> Service ready <CRLF>Bảng bên dưới liệt kê những reply thành công và thất bại cho mỗi lệnh nó phải được gia

nhập vào một cách nghiêm ngặt để; một receiver có thể thay thế text trong các reply nhưngý nghĩa và hành động được định bởi mã số và bởi chuỗi command reply đặc trưng khôngthể bị thay đổi.

Page 18: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 18/34

 

  *- Những chuỗi COMMAND-REPLY Mỗi lệnh được liệt kê với các reply có thể của nó. Những tiền tố được dùng trước

những reply có thể là “P” để khởi đầu (không dùng trong SMTP) “I” cho phần giữa, “S”cho sự thành công và “E” cho lỗi. Reply 421 (dịch vụ không hiệu lực, đóng kênh giao

chuyển) có thể cho một số lệnh nếu receiver-SMTP nhận biết rằng nó phải shut down. Sựliệt kê sau đây là cấu trúc cơ bản cho sơ đồ trạng thái(state diagram) trong phần IV.C

CONNECTION ESTABLISHMENT (thiết lập kết nối)S: 220F: 421

HELLOS: 250E: 500, 501, 504, 421

MAILS: 250F: 552, 451, 452

E: 500, 501, 421RCPT

S: 250, 251F: 550, 551, 552, 553, 450, 451, 452E: 500, 501, 503, 421

DATAI: 354 -> data -> S: 250F: 552, 554, 451, 452F: 451, 554E: 500, 501, 503, 421

RSET

S: 250E: 500, 501, 504, 421

SENDS: 250F: 552, 451, 452E: 500, 501, 502, 421

SOMLS: 250F: 552, 451, 452E: 500, 501, 502, 421

SAML

S: 250F: 552, 451, 452E: 500, 501, 502, 421

VRFYS: 250, 251F: 550, 551, 553E: 500, 501, 502, 504, 421

EXPN

Page 19: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 19/34

 

S: 250F: 550E: 500, 501, 502, 504, 421

HELPS: 211, 214

E: 500, 501, 502, 504, 421NOOPS: 250E: 500, 421

QUITS: 221E: 500

TURNS: 250F: 502E: 500, 503

C- Sơ đồ trạng thái (STATE DIAGRAM)Dưới đây là sơ đồ trạng thái cho một sự thi hành SMTP đơn giản. Chỉ một chữ số

đầu tiên của những mã reply được sử dụng . Đây là một bảng trạng thái cho từng nhómlệnh SMTP những nhóm lệnh này được xác định bằng cách xây dựng một mô hình chomỗi lệnh và sau đó gom những lệnh đó lại với nhau với những mô hình giống nhau về cấutrúc.

Cho mỗi lệnh có ba kết quả “thành công” (S), “thất bại” (F), “lỗi” (E) trong sơ đồtrạng thái sau chúng ta dùng ký hiệu B cho “begin” và ký hiệu W cho “wait for reply”.

 Đầu tiên sơ đồ trình bày cho hầu hết các lệnh SMTP  :

  ⇔ Sơ đồ này mô hình cho những lệnh sau:HELO, MAIL, RCPT, RSET, SEND, SOML, SAML, VRFY, EXPN, HELP,

NOOP, QUIT, TURN

 Một sơ đồ phức tạp hơn mô hình cho lệnh DATA :

 

B

E

W S

F

2cmd

4,5

1,3

1,2B W

W F

S

EDATA

data

3 4,5

1,3 2

4,5

Page 20: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 20/34

 

 ⇔Lưu ý: “data” ở đây là một chuỗi những dòng gửi từ sender đến receiver không cần sự

trả lời cho đến khi dòng cuối cùng được gửi.

D- Chi tiết1. Sự thực thi tối thiểu :

Lợp lệ để làm cho SMTP có thể làm việc, sự thực thi tối thiểu sau được yêu cầucho tất cả các receiver 

COMMANDS -- HELOMAILRCPTDATARSETNOOPQUIT

  2. Tính trong suốt :Không có một sự cung cấp nào cho tính trong suốt dữ liệu, chuổi ký tự

<CRLF>.<CRLF> kết thúc mail text và không được user gửi đi. Thông thường user khôngnhận biết được sự “ngăn cản” những chuổi ký tự đó. Để cho phép tất cả các text đã soạnthảo của user được truyền một cách rõ ràng những thủ tục sau đây được sử dụng.

1> Trước khi gửi một dòng mail text sender-SMTP kiểm tra ký tự đầu tiên củadòng đó. Nếu nó là một dấu chấm, một dấu chấm phụ được thêm vào đầu dòng.

2> Khi receiver-SMTP nhận một dòng mail text nó kiểm tra dòng đó. Nếu dòngđó chỉ có một dấu chấm đơn thì nó là kết thúc của mail. Nếu ký tự đầu tiên là một dấuchấm và theo sau là những ký tự khác nằm trên cùng dòng. Thì ký tự đầu tiên đó bị xoá.

Mail data có thể chứa các ký tự mã ASCII (128 ký tự) tất cả các ký tự được phân phátđến mailbox của recipient bao gồm phần định dạng và những ký tự điều khiển khác. Nếukênh chuyển giao cung cấp một luồng dữ liệu 8 bit (octet), những mã ASCII 7 bit trênđược vận chuyển đúng điều chỉnh lại trong hệ bát phân với bit cao nhất bị xoá về 0.

 Nó có thể cần thiết để biến đổi dữ liệu được nhận hay lưu trữ . Trong một số hệthống, điều này cần thiết cho những host dùng một tập hợp ký tự khác với tập ASCII , nhưtập ký tự cục bộ của chúng hay dữ liệu lưu trong những record nhiều hơn chuổi. Nếunhững thay đổi trên là cần thiết, chúng phải khôi phục lại( biến đổi hai chiều) được nếunhững biến đổi đó được áp dụng cho mail được chia ca.

 3. Kích thước : 

Page 21: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 21/34

 

Có vài đối tượng đòi hỏi kích thước nhỏ nhất lớn nhất. Đó là tất cả tất cả sự thựcthi phải có để nhận những đối tượng có kích thước tối thiểu, nhưng không bắt buộc phảigửi những đối tượng lớn hơn kích thước này

  user : Chiều dài tổng cộng lớn nhất của user name là 64 ký tự. domain : Chiều dài tổng cộng lớn nhất của domain name hay số là 64 ký tự.  path : Chiều dài tổng cộng lớn nhất của một dòng lệnh bao gồm những từ lệnh và

<CRLF> là 512 ký tự. text line (dòng văn bản) : Chiều dài tổng cộng lớn nhất của dòng văn bản bao gồm

<CRLF> là 1000 ký tự (không tính dấu chấm ở đầu được nhân lên cho vấn đề trongsuốt).

recipients buffer : Tổng số recipient lớn nhất là 100 recipient.* Lỗi vượt quá quyền được giới hạn có thể được báo cáo bằng cách dùng những mã

reply. Ví dụ như :500 Line too long.(dòng quá dài)501 Path too long (đường dẫn quá dài)552 Too many recipients.(quá nhiều recipient)552 Too much mail data (quá nhiều mail data)

V- Phụ lụcA. Dịch vụ vận chuyển TCP  

Transmission Control Protocol (điều khiển giao chuyển [3]) được dùng trong ARPAinternet và trong một số mạng theo tiêu chuẩn US DoD cho các protocol internetwork .* Thiết lập kết nối :

Một kênh giao chuyển SMTP là một kết nối được thiết lập the sender process port Uand the receiver process port L. nó là một kết nối full duplex đơn giản được dùng như kênhkết nối trên protocol này được gán một dịch vụ port 25 (31 hệ mười) đó là L=25.

* Truyền dữ liệu :Kết nối TCP hổ trợ truyền những byte 8 bit. Dữ liệu SMTP là những ký tự 7 bit mã

ASCII. Mỗi ký tự được truyền như một byte 8 bit với bit cao nhất bị xoá về 0.

B. Dịch vụ vận chuyển NCP  

ARPANET Host-to-Host Protocol [4] (được cung cấp bởi Network ControlProgram) có thể được dùng trong ARPANET .* Thiết lập kết nối :

Kênh giao chuyển SMTP được thiết lập qua NCP giữa sender process socket U vàreceiver process socket L. The Initial Connection Protocol [5] là kết quả là kết quả tiếptheo một cặp kết nối simplex. Cặp kết nối này được dùng như kênh giao chuyển . protocolnày được gán toàn bộ socket 25 , đó là L=25.

 

ĐỂ CÓ PHẠM VI LỚN NHẤT CÓ THỂ, THỰC THI KỸTHUẬT ĐÁNH LỪA KHÔNG GIỚI HẠN CHIỀU DÀI

CỦA NHỮNG ĐỐI TƯỢNG SẼ ĐƯỢC DÙNG

Page 22: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 22/34

 

* Truyền dữ liệu:Kết nối NCP data được thiết lập trong chế độ 8 bit . SMTP data là những ký tự

ASCII 7 bit . Mỗi ký tự được truyền như một byte 8 bit với bit cao nhất bị xoá về 0.

C. NTTS

 Network Independent Transport Service [6] (dịch vụ vận chuyển mạng độc lập) cóthể được dùng .* Thiết lập kết nối :

Kênh giao chuyển SMTP được thiết lập qua NTTS sender process và receiver  process . Sender process thi hành CONNECT ban đầu và chờ receiver process thực thiACCEPT ban đầu .

* Truyền dữ liệu :Kết nối NTTS hổ trợ giao chuyển các byte 8 bit . SMTP data là những ký tự ASCII

7 bit . Mỗi ký tự được truyền như một byte 8 bit với bit cao nhất bị xoá về 0

D. Dịch vụ vận chuyển X.25 

 Nó có thể dùng X.25 service [7] cung cấp bởi Public Data Networks một cách trựctiếp , tuy nhiên nó được đề nghị một protocol đáng tin cậy chẳng hạn như TCP được dùngở trên kết nối X.25.

E. Nguyên lý của các mã Reply Ba chữ số của mã reply mỗi chữ có một ý nghĩa đặc biệt. Ký tự đầu tiên biểu thị

response, good hay bad hay không hoàn tất. Một sender-SMTP thật sẽ có thể xác nhậnhành động kế tiếp của nó (tiến hành theo kế hoạch, làm lại, cắt giảm bớt, ..) bằng một cáchđơn giản là kiểm tra chữ số đầu tiên này. Một ssender-SMTP muốn biết một cách gần đúngcác kiểu lỗi xảy ra (như mail system error, command syntax error) có thể kiểm tra chữ sốthứ hai, để dành chữ số thứ ba cho việc kết thúc sự sắp đặt tăng dần của thông tin (the

finest gradation of information. ) .* Có năm giá trị cho chữ số đầu tiên của mã reply: 1yz Positive Preliminary reply (reply khẳng định ban đầu ) :

Lệnh này được chấp nhận nhưng hành động yêu cầu sẽ được giữ hoãn lại, trì hoãn sựxác nhận thông tin trong reply này. Sender-SMTP sẽ gữi một lệnh khác định rõ tiếp tục hay bỏ qua hành động này.[ Lưu ý: SMTP không có lệnh nào thừa nhận kiểu reply này, vàdo đó không có lệnh tiếptục hay bỏ qua]. 2yz Positive Completion reply (reply khẳng định sự hoàn thành) :

Hành động được yêu cầu hoàn tất một cách thành công, một yêu cầu mới có thể được

 bắt đầu . 3yz Positive Intermediate reply (reply khẳng định giữa chừng) :

Lệnh này được chấp nhận nhưng hành động yêu cầu sẽ được giữ hoãn lại, trì hoãn sựnhận thông tin thêm. Sender-SMTP sẽ gữi một lệnh khác định rõ thông tin này. Replynày được dùng trong những nhóm lệnh tuần tự.

4yz Transient Negative Completion reply (reply phủ định sự hoàn thành ngắn hạn):Lệnh này không được chấp nhận và hành động yêu cầu không xảy ra, tuy nhiên trạng

thái lỗi là tạm thời, hành động có thể được yêu cầu trở lại. Sender sẽ quay trở lại bắt đầu

Page 23: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 23/34

 

chuổi lệnh (nếu có) khó gán một nghĩa “tức thời” cho nó khi hai site khác nhau (receiver-và sender- SMTPs) phải đồng ý sự thông dịch. Mỗi reply loại này có một giá trị thời giankhác nhau nhưng sender-SMTP được khuyến khích thử lại. Một quy tắc lật trang để xácđịnh nếu một reply đặc vào trong loại 4yz hay 5yz (xem bên dưới) thì những reply đó là4yz nếu chúng có thể được lặp lại mà không cần thay đổi gì trong cấu trúc lệnh hay trong

những thuộc tính của sender hay receiver (như một lệnh được lặp lại một cách giống nhauvà receiver không đưa ra một sự thực thi mới). 5yz Permanent Negative Completion reply (reply phủ định sự hoàn thành dài hạn):

Lệnh này không được chấp nhận và hành động được yêu cầu không xảy ra . Sender-SMTP ngăn cản việc lặp lại yêu cầu (trong chuổi tuần tự đó). Ngay cả một số hoàn cảnh lỗi“dài hạn” có thể hiệu chỉnh được, do đó người sử dụng muốn hướng sender-SMTP khởitạo lại chuổi lệnh đó bằng cách chỉ đạo hành động tại một số thời điểm trong tươnglai(như: sau khi chính tả đã được thay đổi, hay user đó thay đổi trạng thái account ) .

a/ Chữ số thứ hai mã hoá những loại trả lời(response) đặc trưng :* x0z Syntax : Những reply này xem xét lỗi cú pháp, những lệnh đúng cú pháp không

đưa vào một loại chức năng nào. Và không thực thi các lệnh không cần thiết.* x1z Information : Những reply này để yêu cầu thông tin, như trạng thái hay giúp đỡ.  * x2z Connections : Những reply này tham khảo đến kênh giao chuyển.  * x3z : Cho đến hiện tại chưa được đặc tả.

* x4z : Cho đến hiện tại chưa được đặc tả.  * x5z  Mail system : Reply này chỉ định tình trạng của receiver mail system vis-a-visyêu cầu truyền hay hoạt động hệ thống mail khác .

b/ Chữ số thứ ba mang lại một mức độ ý nghĩa nhiều hơn cho mỗi loại (category)Được đặc tả bởi chữ số thứ hai. Danh sách các reply minh hoạ điều này. Mỗi reply

text được đề nghị nhiều hơn là lệnh, và có thể thay đổi tuỳ theo lệnh với những kết hợp của

lệnh đó. Trong sự kiểm soát khác những mã reply này phải theo sự đặc tả nghiêm ngặttrong phần này sự thực thi của receiver sẽ không phát sinh ra mã mới cho tình trạng khácnhau không đáng kể của những gì được đặc tả ở đây. Nhưng những mã thích hợp hơn đãđược định nghĩa sẳn.

Ví dụ như, một lệnh như NOOP chẳng hạn nó thực thi thành công không cần đề nghịsender-SMTP một thông tin mới nào sẽ trả về một reply 250. Câu trả lời là 502 khi lệnhyêu cầu một hành động non-site-specific không thực thi được. Một sự cải tiến cho điều đólà reply 504 cho một lệnh được thực thi nhưng nó yêu cầu một tham số không thực thi.

Reply text có thể dài hơn một dòng đơn, trong trường hợp này một text hoàn tất phảiđược đánh dấu do đó sender biết khi nào nó có thể ngưng đọc reply này. Điều này đòi hỏi

một định dạng để chỉ định một reply nhiều dòng.Định dạng cho các reply nhiều dòng quy định tất cả các dòng, chấp nhận chổ cuối cùngvà bắt đầu của mã reply, theo sau đó là một dấu gạch nối “-” (dấu trừ) theo sau là text dòngcuối cùng sẽ bắt đầu với mã reply theo ngay sau đó là <SP> , các text và <CRLF> .

Cho ví dụ:123-First line123-Second line123-234 text beginning with numbers

Page 24: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 24/34

 

123 The last lineTrong một số trường hợp sender-SMTP cần tìm mã reply theo sau là <SP> ở đầu

dòng, và phớt lờ tất cả các dòng trước. Một ít trường hợp có dữ liệu quan trọng cho sender trong reply “text” sender sẽ nhận biết trường hợp này từ ngữ cảnh hiện hành.

 Phần 2  Giao thức POP 3 (Post Office Protocol version 3)

-----***-----I . Giới thiệu

 Nghi thức POP3 được cải tiến từ nghi thức POP ( Post Office Protocol ).Trên internet một loại nào đó nhỏ hơn node thường không thực tế để duy trì một hệ

thống vận chuyển message (message transport system: MTS), ví dụ như một workstationkhông có đủ tài nguyên (recycle, disk space) hợp lệ để cho phép một SMTP server và một

hệ thống phân phát mail cục bộ kết hợp giữ thường trú và chạy một cách liên tục . Thườngthì nó có thể rất đắt (hay không thích hợp) để giữ một personal computer nối với một IP-style netwrork trong một thời gian dài (node đó được biết sẽ thiếu tài nguyên như“connectivity”) .

Mặc dù vậy, để có thể quản lý mail rất hữu hiệu trên những node nhỏ hơn này. Vàchúng thường hổ trợ một user agent (UA) để giúp đỡ công việc điều khiển mail. Để giảiquyết vấn đề một node có thể cung cấp một thực thể MTS đưa ra một maildrop serviceđến những node được cấp nhỏ hơn này. Post Office Protocol - Version 3 (POP3) đượcdùng cho phép một workstation truy xuất động đến một maildrop trên một server host.Thường điều đó có nghĩa là POP3 được dùng để chấp nhận một workstation gọi mail đượcserver đang giữ cho nó.

Khi một user agent trên một client host mong muốn đưa một message vào trong hệthống vận chuyển, nó thiết lập một kết nối SMTP đến host chia ca của nó( host chia ca nàycó thể, hay không cần POP3 server host cho client host đó).

 II. Thao tác cơ bảnBan đầu server host bắt đầu một POP3 service bằng cách lắng nghe trên TCP port

110. Khi một client host mong muốn dùng POP3 service, nó thiết lập một kết nối TCP vớiserver host đó. Khi kết nối được thiết lập, POP3 server gửi một chào hỏi. Client và server POP3 sau đó trao đổi những lệnh và các trả lời cho đến khi kết nối đó được đóng hay loại bỏ.

Lệnh trong POP3 bao gồm một keyword (từ khoá) theo sau có thể là một hay nhiều

đối số tất cả các lệnh được kết thúc bởi một cặp CRLF. Các từ khoá và đối số được táchriêng ra bởi một ký tự trắng đơn , từ khoá dài 3 hay 4 ký tự. Mỗi đối số có thể lên đếnchiều dài 40 ký tự.

Các trả lời trong POP3 bao gồm phần chỉ định trạng thái và một từ khoá có thể theosau là thông tin thêm vào. Tất cả các trả lời được kết thúc bởi một cặp CRLF. Chỉ có hailoại trả lời là: chỉ định trạng thái khẳng định (“+OK”) và phủ định (“-ERR”) .

Trả lời cho các lệnh là trả lờinhiều dòng. Trong trường hợp này, nó cho phép chỉđịnh một cách rõ ràng, sau khi gửi dòng đầu tiên của câu trả lời và một CRLF, một số

Page 25: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 25/34

 

dòng thêm vào được gửi đi, mỗi dòng kết thúc bằng một cặp CRLF. Khi tất cả các dòngcủa trả lời đã được gửi đi bao gồm một số kết thúc hệ bát phân (termination octe) (mã 046hệ mười, “.” ) và một cặp CRLF. Nếu dòng nào của trả lời nhiều dòng bắt đầu vớitermination octet dòng đó là "byte-stuffed" bằng cách (pre-pending) treotermina_ tion octeđó của dòng trả lời. Kể từ đây một trả lời nhiều dòng được kết thúc với năm octet

"CRLF.CRLF". Khi xem xét một trả lời nhiều dòng client kiểm tra xem nếu dòng đó bắtđầu với termintion octet. Nếu đúng và nếu những octet theo sau khác với CRLF, octet đầutiên của dòng này (termination octet) được bỏ đi. Nếu đúng và nếu những ký tự kết thúctheo ngay sau nó, thì trả lời từ POP3 server này được kết thúc với một dòng chứa “.CRLF”không được coi là một phần của trả lời nhiều dòng đó.

Một POP3 session tiến hành qua một số trạng thái trong thời gian sống của nó. Khikết nối TCP được mở và một POP3 server gửi một chào hỏi. Hội nghị sẽ đi vào trạng tháiAUTHORIZATION (xác nhận). Trong trạng thái này client phải định danh nó đến POP3server. Khi client định danh thành công, server thu được những tài nguyên kết hợp vớiclient’s maildrop, và hội nghị đi vào trạng thái TRANSACTION (giao dịch). Trong trạngthái này client yêu cầu các hành động trong vai trò của POP3 server khi client phát ra lệnh

QUIT, hội nghị đi vào trạng thái UPDATE. Trong trạng thái này giải phóng các tài nguyênthu nhận được trong trạng thái TRANSACTION và say goodbye. Sau đó kết nối TCP đónglại.

Một POP3 server có thể có một timer tự động logout không chủ động. Một timer như vậy phải tồn tại trong khoảng thời gian ít nhất là 10 phút. Trong khoản thời gian nhậncác lệnh từ client đủ để reset timer tự động logout đó. Khi timer hết hiệu lực, hội nghịkhông đi vào trạng thái UPDATE, server sẽ đóng kết nối TCP mà không remove hay gửimột message nào cho client.

III. Trạng thái xác nhận (authorization state)Khi kết nối TCP được mở ra bởi một cleint. POP3 server sẽ xuất ra một dòng chào

hỏi nó có thể là một chuổi nào đó được kết thúc bởi CRLF.Ví dụ :S: +OK POP3 server ready

Chào hỏi đó là một POP3 reply. POP3 server bao giờ cũng sẽ truyền đi một trả lờikhẳng định như chào hỏi trên.

POP3 session hiện nằm trong trạng thái AUTHORIZATION. Client phải định danhvà xác nhận nó với POP3 server. Có hai cơ chế thích hợp để thực hiện. Sự kết hợp lệnhUSER và PASS , và lệnh APOP.

Để xác nhận dùng sự kết hợp lệnh USER và PASS. Đầu tiên client phải phát mộtlệnh USER, nếu POP3 server trả lời với một chỉ thị trạng thái khẳng định (“+OK”), thìclient có thể phát đi lệnh PASS để hoàn tất sự xác nhận hay lệnh QUIT để kết thúc POP3

session. Nếu POP3 server trả lời với một chỉ thị trạng thái phủ nhận (“-ERR”) cho lệnhUSER, thì client có thể phát ra một lệnh xác nhận mới hay có thể phát một lệnh QUIT.Khi client phát ra một lệnh PASS, POP3 server dùng cặp đối số từ lệnh USER và

PASS để xác định nếu client sẽ được cho truy xuất đến maildrop thích hợp.Khi POP3 server đã được xác định bằng các lệnh xác nhận, nó cho client truy xuất

đến những mailbox thích hợp, sau đó POP3 server thu được một khoá truy xuất loại trừtrên maildrop, vì sự cần thiết để ngăn chặn message bị sửa đổi hay bị loại bỏ trước khi hộinghị đi vào trạng thái UPDATE. Nếu thu nhận khoá thành công POP3 server trả lời với

Page 26: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 26/34

 

một chỉ định trạng thái khẳng định. Và lúc này hội nghị đi vào trạng thái TRANSACTIONmà không có message nào bị đánh dấu để xoá. Nếu maildrop không mở được vì một số lído nào đó(ví dụ : một khoá không thể nhận được, phía client bị từ chối truy cập tớimaldrop thích hợp đó, hay maildrop không được phân tích cú pháp ), POP3 server trả lờivới một chỉ định trạng thái phủ định (nếu một khoá được thu nhận nhưng POP3 server dự

định trả lời với một chỉ định trạng thái phủ định, POP3 server phải giải phóng khoá trướckhi loại bỏ lệnh đó ). Sau khi trả về một chỉ định trạng thái phủ định server phải đóng kếtnối, nếu server không đóng kết nối client có thể phát một lệnh xác nhận mới và bắt đầu trở lại, hoặc là client phát ra một lệnh QUIT.

Sau khi POP3 server mở được maildrop nó gán một message-number cho mỗimessage và biểu thị kích thước của mỗi message trong hệ tám (octet), message đầu tiêntrong maildrop được gán message-number “1”, message thứ hai là “2” … Trong các lệnhvà các trả lời POP3 tất cả các message-number và kích thước message được trình bày dựatrên hệ 10 (decimal)

. Đây là những tóm tắt cho ba lệnh POP3 bàn luận ở trên :

• USER name- Đối số: Một chuổi định danh một mailbox (được yêu cầu), nó chỉ có ý nghĩa vớiserver.- Giới hạn : Chỉ có thể được cho trong trạng thái AUTHORIZATION sau khi POP3chào hỏi hay sau khi một lệnh USER PASS không thành công .- Câu trả lời có thể :

+OK tên mailbox có hiệu lực-ERR không chấp nhận tên mailbox

Ví dụ :C: USER mroseS: +OK mrose is a real hoopy frood

...C: USER fratedS: -ERR sorry, no mailbox for frated here

• PASS string- Đối số: Một password cho mailbox hay server (được yêu cầu)

a server/mailbox-specific password (required)- Giới hạn : Chỉ có thể dược cho trong trạng thái AUTHORIZATION sau khi một

lệnh user thành công.- Discussion: (thảo luận) : Kể từ đây lệnh PASS chỉ có một đối số, một POP3

server có thể xử lý khoảng trống trong đối số này như là một phần của password,

thay vì là để tách đối số ra .- Câu trả lời có thể:+OK khoá maildrop và sẳn sàng-ERR password không hiệu lực-ERR không được phép khoá maildrop

Ví dụ :C: USER mroseS: +OK mrose is a real hoopy frood

Page 27: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 27/34

 

C: PASS secretS: +OK mrose's maildrop has 2 messages (320 octets)...C: USER mroseS: +OK mrose is a real hoopy frood

C: PASS secretS: -ERR maildrop already locked 

• QUIT- Đối số: không- Giới hạn: không- Câu trả lời có thể:

+OK 

IV. Trạng thái giao dịch (transaction)Khi client định danh nó đến POP3 server thành công và POP3 server đã khoá và

mở maildrop thích hợp, POP3 session bây giờ trong trạng thái TRANSACTION client cóthể phát nhiều lần các lệnh POP3 sau đây. Sau mỗi lệnh POP3 server phát ra một câu trảlời. Cuối cùng client phát ra một lệnh QUIT và POP3 session đi vào trạng thái UPDATE .

Đây là các lệnh POP3 có hiệu lực trong trạng thái TRANSACTION:• STAT

- Đối số: không- Giới hạn : Chỉ có thể được cho trong trạng thái TRANSACTION.- Discussion: (thảo luận) : POP3 server phát ra một trả lời khẳng định với một dòng

chứa thông tin của maildrop. Dòng này được gọi là một "drop listing" cho maildrop đó.Thích hợp để phân tích cú pháp một cách đơn giản, tất cả các POP3 server yêu cầu

dùng một định dạng cho drop listings. Câu trả lời khẳng định gồm có “+OK” theo sau là

một khoảng trắng đơn, và kích thước của maildrop trong hệ tám. Không yêu cầu cái gì theosau maildrop size.

Lưu y: Việc ngăn cản một cách mạnh mẽ sự thực thi các thông tin phụ cung cấptrong drop listing. Mặt khác điều kiện được bàn luận sau, nó cho phép client phântích cú pháp các message trong maildrop.

Chú y : Những message được đánh dấu xoá không được đếm trong tổng số- Câu trả lời có thể:

+OK nn mmVí dụ :

C: STAT

S: +OK 2 320

• LIST [msg]- Đối số : Một message-number (tuỳ ý) có thể không tham khảo đến một messageđược đánh dấu xoá.- Giới hạn : Chỉ có thể được cho trong trạng thái transaction.

Page 28: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 28/34

 

- Discussion: Nếu một đối số được cho và POP3 server phát ra một trả lời khẳng địnhvới một dòng chứa thông tin cho message đó, dòng này được gọi là “scan listing” chomessage đó.

Nếu không có đối số được trao cho và POP3 server phát ra một trả lời khẳng định

thì trả lời được cho là multi-line. Sau khi khởi tạo +OK , cho mỗi message trongmaildrop, POP3 server trả lời với một dòng chứa thông tin cho message đó. Dòng nàycũng được gọi là một “scan listing” cho message đó .

Phù hợp để đơn giản hoá việc phân tích cú pháp, tất cả các POP3 server yêu cầudùng một định dạng cho scan listing. Một scan listing bao gồm message number củamessage đó, theo sau là một khoảng trắng đơn và kích thước chính xác của message đó bằng hệ tám, không yêu cầu những gì theo sau message size trong scan listing .

Lưu ý: Ở đây ngăn cản một cách mạnh mẽ sự thực thi các thông tin phụ cung cấptrong scan listing. Mặt khác, điều kiện được bàn luận sau , nó cho phép client phân tích cú pháp các message trong maildrop. Những message được đánh dấu xoákhông được liệt kê .

- Câu trả lời có thể:+OK scan listing follows-ERR no such message

Ví dụ :C: LISTS: +OK 2 messages (320 octets)S: 1 120S: 2 200S: ....

C: LIST 2

S: +OK 2 200...C: LIST 3S: -ERR no such message, only 2 messages in maildrop

• RETR msg- Đối số : Một message-number (được yêu cầu) nó có thể không tham khảo đến mộtmessage được đánh dấu xóa.- Giới hạn : Chỉ được cho trong trạng thái TRASACTION- Discussion : Nếu POP3 server phát ra một trả lời khẳng định, thì trả lời được trao là

multi-line. Sau khi khởi tạo +OK , POP3 server gửi một message tương ứng với message-

number được cho, một cách cẩn thận để byte-stuff ký tự cuối cùng (như với các trả lờimulti-line) .- Câu trả lời có thể:

+OK message follows-ERR no such message

Ví dụ :C: RETR 1S: +OK 120 octets

Page 29: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 29/34

 

S: <the POP3 server sends the entire message here>S: .

 • DELE msg- Đối số : Một message-number (được yêu cầu) có thể không tham khảo đến một

message được đánh dấu xoá.- Giới hạn : Chỉ được cho trong trạng thái TRANSACTION .- Discussion : POP3 server đánh dấu xoá message đó. Những tham khảo sau đó đến

message-number kết hợp với message đó của một lệnh POP3 sẽ sinh ra lỗi. POP3 server không thật sự xoá message đó cho đến khi POP3 session đi vào trạng thái UPDATE .

- Câu trả lời có thể:+OK message deleted-ERR no such message

Ví dụ :C: DELE 1S: +OK message 1 deleted

...C: DELE 2S: -ERR message 2 already deleted

 • NOOP- Đối số: không- Giới hạn : Chỉ được cho trong trạng thái TRANSACTION- Discussion : POP3 server không làm gì hết , nó chỉ hồi âm với một trả lời khẳng

định.- Câu trả lời có thể:

+OK 

Ví dụ: C: NOOPS: +OK 

• RSET- Đối số: không- Giới hạn : Chỉ được cho trong trạng thái TRANSACTION .- Discussion : Nếu một message nào đó đã được đánh dấu xoá bởi POP3 server, chúng

được bỏ đánh dấu xoá(unmark ). Sau đó POP3 server hồi âm với một trả lời khẳng định.- Câu trả lời có thể:

+OK 

Ví dụ :C: RSETS: +OK maildrop has 2 messages (320 octets)

V. Trạng thái cập nhật (update)Khi client phát ra một lệnh QUIT từ trạng thái TRANSACTION, POP3 session đi

vào trạng thái UPDATE (lưu ý rằng nếu client phát ra một lệnh QUIT từ trạng tháiAUTHORIZATION, POP3 session kết thúc nhưng không đi vào trạng thái UPDATE).

Page 30: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 30/34

 

 Nếu POP3 session kết thúc vì các lí do khác sau đó một lệnh QUIT được phát ra từclient, POP3 session không đi vào trạng thái UPDATE và PHẢI không remove mộtmessage nào từ maildrop đó.• QUIT

- Đối số: không

- Giới hạn: không- Discussion : POP3 server loại bỏ tất cả các mesasage được đánh dấu xóa từ maildrop.Sau đó nó giải phóng các khóa truy cập loại trừ (exclusive-access lock) trên maildrop đóvà các reply về phần tình trạng của những thao tác này. Sau đó kết nối TCP được đóng lại.

- Câu trả lời có thể:+OK 

Ví dụ :C: QUITS: +OK dewey POP3 server signing off (maildrop empty)

...C: QUIT

S: +OK dewey POP3 server signing off (2 messages left)...VI. Các lệnh POP 3 chọn lựa (optional POP3 commands)

Những lệnh POP3 được nói đến ở trên phải được hổ trợ bởi sự thực thi tối thiểu củaPOP3 server.

Các lệnh POP3 lựa chọn được mô tả sau đây cho phép một POP3 client tự do hơntrong việc điều khiển message, trong khi vẩn giữ một sự thực thi POP3 server đơn giản.

 Lưu ý: Sổ ghi chép khuyến khích những sự thự thi nhằm hổ trợ cho những lệnhnày thay cho việc phát triển tăng thêm drop và scan listings. Thu gọn, triết lý của sổghi nhớ là nhằm đặt một sự thông minh trong vai trò của client POP3 và không cho

server POP3.

• TOP msg n- Đối số: Một message-number (được yêu cầu) nó có thể không tham khảo đến mộtmessage được đánh dấu xóa, và một non-negative number (được yêu cầu) .- Giới hạn : Chỉ được cho trong trạng thái TRANSACTION- Discussion : Nếu POP3 server phát ra một trả lời khẳng định, thì trả lời được trao là

multi-line. Sau khởi tạo +OK , POP3 server gửi header của message đó, dòng trống táchheader khỏi body, và sau đó là số dòng chỉ định phần body của message, nên cẩn thận để byte-stuff ký tự cuối cùng (như với tất cả các trả lời muti-line) .

Chú ý : Nếu số dòng được yêu cầu bởi POP3 client lớn hơn số dòng trong body

thì POP3 server gửi toàn bộ message đó .- Câu trả lời có thể:

+OK top of message follows-ERR no such message

Ví dụ :C: TOP 1 10S: +OK 

Page 31: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 31/34

 

S: < POP3 server gửi phần headers của message, một dòng trống, và 10 dòng đầutiên của phần body của message đó>

S: ....

C: TOP 100 3

S: -ERR no such message

• UIDL [msg]- Đối số: Một message-number (tuỳ ý) nếu một message number được cho, nó có thểkhông tham khảo đến một message được đánh dấu xoá.- Giới hạn : Chỉ có thể được cho trong trạng thái TRANSACTION .- Discussion : Nếu một đối số được cho và POP3 server phát ra một trả lời khẳng định

với một dòng chứa thông tin cho message đó. Dòng này được gọi là một “unique-idlisting” cho message đó.

Nếu không có đối số nào được cho và POP3 server phát ra một trả lời khẳng định thìcâu trả lời được trao là multi-line. Sau khi khởi tạo –OK cho mỗi message trong maildrop,

POP3 server trả lời với một dòng chứa thông tin cho message đó. Dòng này được gọi làmột “unique-id listing” cho message đó.

Hợp lệ để đơn giản hoá việc phân tích cú pháp. Tất cả các server được yêu cầudùng một định dạng cho các unique-id-listing. Một unique-id-listing bao gồm messagenumber của message theo sau là một khoảng trắng và unique-id của message. Không cóthông tin khác theo sau unique-id trong unique-id-listing.

Unique-id của một message là một chuổi xác định server tuỳ ý, bao gồm những kýtự trong phạm vi 0x21 đến 0x7E, nó định danh một message bên trong một maildrop là duynhất và nó giữ như vậy trong thời gian hội nghị. Server sẽ không bao giờ dùng lại mộtunique-id trong một maildrop đã cho.

Những message được đánh dấu xoá không được liệt kê.- Câu trả lời có thể+OK unique-id listing follows-ERR no such message

Ví dụ :C: UIDLS: +OK S: 1 whqtswO00WBw418f9t5JxYwZS: 2 QhdPYR:00WBw1Ph7x7S: ....

C: UIDL 2S: +OK 2 QhdPYR:00WBw1Ph7x7...

C: UIDL 3S: -ERR no such message, only 2 messages in maildrop

• APOP name digest

Page 32: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 32/34

 

- Đối số : Một chuổi định danh một mailbox và một chuổi MD5 digest ( yêu cầu cảhai).- Giới hạn : Chỉ có thể được cho trong trạng thái AUTHORIZATION sau khi POP3

chào hỏi.- Discussion : Thường thì, mỗi POP3 session bắt đầu với một sự trao đổi

USER/PASS, nó dẫn đến một password đặc tả server/user-id được gửi lên mạng . Nhữngsự thực thi của POP3 client kết nối đến POP3 server theo một quy tắc cơ bản để kiểm tramail mới. Hơn nữa khoảng thời gian khởi tạo một POP3 session theo quy tắc là năm phút.Lúc đó khả năng bị đánh cắp password rất lớn. Đòi hỏi phải có một thay đổi trong phươngthức xác nhận cung cấp cả sự xác nhận và xem lại sự bảo vệ, nhưng nó không bao gồmviệc gửi một passsword không được mã hoá lên mạng. Lệnh APOP cung cấp chức năngnày.

Một POP3 server thực thi lệnh APOP nó sẽ đưa một dòng đánh dấu thời gian vàotrong banner greeting của nó. POP3 client ghi nhớ dòng đánh dấu thời gian này và sau đó phát ra lệnh APOP.

Tham số ‘name’ giống như tham số ‘name’ trong lệnh USER tham số digest đượcb

tình toán bằng cách áp dụng giải thuật MD5 [RFC1321] cho một chuổi chứa mốc thời gian(nằm trong dấu ngoặc tròn) theo sau là một share secret. Share secret là một chuổi chỉ đểnhận biết client và server.

Tham số ‘digest’ là một giá trị 16-octet nó được gưỉ theo format của hệ hex.Khi một server POP3 nhận được một lệnh APOP, nó kiểm tra digest. Nếu digest

đúng, POP3 server phát ra một trả lời khẳng định và POP3 session đi vào trạng tháiTRANSACTION. Ngược lại nó phát ra một trả lời phủ định và POP3 session vẫn giữ trạngthái AUTHORIZATION

- Câu trả lời có thể:+OK maildrop locked and ready-ERR permission denied

Ví dụ :S: +OK POP3 server ready <[email protected]>C: APOP mrose c4c9334bac560ecc979e58001b3e22fbS: +OK maildrop has 1 message (369 octets)

Trong ví dụ này share secret là chuổi `tan-staaf'. Giải thuật MD5 được áp dụng chochuổi

<[email protected]>tanstaaf nó sinh ra một giá trị digest

c4c9334bac560ecc979e58001b3e22fb

VII. Tóm tắc các lệnh POP3

A. Các lệnh cần phải có :USER name có hiệu lực trong trạng thái AUTHORIZATIONPASS stringQUIT

STAT có hiệu lực trong trạng thái TRANSACTIONLIST [msg]RETR msg

Page 33: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 33/34

 

DELE msgNOOPRSET

QUIT có hiệu lực trong trạng thái UPDATE

* Các lệnh POP3 chọn lựa:APOP name digest có hiệu lực trong trạng thái AUTHORIZATION

TOP msg n có hiệu lực trong trạng thái TRANSACTIONUIDL [msg}

* Các reply POP3 :+OK -ERR 

LƯU Y : Với sự chấp nhận các lệnh STAT, LIST, và UIDL , reply mà POP3 server gửi

cho các lệnh chỉ mang ý nghĩa "+OK" và "-ERR". Những text xuất hiện sau trply này sẽđược client phớt lờ.

B. Các chuẩn truyền khác :Ngoài hai chuẩn truyền trên, Mail còn có các chuẩn truyền khác như :

- MAIP : Chuẩn MAPI dựa trên nền tảng mô hình COM. Chuẩn này có rất nhiều chitiết, nhiều đề mục, hàm, interface, Object...

Trong chuẩn MAPI, tất cả những thành phần bộ phận đều được xem như là nhữngđối tượng, muốn thao tác với những bộ phận đó, đều phải theo cách thức truy nhập vàomột Object, sau đó mới có thể sử dụng các method của Interface mà Objectt tương ứnghỗ trợ. Ví dụ như ngay cả thông điệp cũng được xem là một đối tượng, đó là Message

Object.

- ESMTP (Extender SMTP) - Nghi thức mở rộng SMTPSMTP có một hạn chế gây khó khăn lớn trong việc truyền nhận mail là giới hạn tối

đa kích thước nội dung một bức mail chỉ là 128KB.Ngày nay nội dung các bức mailkhông chỉ là dạng văn bản đơn thuần mà còn bao gồm hình ảnh, âm thanh và nhiều loạidữ liệu khác nữa, giới hạn 128KB trở nên quá nhỏ.

Do vậy người ta đã cải tiến chuẩn SMTP thành một chuẩn mở rộng mới gọi làESMTP.

Chuẩn này cho phép tăng kích thước mail, nó đưa thêm từ khóa SIZE=nnnnnnnsau lệnh khởi động cuộc giao dịch, nhờ đó ta có thể tăng giới hạn kích thước của mail

lên trên 1MB, đủ để chứa thêm vào các âm thanh, hình ảnh…Để biết xem Server MTA có theo chuẩn ESMTP hay không, thay vì dùng lệnhHELLO ở đầu một cuộc giao dịch, Client MTA dùng lệnh mới EHLO, nếu Server MTAcó trang bị, nó sẽ trả về mã thành công là 250.

Hiện nay hầu như chuẩn ESMTP đã thay thế chuẩn SMTP ở đa số các hệ thống.

- X.400 : Chuẩn X.400 là một bộ phận của các chuẩn Open Systems Interconnection( OSI ) về truyền dẫn thông điệp điện tử ( electronic Messaging Handling System -

Page 34: tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011

5/14/2018 tim-hieu-ve-giao-thuc-SMTP-va-POP3_diendandaihoc.vn_07283331072011 - slidepdf.com

http://slidepdf.com/reader/full/tim-hieu-ve-giao-thuc-smtp-va-pop3diendandaihocvn07283331072011 34/34

 

MHS ) được phát triển bởi tổ chức Điện thoại và Truyền thông quốc tế ( ComiteConsultatif International de Telegraphique et Telephonique - CCITT ), được xây dựngtrên việc tham khảo mô hình 7 lớp của OSI và các protocol được định nghĩa bởi Tổchức tiêu chuẩn quốc tế ( International Organization for Standardization - ISO )

-

*. Thông điệp theo chuẩn X.400 :Một thông điệp X.400 có 2 thành phần : Phần phong bì chứa thông tin cần thiết để phân phối một thông điệp và phần nội dung chứa thông tin cần truyền. Phần phong bìđược dùng bởi MTA và phần Nội dung được dùng bởi UA. Phần Nội dung thông tin tổchức theo dạng IPM ( Interpersonal Message : Dạng thư tín cá nhân riêng tư ) bao gồm2 phần cách biệt nhau : Heading và Body. Heading bao gồm các thông tin như địa chỉnơi đi và đến, cho biết loại thư hoặc yêu cầu phản hồi….Body chứa nội dung cần gởi.

Các tài liệu về X.400 ra đời năm 1984, và được gọi là " red book " ( vì chúng có bìamàu đỏ ). Được tu chỉnh và in lần hai vào năm 1988 và được gọi là " blue book " ( vìchúng có bìa xanh ).