Đồ án web server mailing list và mail system nhằm xây dựng IM hoàn chỉnh - 3 doc

39 303 0
Đồ án web server mailing list và mail system nhằm xây dựng IM hoàn chỉnh - 3 doc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

<local-part> ::= <dot-string> | <quoted-string> <name> ::= <a> <ldh-str> <let-dig> <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str> <let-dig> ::= <a> | <d> <let-dig-hyp> ::= <a> | <d> | "-" <dot-string> ::= <string> | <string> "." <dot-string> <string> ::= <char> | <char> <string> <quoted-string> ::= """ <qtext> """ <qtext> ::= "\" <x> | "\" <x> <qtext> | <q> | <q> <qtext> <char> ::= <c> | "\" <x> <dotnum> ::= <snum> "." <snum> "." <snum> "." <snum> <number> ::= <d> | <d> <number> <CRLF> ::= <CR> <LF> <CR> ::= the carriage return character (ASCII code 13) <LF> ::= the line feed character (ASCII code 10) <SP> ::= the space character (ASCII code 32) <snum> ::= one, two, or three digits representing a decimal integer value in the range 0 through 255 <a> ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case <c> ::= any one of the 128 ASCII characters, but not any <special> or <SP> <d> ::= any one of the ten digits 0 through 9 <q> ::= any one of the 128 ASCII characters except <CR>, <LF>, quote ("), or backslash (\) <x> ::= any one of the 128 ASCII characters (no exceptions) <special> ::= "<" | ">" | "(" | ")" | "[" | "]" | "\" | "." | "," | ";" | ":" | "@" """ | the control characters (ASCII codes 0 through 31 inclusive and 127) Chú ý 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 chính xác (thay cho sự thông dịch thông thường của nó) ví dụ như "Khanh\,Sam" sẽ được dùng chỉ định một ký tự một trường chín tự đơn với dấu phẩy là ký tự thứ sáu của trường. 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 địa chỉ của mỗi host. Lưu ý tên phần tử của các Domain phải là tên chính thức, không dùng tên hiệu hay bí danh. 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ủa host. 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ông và 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 trường 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 in the range 1 to 31. <mon> ::= "JAN" | "FEB" | "MAR" | "APR" | "MAY" | "JUN" | "JUL" | "AUG" | "SEP" | "OCT" | "NOV" | "DEC" <yy> ::= the two decimal integer year of the century in the range 00 to 99. <hh> ::= the two decimal integer hour of the day in the range 00 to 24. <mm> ::= the two decimal integer minute of the hour in the range 00 to 59. <ss> ::= the two decimal integer second of the minute in the range 00 to 59. <zone> ::= "UT" for Universal Time (the default) or other time zone designator (as in [2]). Ví dụ : Return Path Return-Path: <@CHARLIE.ARPA,@BAKER.ARPA:JOE@ABLE.ARPA> Ví dụ : dòng đánh dấu thời gian : Received: FROM ABC.ARPA BY XYZ.ARPA ; 22 OCT 81 09:23:59 PDT Một reply SMTP bao gồm một số ba chữ số (được truyền như ba ký tự chữ số) theo sau là một số văn bản (text). Số đó được dành cho các chương trình tự động để xác định trạ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ểm tra 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-SMTP và độc lập với ngữ cảnh, do có sự giống nhau trong những text khác nhau từng mã reply. Nguyên lý của những mã reply cho trong phụ lục E. thông thường mộ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ệnh EXPN và HELP có kết quả là những reply nhiều dòng trong những tình huống bình thườ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 Trạng thái hệ thống, hay trả lời giúp đỡ về hệ thống 214 Message giúp đỡ [thông tin về làm thế nào để dùng receiver hay ý nghĩa của một lệ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àng 221 <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 reply này phải shut down] 250 Hành dộng mail yêu cầu ok, hoàn thành 251 User không cục bộ, sẽ hướng đến “forward-path” 450 Khô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 Khô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 Không nhận hành động được yêu cầu : không chấp nhận tên mailbox [như sai cú pháp mailbox]. 554 Khởi động việc nhận mail; kết thúc với <CLRF>.<CLRF> giao chuyể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. 214 Message giúp đỡ. Thông tin làm thế nào để dùng receiver hay ý nghĩa của một lệnh không chuẩn đặc biệt ; reply này rất có ích cho user. 220 <domain> dịch vụ sẳn sàng 221 <domain> dịch vụ đóng kênh giao chuyển 250 Hành động mail yêu cầu OK, hoàn thành 251 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ấp 503 Dòng lệnh sai 504 Tham số của dòng lệnh không được cung cấp 550 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 được chấ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-SMTP và Receiver-SMTP được chỉ định là một cuộc hội thoại tuần tự do Sender-SMTP điều khiển. Chẳng hạn như Sender-SMTP sinh ra một lệnh và Receiver-SMTP trả lời với một reply. Sender-SMTP 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-SMTP sẽ gửi một reply 220 “service ready” khi kết nối hoàn thành. Sender-SMTP phải chờ message chào hỏi này trướ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ã reply Ví 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-SMTP 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ông thể bị thay đổi. *- 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 B. CONNECTION ESTABLISHMENT (thiết lập kết nối) S: 220 F: 421 HELLO S: 250 E: 500, 501, 504, 421 MAIL S: 250 F: 552, 451, 452 E: 500, 501, 421 RCPT S: 250, 251 F: 550, 551, 552, 553, 450, 451, 452 E: 500, 501, 503, 421 DATA I: 354 -> data -> S: 250 F: 552, 554, 451, 452 F: 451, 554 E: 500, 501, 503, 421 RSET S: 250 E: 500, 501, 504, 421 SEND S: 250 F: 552, 451, 452 E: 500, 501, 502, 421 SOML S: 250 F: 552, 451, 452 E: 500, 501, 502, 421 SAML S: 250 F: 552, 451, 452 E: 500, 501, 502, 421 VRFY S: 250, 251 F: 550, 551, 553 E: 500, 501, 502, 504, 421 EXPN S: 250 F: 550 E: 500, 501, 502, 504, 421 HELP S: 211, 214 E: 500, 501, 502, 504, 421 NOOP S: 250 E: 500, 421 QUIT S: 221 E: 500 TURN S: 250 F: 502 E: 500, 503 B- Sơ đồ trạng thái (STATE DIAGRAM) [...]... unique-id listing cho message ú Nu khụng cú i s no c cho v POP3 server phỏt ra mt tr li khng nh thỡ cõu tr li c trao l multi-line Sau khi khi to OK cho mi message trong maildrop, POP3 server tr li vi mt dũng cha thụng tin cho message ú Dũng ny c gi l mt unique-id listing cho message ú Hp l n gin hoỏ vic phõn tớch cỳ phỏp Tt c cỏc server c yờu cu dựng mt nh dng cho cỏc unique-id-listing Mt unique-id-listing... lc -ERR khụng c phộp khoỏ maildrop Vớ d : C: USER mrose S: +OK mrose is a real hoopy frood C: PASS secret S: +OK mrose's maildrop has 2 messages (32 0 octets) C: USER mrose S: +OK mrose is a real hoopy frood C: PASS secret S: -ERR maildrop already locked QUIT - i s: khụng - Gii hn: khụng - Cõu tr li cú th: +OK IV TRNG THI GIAO DCH (Transaction) Khi client nh danh nú n POP3 server thnh cụng v POP3 server. .. lnh POP3 s sinh ra li POP3 server khụng tht s xoỏ message ú cho n khi phiờn POP3 i vo trng thỏi UPDATE - Cõu tr li cú th: +OK message deleted -ERR no such message Vớ d : C: DELE 1 S: +OK message 1 deleted C: DELE 2 S: -ERR message 2 already deleted NOOP - i s: khụng - Gii hn : Ch c cho trong trng thỏi TRANSACTION - Discussion : POP3 server khụng lm gỡ ht , nú ch hi õm vi mt tr li khng nh - Cõu tr... thao tỏc ny Sau ú kt ni TCP c úng li - Cõu tr li cú th: +OK Vớ d : C: QUIT S: +OK dewey POP3 server signing off (maildrop empty) C: QUIT S: +OK dewey POP3 server signing off (2 messages left) VI CC LNH POP3 CHN LA (Optional POP3 Commands) Nhng lnh POP3 c núi n trờn phi c h tr bi s thc thi ti thiu ca POP3 server Cỏc lnh POP3 la chn c mụ t sau õy cho phộp mt POP3 client t do hn trong vic iu khin message,... string - i s: Mt password cho mailbox hay server (c yờu cu) a server/ mailbox-specific password (required) - Gii hn : Ch cú th dc cho trong trng thỏi AUTHORIZATION sau khi mt lnh user thnh cụng - Discussion: (tho lun) : K t õy lnh PASS ch cú mt i s, mt POP3 server cú th x lý khong trng trong i s ny nh l mt phn ca password, thay vỡ l tỏch i s ra - Cõu tr li cú th: +OK khoỏ maildrop v sn sng -ERR password... trng v unique-id ca message Khụng cú thụng tin khỏc theo sau unique-id trong unique-id-listing Unique-id ca mt message l mt chui xỏc nh server tu ý, bao gm nhng ký t trong phm vi 0x21 n 0x7E, nú nh danh mt message bờn trong mt maildrop l duy nht v nú gi nh vy trong thi gian hi ngh Server s khụng bao gi dựng li mt unique-id trong mt maildrop ó cho Nhng message c ỏnh du xoỏ khụng c lit kờ - Cõu tr li... Tham s digest l mt giỏ tr 16-octet nú c g theo nh dng ca h hex Khi mt server POP3 nhn c mt lnh APOP, nú kim tra digest Nu digest ỳng, POP3 server phỏt ra mt tr li khng nh v phiờn POP3 i vo trng thỏi TRANSACTION Ngc li nú phỏt ra mt tr li ph nh v phiờn POP3 vn gi trng thỏi AUTHORIZATION - Cõu tr li cú th: +OK maildrop locked and ready -ERR permission denied Vớ d : S: +OK POP3 server ready ... mt lnh PASS, POP3 server dựng cp i s t lnh USER v PASS xỏc nh nu client s c cho truy xut n maildrop thớch hp Khi POP3 server ó c xỏc nh bng cỏc lnh xỏc nhn, nú cho client truy xut n nhng mailbox thớch hp, sau ú POP3 server thu c mt khoỏ truy xut loi tr trờn maildrop, vỡ s cn thit ngn chn message b sa i hay b loi b trc khi hi ngh i vo trng thỏi UPDATE Nu thu nhn khoỏ thnh cụng POP3 server tr li vi... POP3 session kt thỳc nhng khụng i vo trng thỏi UPDATE) Nu phiờn POP3 kt thỳc vỡ cỏc lớ do khỏc, sau ú mt lnh QUIT c phỏt ra t phớa client, phiờn POP3 khụng i vo trng thỏi UPDATE v s khụng xúa mt message no t maildrop ú QUIT - i s: khụng - Gii hn: khụng - Discussion : POP3 server loi b tt c cỏc mesasage c ỏnh du xúa t maildrop Sau ú nú gii phúng cỏc khúa truy cp loi tr (exclusive-access lock) trờn maildrop... lnh POP3 bn lun trờn : USER name - i s: Mt chui nh danh mt mailbox (c yờu cu), nú ch cú ý ngha vi server - Gii hn : Ch cú th c cho trong trng thỏi AUTHORIZATION sau khi POP3 cho hi hay sau khi mt lnh USER PASS khụng thnh cụng - Cõu tr li cú th : +OK tờn mailbox cú hiu lc -ERR khụng chp nhn tờn mailbox Vớ d ẽ: C: USER mrose S: +OK mrose is a real hoopy frood C: USER frated S: -ERR sorry, no mailbox . <local-part> ::= <dot-string> | <quoted-string> <name> ::= <a> <ldh-str> <let-dig> <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>. dụ: 1 2 3- First line 1 2 3- Second line 12 3- 2 34 text beginning with numbers 1 23 The last line Trong 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. được định nghĩa như ví dụ sau : <return-path-line> ::= "Return-Path:" <SP><reverse-path><CRLF> <time-stamp-line> ::= "Received:" <SP>

Ngày đăng: 09/08/2014, 08:21

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan