B. CƠ SỞ LÝ THUYẾT
Chương I: Tìm hiểu về các Web Server thông dụng
Chương II: Các nghi thức truyền nhận
Phần I: Giao thức SMTP
Phần II: Giao thức POP3
Chương III: Giới thiệu về Internet Mail
Chương IV: Tìm hiệu về các hệ thống mail trên hệ điều hành Linux
C. HIỆN THỰC CHƯƠNG TRÌNH
100 trang |
Chia sẻ: huong.duong | Lượt xem: 1156 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Tìm hiểu cách vận hành và cài đặt của các hệ thống mail trên các hệ điều hành thông dụng: Internet Mail - Linux Mail., để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
th 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 trường 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:
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 Problem
S:
S: Sorry JOE, your message to SAM@HOSTZ.ARPA lost.
S: HOSTZ.ARPA said this:
S: "550 No Such User"
S: .
R: 250 OK
7- 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 . Bản thân mã lệnh là những ký tự chữ kết thúc bởi chuỗi nếu có những tham số theo sau và khác. Cú pháp của những mailbox phải tuân theo những thoả hiệp phía người nhận. Những reply SMTP được bàn đến trong phần B.
Một sự giao dịch mail bao gồm vài đối tượng dữ liệu được giao tiếp khi những đối số cho các lệnh khác nhau. Reverse-path là đối số của lệnh MAIL. Forward-path là đối số của lệnh RCPT. Và mail data là đối số của lệnh DATA. Ba đối số và những đối tượng dữ liệu được duy trì cho đến khi xác nhận truyền xong bởi sự chỉ định kết thúc của mail data thì thật sự kết thúc giao dịch. Mô hình cho nó là những buffer riêng biệt được cung cấp để giữ kiểu của đối tượng dữ liệu. Một số lệnh đặc trưng sinh ra thông tin được gắn vào một buffer đặc trưng, hay làm cho một hay nhiều buffer bị xoá.
HELLO (HELO) : Lệnh này dùng định danh Sender-SMTP đến Receiver-SMTP. Trường đối số chứa host name của Sender-SMTP. Receiver-SMTP định danh nó đến Sender-SMTP trong trả lời bắt tay cho việc kết nối, và trong câu trả lời cho lệnh này.Lệnh này và một reply OK để xác nhận cả hai Sender-SMTP và Receiver-SMTP đang trong tình trạng khởi động, điều đó là: Không có một giao dịch mail nào đang tiến hành và tất cả các bảng trạng thái và buffer đã được xoá.
MAIL : Lệnh này được dùng khởi tạo một giao dịch mail trong đó mail data được phân phối đến một hay nhiều mailbox. Feild đối số chứa một reverse-path. Reverse-path bao gồm một danh sách các host tuỳ ý và mailbox của user. Khi danh sách các host hoàn tất nó là một lộ trình nguồn “trở về” và chỉ định mail đó được chia ca thông qua mỗi host trên danh sách đó (host đầu tiên trong list là host chia ca gần nhất). List này được dùng như một lộ trình nguồn để trả về người gửi những thông báo không thể phân phát. Tại mỗi host chia ca nó thêm phần định danh của bản thân vào chổ bắt đầu của list đó và phải dùng tên của nó được biết trong IPCE nơi nó sẽ chia ca mail đến đó, đúng hơn là ICPE có mail đến từ đó (nếu chúng khác nhau). Trong một số loại message thông báo lỗi (ví dụ thông báo mail không thể phân phát) reverse-path có thể là null.
RECIPIENT (RCPT) : Lệnh này dùng định danh một người nhận mail riêng lẻ, nhiều recipient được đặc tả bằng nhiều lệnh này. Forward-path bao gồm một danh sách các host tuỳ ý và một mailbox đích được yêu cầu. Khi danh sách host đó hoàn tất. Nó là một lộ trình nguồn và chỉ định mail phải được chia ca đến host kế tiếp trên list đó. Nếu Receiver-SMTP không thực thi chức năng chia ca nó có thể dùng được reply này và sẽ cho một unknown local user (550). Khi mail được chia ca, host chia ca phải chuyển phần định danh nó từ chổ bắt đầu forward-path và đặt vào chổ bắt đầu của reverse-path. Khi mail trải ra tới đích cuối cùng (forward-path chỉ chứa một mailbox đích) receiver-SMTP chèn nó vào trong mailbox đích trong sự đồng ý với thoả hiệp host mail của nó.
Ví dụÏ mail được nhận tại host chia ca A với những đối số:
FROM:
TO:
Sẽ được chia ca đến host B với đối số
FROM:
TO:.
Lệnh này sinh ra đối số forward-path của nó được gắn vào forward-path buffer.
DATA(DATA) : Receiver-SMTP xử lý những dòng theo sau lệnh này khi mail từ Sender-SMTP đến. Nó làm cho mail data từ lệnh này được ghi vào data buffer. Mail data này có thể chứa những ký tự của 128 mã ACSII. Data mail được kết thúc bằng một dòng chỉ chứa một dấu chấm. Đó là một dãy ký tự ". " (xem phần 4.D.2). Và đó là chỉ định kết thúc của mail data.
Sự chỉ định kết thúc một chuổi đòi hỏi người nhận phải xử lý việc lưu trữ những thông tin giao dịch mail ngay lập tức. Quá trình xử lý này dùng thông tin trong reverse-path buffer, forward-path buffer, mail data buffer, và khi hoàn tất lệnh này những buffer đó sẽ bị xóa, những message được chia ca sẽ có nhiều dòng đánh dấu thời gian.
Khi một Receiver-SMTP tạo ra “final delivery” của một message nó chèn vào chổ bắt đầu của mail data một dòng return-path. Dòng return-path đó bảo quản thông tin trong “reverse-path” từ lệnh mail. Ơû đây deliver final có nghĩa là message đó rời khỏi thế giới SMTP. Thông thường có nghĩa là nó đã được chuyển đến user đích, nhưng trong một số trường hợp nó có thể được xử lý nữa và và được giao chuyển bởi hệ thống mail khác.
Có thể cho mailbox trong return-path là khác biệt với mailbox thật sự của Sender-SMTP, ví dụ như nếu những trả lời error được dùng phân phát một lỗi đặc biệt điều khiển mailbox.
Hai đoạn trước ý nói mail data cuối cùng sẽ bắt đầu với một dòng return-path theo sau là một hay nhiều dòng đánh dấu thời gian , sau những dòng này sẽ là phần header và body của mail data [2].
Sự đề cập đặc biệt cần thiết cho sự trả lời (response) và sự hành động tiếp nữa được yêu cầu khi quá trình xữ lý theo sau sự chỉ định kết thúc mail data là sự thành công cục bộ. Điều này có thể phát sinh nếu sau khi chấp nhận một vài người nhận và data mail của receiver-SMTP thấy mail data đó có thể được phân phát đến một số người thành công nhưng lại không thể đến những người khác (ví dụ như xảy ra vấn đề về việc chỉ định vị trí của mailbox). Trong tình trạng như vậy câu trả lời cho lệnh DATA phải là một reply OK. Nhưng receiver-SMTP phải soạn và gửi về nơi xuất xứ của message đó một message thông báo “undelivered mail”. Một thông báo đơn liệt kê tất cả các recipient không nhận được message, hay những message thông báo riêng lẽ phải được gửi cho từng recipient một , tất cả những thông báo mail không thể phân phát được gửi dùng lệnh MAIL (ngay cả nếu kết quả đó từ quá trình xử lý một lệnh SEND, SOML, hay SAML ).
Ví dụ cho đường dẫn trả về và nhận đánh dấu thời gian nhận:
Return-Path:
Received: from GHI.ARPA by JKL.ARPA ; 27 Oct 81 15:27:39 PST
Received: from DEF.ARPA by GHI.ARPA ; 27 Oct 81 15:15:13 PST
Received: from ABC.ARPA by DEF.ARPA ; 27 Oct 81 15:01:59 PST
Date: 27 Oct 81 15:01:01 PST
From: JOE@ABC.ARPA
Subject: Improved Mailing System Installed
To: SAM@JKL.ARPA This is to inform you that ...
SEND (SEND) : Lệnh này dùng khởi tạo một giao dịch mail trong đó mail data được phân phát đến một hay nhiều terminal. Trường đối số chứa một reverse-path. Lệnh này thành công nếu message được phân phát đến một terminal. Reverse-path bao gồm một list các host và mailbox người gửi tuỳ ý khi list đó hoàn tất, nó là một lộ trình nguồn “trở về” và chỉ định mail đã được chia ca thông qua các host trong list đó (host đầu tiên trong list là host chia ca gần nhất) danh sách này được dùng như một lộ trình nguồn để trả về cho người gửi những thông báo về việc không phân phát được. Khi mỗi host chia ca thêm phần định danh vào trong vị trí bắt đầu của list , nó phải dùng tên mà nó được biết đến trong IPCE nơi nó sẽ chia ca mail tới đó , đúng hơn là IPCE có mail tới từ đó.
Lệnh này xoá reverse-path buffer, forward-path buffer và mail data buffer và chèn thông tin reverse-path từ lệnh này vào trong reverse-path buffer.
END OR MAIL (SOML) : Lệnh này dùng khởi tạo một giao dịch mail trong đó mail data được phân phát đến một hay nhiều terminal hay mailbox. Cho từng recipient, data mail được phân phát đến terminal của người nhận nếu người nhận đó đang hoạt động trên host đó (và chấp nhận những terminal message ), mặt khác là đến mailbox của những người nhận đó. Trường đối số chứa một reverse-path . Lệnh này thành công khi message được phân phát đến một terminal hay mailbox.
Reverse-path bao gồm một danh sách các host tuỳ ý và mailbox của người gửi. Khi danh sách các host đó hoàn tất, nó là một lộ trình nguồn “trở về” và chỉ định mail đó đã được chia ca thông qua các host trên danh sách (host đầu tiên trong danh sách là host chia ca gần nhất). Danh sách này được dùng như một lộ trình nguồn trả về cho người gửi những thông báo về việc không thể phân phát. Khi mỗi host chia ca thêm phần định danh nó vào chổ bắt đầu của danh sách đó, nó phải dùng tên được biết đến trong IPCE nơi nó sẽ chia ca mail đến đó đúng hơn là IPCE có mail đến từ đó(nếu chúng khác nhau).
Lệnh này xoá reverse-path buffer, forward-path buffer và mail data buffer và chèn thông tin reverse-path từ lệnh này vào trong reverse-path buffer.
SEND AND MAIL (SAML) : Lệnh này dùng khởi tạo một giao dịch mail trong đó mail data được phân phát đến một hay nhiều terminal và các mailbox. Cho từng người nhận mail được phân phát đến terminal của người nhận nếu người nhận đó đang hoạt động trên host đó (và chấp nhận những terminal message ) và cho tất cả recipient thì đến mailbox của các recipient đo. Trường đối số chứa một reverse-path. Lệnh này thành công khi message được phân phát đến mailbox.
Reverse-path bao gồm một danh sách các host tuỳ ý và mailbox của người gửi. Khi danh sách hoàn tất nó là một lộ trình nguồn “trở về” và chỉ định mail đã được chia ca thông qua các host trong danh sách đó(host đầu tiên trong danh sách là host chia ca gần nhất ) Danh sách này được dùng như một lộ trình nguồn trả về cho người gửi những thông báo về việc không thể phân phát. Khi mỗi host chia ca thêm phần định danh nó vào chổ bắt đầu của danh sách đó nó phải dùng tên mà nó được biết đến trong IPCE mà nó sẽ chia ca mail đến đó đúng hơn là IPCE mà mail đến từ đó (nếu chúng khác nhau).
Lệnh này xoá reverse-path buffer, forward-path buffer và mail data buffer và chèn thông tin reverse-path từ lệnh này vào trong reverse-path buffer.
RESET (RSET) : Lệnh này định rõ giao dịch mail hiện hành bị huỷ bỏ. Các người gửi, recipient, mail data đã lưu sẽ bị huỷ bỏ và tất cả các bảng trạng thái, các buffer bị xoá. Receiver phải gửi một reply OK.
VERIFY (VRFY) : Lệnh này yêu cầu receiver xác nhận đối số định danh một user. Nếu nó là một user name, full name của user đó (nếu receiver biết) và mailbox đặc tả đầy đủ được trả về.Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer và data mail buffer.
EXPAND (EXPN) : Lệnh này yêu cầu receiver xác nhận một mailing list (danh sách địa chỉ) và trả về một thành phần trong danh sách đó. Full name của các user (nếu biết) và những mailbox được đặc tả đầy đủ được trả về trong một reply nhiều dòng.
Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer và data mail buffer.
HELP (HELP) : Lệnh này làm cho receiver thông tin giúp đỡ cho người gửi lệnh HELP. Lệnh này có thể nhận một đối số (có thể là tên lệnh) và trả về thông tin chi tiết.
Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer và data mail buffer.
NOOP (NOOP) : Lệnh này không ảnh hưởng các tham số hay các lệnh được đưa vào trước nó, nó đặc tả không có một hành động nào khác hơn là receiver gửi một reply OK.
Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer và data mail buffer.
QUIT (QUIT) : Lệnh này định rõ receiver phải gửi một reply OK và sau đó đóng kênh giao dịch . Receiver sẽ không đóng kênh giao dịch cho đến khi nó nhận và trả lời cho lệnh QUIT (ngay cả nếu có một lỗi xãy ra). Người gửi sẽ không đóng kênh giao dịch cho đến khi nó gửi một lệnh QUIT và nhận reply đó (ngay cả nếu có một lỗi trả lời cho lệnh trước đó). Nếu kết nối bị đóng trước thời gian mong muốn receiver sẽ làm việc như vừa nhận được một lệnh RSET (bỏ tất cả các giao dịch đang treo mà chưa làm, nhưng không “undo” những giao dịch đã hoàn tất trước đó) người gửi sẽ hành động như nếu lệnh hay giao dịch đó trong quá trình xử lý nhận được một lỗi tạm thời (4xx).
TURN (TURN) : Lệnh này định rõ Receiver-SMTP phải gửi một trong hai reply sau: (1) reply OK và sau đó nhận vai trò của một Sender-SMTP, hay (2) gửi một reply từ chối và giữ lại vai trò một Receiver-SMTP.
Nếu program-A hiện tại là một Sender-SMTP gửi một lệnh TURN và nhận một reply OK (250) thì program-A trở thành Receiver-SMTP sau đó program-A sẽ trong trạng thái khởi động chỉ nếu kênh giao chuyển đã được mở, sau đó nó chờ nhận một chào hỏi dịch vụ đã sẵn sàng 220.
Để từ chối thay đổi vai trò Receiver-SMTP gửi một reply 502.
Có sự hạn chế trong trật tự khi dùng những lệnh này.
Đầu tiên trong một cuộc trao đổi phải là lệnh HELLO, lệnh này 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 nhận một reply failure 501 phải được trả về và Receiver-SMTP đó phải ở trong trạng cũ.
Những lệnh NOOP, HELP, EXPAND và VRFY có thể được dùng nhiều lần trong mộ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ệnh RCPT, 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 failure 501 phải được trả về và Sender-SMTP phải nằm trong trạng thái cũ. Nếu những lệnh trong 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 trường đố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 đây có 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 trường đối số được tách ra bởi mộ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 “khanh” khác với user “Khanh”.
Trường đố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 . Receiver-SMTP không nhận hành động cho đến khi nhận được chuổi này.
Dấu ngoặc vuông biểu thị một trường đối số tuỳ ý. Nếu không nhận chọn lựa này một mặc định phù hợp sẽ được áp dụng.
T Sau đây là những lệnh SMTP:
HELO
MAIL FROM:
RCPT TO:
DATA
RSET
SEND FROM:
SOML FROM:
SAML FROM:
VRFY
EXPN
HELP [ ]
NOOP
QUIT
TURN
Cú pháp của những trường đố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ột trường có thể được lặp một hay nhiều lần.
::=
::=
::= " ":" ] ">"
::= | ","
::= "@"
::= | "."
::= | "#" | "[" "]"
::= "@"
::= |
::=
::= |
::= |
::= | | "-"
::= | "."
::= |
::= """ """
::= "\" | "\" | |
::= | "\"
::= "." "." "."
::= |
::=
::= the carriage return character (ASCII code 13)
::= the line feed character (ASCII code 10)
::= the space character (ASCII code 32)
::= one, two, or three digits representing a decimal
integer value in the range 0 through 255
::= any one of the 52 alphabetic characters A through Z
in upper case and a through z in lower case
::= any one of the 128 ASCII characters, but not any
or
::= any one of the ten digits 0 through 9
::= any one of the 128 ASCII characters except ,
, quote ("), or backslash (\)
::= any one of the 128 ASCII characters (no exceptions)
::= "" | "(" | ")" | "[" | "]" | "\" | "."
| "," | ";" | ":" | "@" """ | 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:"
::= "Received:"
::= ";"
::= "FROM"
::= "BY"
::= [] [] [] []
::= "VIA"
::= "WITH"
::= "ID"
::= "FOR"
::= 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)
::= 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)
::=
::=
::= ":" ":"
::= the one or two decimal integer day of the month in
the range 1 to 31.
::= "JAN" | "FEB" | "MAR" | "APR" | "MAY" | "JUN" |
"JUL" | "AUG" | "SEP" | "OCT" | "NOV" | "DEC"
::= the two decimal integer year of the century in the range 00 to 99.
::= the two decimal integer hour of the day in the range 00 to 24.
::= the two decimal integer minute of the hour in the range 00 to 59.
::= the two decimal integer second of the minute in the range 00 to 59.
::= "UT" for Universal Time (the default) or other time zone designator (as in [2]).
Ví dụ : Return Path
Return-Path:
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ố, , một dòng text, và , 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
211 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 dịch vụ sẳn sàng
221 dịch vụ đóng kênh giao chuyển
421 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
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 . giao chuyển bị sai.
2. Thứ tự của danh sách những mã Reply số :
211
Các file đính kèm theo tài liệu này:
- DA0638.doc