Các nghi thức truyền nhận
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ững ngườ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ẩn POP3 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 SMTP miê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ẩn SMTP là giả đònh máy nhận phải dùng giao thức SMTP gởi Mail cho 1 Server luôn luô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ành POP3 (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 1 Giao 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ột ngườ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ới mộ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 Internet Mail 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ó được cấ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ập cá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ột chươ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ày có nhiệm vụ chuyển mail đến nơi cần thiết. I- Giới thiệu Mộ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 (Interprocess Communication Environment –IPCE ). Một môi trường truyền thông liên quá trình có thể bao gồm một Network, vài Network, hay một tập hợp con của Network. Điều đó quan trọng cho việc thực hiện hệ thống giao chuyển (hay các IPCE) one-to-one vớ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ể giao tiế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 SMTP SMTP đượ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ệnh SMTP được sinh ra bởi Sender-SMTP gửi đến Receiver- SMTP. Những reply SMTP được gửi từ Receiver- SMTP đến Sender- SMTP trong sự đáp ứng cho những lệnh đó. Khi một kênh giao chuyển được thiết lập sender-SMTP gửi đi 1 lệnh Mail biểu thò cho Sender 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ành công nó trả lời với 1 OK reply. Cuộc hội thoại một cách chủ ý lock –step (one-at-a-time).SenderSMTPReceiverSMTPUserFileSystemFileSystemSMTPCommands/Repliesand MailSender-SMTPReceiver-SMTP Sơ đồ trên là mô hình cho cách dùng SMTP.SMTP cung cấp những cơ chế giao chuyển Mail một cách trực tiếp từ Host của User gửi đến host của user nhận khi cả hai host được kết nối đến cùng dòch vụ giao chuyển hay qua nhiều SMTP-Sever tiếp vận khi host xuất phát hay đích đến không được kết nối đến cùng dòch vụ chuyển giao. Để có thể cung cấp khả năng tiếp vận SMTP-Sever phải được cung cấp tên của host đến cùng chẳng hạn như hạn của Mailhost đến .Đối số của lệnh mail là 1 reverse-path nó đặc tả mail đó từ đâu đến; đối số cho RCPT là 1 Forward-path nó đặc tả mail đó đi đến đâu. Forward-path là một lộ trình nguồn, reverse-path là một lộ trình trở về (nó có thể được dùng để trả về một message cho sender- 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ển giao chỉ một bản sao của data cho tất cả các Receiver ở cùng một host đích.Những command và reply mail có những cú pháp khắc khe. Những reply cũng có một mã số. Trong những thí dụ theo sau sẽ xuất hiện những lệnh (commands) và những trả lời (replies) , một danh sách các lệnh và reply hoàn chỉnh trong phần 4.Các command và reply không phân biệt kiểu chữ hoa hay thường. Lưu ý, điều này không đúng với tên của User mailbox. Cho một số host tên của user có phân biệt kiểu chữ, SMTP phải thi hành đầy đủ việc nhận kiểu chữ và giữ gìn kiểu chữ của những user name như chúng đã xuất hiện trong những đối số của mailbox. Host names không phân biệt kiểu chữ.Các command và reply là những ký tự được tạo ra từ tập ký tự ASCII{1}, khi dòch vụ vận chuyển cung cấp một kênh chuyển giao 8 bit (octet). Mỗi một ký tự 7 bit được truyền đúng bằng cách chuyển nó về hệ 8 (octet) với bit có thứ tự cao nhất bò xóa về 0.Khi đặc tả cấu trúc thông thường của command và reply, một đối số (hay một ký hiệu đặc biệt ) sẽ được biểu thò bằng một biến meta-linguistic (hay một hằng số), ví dụ như : “<string>”, hay “<reverse-path>”. ƠÛ đây dấu ngoặc nhọn chỉ đònh chúng là những biến meta-linguistic. Tuy nhiên các đối số thì dùng dấu ngoặc nhọn một cách literal. Ví dụ như, một reverse-path thực được bao trong dấu ngoặc nhọn như, “<John.Smith@USC-ISI.ARPA>” là một trường hợp của <reverse-path> (dấu ngoặc nhọn được giao chuyển trong command và reply là mã thực của nó).III . Mail 1- Khái quát : Có 3 bước cho sự giao dòch SMTP mail. Giao dòch được bắt đầu với yêu cầu Mail ù mang sự nhận diện sender, tiếp theo sau là một chuỗi của một hay nhiều lệnh RCPT trao những thông tin của receiver, sau đó một lệnh DATA cho mail data.Và cuối cùng là phần chỉ đònh kết thúc mail data xác nhận giao dòch đó. Bước đầu tiên trong thủ tục là lệnh MAIL .<reverse-path> chứa mailbox nguồn MAIL <SP> FROM : <reverse-path> <CRLF> Lệnh này báo cho receiver biết một giao dòch mail mới sẽ bắt đầu và để reset tất cả các bảng trạng thái và các buffer của nó bao gồm tất cả recipient hay mail data. Nó phát ra reverse-path có thể được dùng để báo lỗi. Nếu được chấp nhận receiver-SMTP trả về một reply 250 OK. <Reverse-path> có thể chứa nhiều hơn một mailbox.<Reverse-path> là một lộ trình nguồn trở về liệt kê các host và mailbox nguồn. Host đầu tiên trong reverse-path sẽ là host gữi lệnh này. Bước thứ hai trong thủ tục này là lệnh RCPT RCPT <SP> To : <forward-path> <CRLF> Lệnh này phát đi một forward-path nhận diện recipient. Nếu được chấp nhận receiver-SMTP trả về một reply 250 OK. Và lưu lại forward-path. Nếu recipient không nhận biết thì receiver trả về reply 550 Failure. Bước thứ hai của thủ tục này có thể lặp lại nhiều lần. Forward-path có thể chứa nhiều hơn một mailbox. Forward-path là lộ trình nguồn liệt kê các host và mailbox đích. Host đầu tiên trong <forword-path> sẽ là host nhận lệnh này. Bước thứ ba trong thủ tục là lệnh DATA DATA <CRLF>Nếu chấp nhận receiver-SMTP trả về một reply 354 và coi tất cả các dòng nối tiếp đó là message text. Khi văn bản cuối cùng được nhận và lưu trữ receiver-SMTP gửi một reply 250 OK. Kể từ 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ết thú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 cho receiver-SMTP biết để xử lý việc lưu trữ recipient và mail data ngay lúc đó. Nếu được chấp nhận receiver-SMTP trả về một reply 250 OK. Lệnh DATA sẽ chỉ fail nếu giao dòch mail 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ùng trong những trật tự được trình bày ở trên. Ví dụ : Một minh họa cách dùng những lệnh này tron ut; end with <CRLF>.<CRLF> S: Blah blah blah . S: .etc. etc. etc. S: <CRLF>.<CRLF> R: 250 OK Bây giờ mail được chấp nhận cho Jones và Brown. Green không có một mailbox trên Beta host. 2- Sự đònh hướng :Có một số trường hợp thông tin của đích đến trong <forward-path> bò sai nhưng receiver-SMTP biết đích đến đúng. Trong trường hợp như vậy một trong những reply sau sẽ được dùng để cho phép 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ác và 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ững message. 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ác nhau . Receiver từ chối chấp nhận mail cho user A. Sender phải đònh hướng lại cho mail đó 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:Postel@USC-ISI.ARPA R: 251 User not local; will forward to <Postel@USC-ISIF.ARPA> Hay S: RCPT TO:<Paul@USC-ISIB.ARPA> R: 551 User not local; please try Mockapetris@USC-ISIF.ARPA3- 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 name hay 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ố 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 EXPN chuổ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 full name 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ững chuổ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 tra mộ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ác mộ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., "550 That 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ầu nhậ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 nameS: VRFY SmithR: 250 Fred Smith <Smith@USC-ISIF.ARPA>HayS: VRFY SmithR: 251 User not local; will forward to <Smith@USC-ISIQ.ARPA>HayS: VRFY JonesR: 550 String does not match anything.HayS: VRFY JonesR: 551 User not local; please try <Jones@USC-ISIQ.ARPA>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 <Postel@USC-ISIF.ARPA> R: 250-Fred Fonebone <Fonebone@USC-ISIQ.ARPA> R: 250-Sam Q. Smith <SQSmith@USC-ISIQ.ARPA> R: 250-Quincy Smith <@USC-ISIF.ARPA:Q-Smith@ISI-VAXA.ARPA> R: 250-<joe@foo-unix.ARPA> R: 250 <xyz@bar-unix.ARPA> Hay S: EXPN Executive-Washroom-List R: 550 Access Denied to You.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 file chứ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ững message đế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ống vớ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ệnh sending 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 được dù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ủa user nếu user đó đang hoạt động (và chấp nhận những message terminal) trên host đó. Nếu user không hoạt động (haykhông chấp nhận terminal message) thì mail data được đưa vào trong mailbox của user . Giao chuyển mail thành công khi message đó được phân phát đến terminal 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ủa user 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òch mail 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ững lệ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ảo nhữ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ền HELLO <SP> <domain><CRLF> 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.ARPA R: 250 BBN-UNIX.ARPA * Ví dụ đóng kết nối : Closing S: QUIT R :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ình nguồ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 đầu củ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ết tớ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, trong trường hợp server-SMTP được biết đến với những tên khác nhau trong những môi trường khá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ải là 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ần nhậ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ủa reverse-path. Sau đó receiver-SMTP trở thành sender-SMTP, thiết lập một kênh truyền đến SMTP 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ên trong 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-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ại HOSTW 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át S: MAIL FROM:<> R: 250 ok S: RCPT TO:<@HOSTX.ARPA:JOE@HOSTW.ARPA> R: 250 ok S: DATA R: 354 send the mail data, end with . S: Date: 23 Oct 81 11:22:33 S: From: SMTP@HOSTY.ARPA S: To: JOE@HOSTW.ARPA S: Subject: Mail System ProblemS: S: Sorry JOE, your message to SAM@HOSTZ.ARPA lost. S: HOSTZ.ARPA said this: S: "550 No Such User" S: . R: 250 ok8-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ận mộ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ệnh TURN 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 502 Lư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ùng hệ 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ả SMTP A. 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 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 đối số cho các lệnh khác nhau. Reverse-path là đối số của lệnh MAIL. Forward-path là đối số của lệnh RCPT. Và mail data là đối số của lệnh DATA. Ba đối số và những đối tượng dữ liệu được duy trì cho đến khi xác nhận truyền xong bởi sự chỉ đònh kết thúc của mail data thì thật sự kết thúc giao dòch. Mô hình cho nó là những buffer riêng biệt được cung cấp để giữ kiểu của đối tượng dữ liệu. Một số lệnh đặc trưng sinh ra thông tin được gắn vào một buffer đặc trưng, hay làm cho một hay nhiều buffer bò xoá. HELLO (HELO) : Lệnh này dùng đònh danh sender-SMTP đến receiver-SMTP. 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ày và một reply OK để xác nhận cả hai sender-SMTP và receiver-SMTP đang trong tình trạng khởi động, điều đó là: không có một giao dòch mail nào đang tiến hành và tất cả các bảng trạng thái và buffer đã được xoá. MAIL : Lệnh này được dùng khởi tạo một giao dòch mail trong đó mail data được phân phối đến một hay nhiều mailbox. Feild đối số chứa một reverse-path. 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ác host hoàn tất nó là một lộ trình nguồn “trở về” và chỉ đònh mail đó được chia ca thông qua mỗi host trên danh sách đó (host đầu tiên trong list là host chia ca gần nhất). List này được dùng như một lộ trình nguồn để trả về 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 đầu của list đó và phải dùng tên của nó được biết trong IPCE nơi nó sẽ chia ca mail đến đó, đúng hơn là ICPE có mail đến từ đó (nếu chúng khác nhau). Trong một số loại message thông báo lỗi (ví dụ thông báo mail không thể phân phát) reverse-path có thể là null. [...]... 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 ). - Discussion : Nếu một đối số được... cầu cho tất cả các receiver COMMANDS HELO MAIL RCPT DATA RSET NOOP QUIT 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ông nhậ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ạn thảo của user được truyền một cách rõ ràng những... đ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 - MHS ) được phát triển bởi tổ chức Điện thoại và Truyền thông quốc tế ( Comite Consultatif International de Telegraphique et Telephonique - CCITT ), được xây dựng trên việc tham khảo mô hình 7 lớp của OSI và các protocol... forward-path nhận diện recipient. Nếu được chấp nhận receiver-SMTP trả về một reply 250 OK. Và lưu lại forward-path. Nếu recipient không nhận biết thì receiver trả về reply 550 Failure. Bước thứ hai của thủ tục này có thể lặp lại nhiều lần. Forward-path có thể chứa nhiều hơn một mailbox. Forward-path là lộ trình nguồn liệt kê các host và mailbox đích. Host đầu tiên trong <forword-path> sẽ là host nhận. .. 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ồm 2 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... 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ùng và 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òng cuối cùng sẽ bắt đầu với mã reply theo ngay sau đó là <SP> , các text và <CRLF> . Cho ví duï: 123-First line 123-Second line 123-234 text... nhiều terminal và các mailbox. Cho từng recipient data mail đượ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 ) và cho tất cả recipient thì đến mailbox của các recipient đo. 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 mailbox. Reverse-path bao gồm một danh sách các host tuỳ ý và... 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ứ... 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ì theo sau maildrop size. Lưu ý: 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ấp trong drop listing. Mặt khác... giao dịch mail mới sẽ bắt đầu và để reset tất cả các bảng trạng thái và các buffer của nó bao gồm tất cả recipient hay mail data. Nó phát ra reverse-path có thể được dùng để báo lỗi. Nếu được chấp nhận receiver-SMTP trả về một reply 250 OK. <Reverse-path> có thể chứa nhiều hơn một mailbox.<Reverse-path> là một lộ trình nguồn trở về liệt kê các host và mailbox nguồn. Host đầu tiên trong . 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. 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