Thực tập chuyên nghành MMT & TT
MỤC LỤC
LỜI MỞ ĐẦU
Ngày nay, cùng với sự bùng nổ và phát triển của công nghệ thông tin và mạng
Internet trên toàn thế giới việc trao đổi thông tin đã trở nên dễ dàng hơn. Một trong
những cách để trao đổi thông tin trên Internet không thể không nhắc tới vì những tiện
ích và lợi ích mà nó mang lại đó là thư điện tử hay còn gọi là E-mail ( Electronic
mail). Thư điện tử (E-mail) là một hệ thống truyền nhận thư từ qua Internet hay các
mạng máy tính (Computer network). E-mail có những lợi ích đáng kể so với cách viết
thư truyền thống giấy và mực. Một thông điệp, một tin nhắn, lời chúc mừng, hay văn
bản, hay … có thể được gửi tại bất kì thời điểm nào, bất kì nơi nào trên toàn thế giới
một cách dễ dàng và nhanh chóng gần như là ngay lập tức. Email chẳng những có thể
truyền gửi được chữ, nó còn có thể truyền được các dạng thông tin khác như hình
ảnh, âm thanh, phim, và đặc biệt các phần mềm thư điện tử kiểu mới còn có thể hiển
thị các E-mail dạng sống động tương thích với kiểu tệp HTML.
Đối với các doanh nghiệp, E-mail lại càng trở nên quan trọng hơn trong.
Những mẫu tin quảng cáo gửi tới nhiều khách hàng, các bản hợp đồng gửi tới những
đối tác trong nước hay ngoài nước, hay các thông báo cho các nhân viên trong công
ty… , với khả năng chuyển giao nhanh chóng gần như là ngay lập tức, không khoảng
cách, và chi phí rẻ thì E-mail là một sự lựa chọn không thể thiếu cho các doanh
nghiệp.
Do đó, trong đồ án môn thực tập chuyên nghành Mạng máy tính và truyền
thông : “Tìm hiểu các giao thức dùng cho email. Triển khai 1 hệ thống mail cho
doanh nghiệp với cơ chế bảo mật dùng Exchange server 2010.”. Chúng ta sẽ tìm
hiểu tới các vấn đề liên quan tới thư điện tử, các giao thức truyền nhận mail. Tìm
hiểu về những chức năng của Exchange server 2010 phần mềm máy chủ của hãng
Microsoft. Chúng ta sẽ xây dựng hệ thống E-mail cho doanh nghiệp thiết lập các cơ
chế bảo mật, khả năng chống spam mail, … băng phần mềm máy chủ Exchange
server 2010.
Trang 1
Thực tập chuyên nghành MMT & TT
Thực tập chuyên nghành MMT & TT
phần mềm thư điện tử kiểu mới còn có thể hiển thị các email dạng sống động tương
thích với kiểu tệp HTML.
2.Lợi ích của thư điện tử (E-mail) so với thư truyền thống
- Thay vì viết thư bằng giấy mực và bút thì người gửi chỉ cần gõ chữ từ bàn phím
của máy tính và biết dùng một phần mềm thư điện tử (email program).
- Lá thư được gửi trên hệ thống bưu chính là vật liệu không cần máy nhận hay máy
gửi. Trong khi đó, nếu gửi thư điện tử, chỉ có các tín hiệu điện mã hoá nội dung
bức thư điện tử được truyền đi đến máy nhận. Do đó, chỉ có nội dung hay cách
trình bày lá thư điện tử là được bảo toàn. Trong khi đó, dùng đường bưu điện
người ta có thể gửi đi các vật liệu hàm chứa thêm nội dung hay ý nghĩa khác.
Điều này có thể rất quan trọng đối với nhiều người.
- Vận tốc truyền thư điện tử chỉ vài giây đến vài phút và chi phí rất nhỏ không đáng
kể so với gửi qua đường bưu điện
- Dùng thư điện tử thì bất kỳ lúc nào cũng có thể mở phần mềm thư điện tử ra đọc
nên tiện lợi hơn là việc phải bỏ thư ở các thùng thư. Đồng thời, vì mỗi người
dùng thư đều phải nhập mật khẩu vào máy nên thư điện tử sẽ khó bị người ở
chung đọc lén so với thư gửi bưu điện. Nhưng ngược lại, các tay tin tặc xa lạ có
thể xâm nhập vào hệ thống thư điện tử của cá nhân nếu như các mật mã hay các
hệ thống an toàn phần mềm bị bẻ gãy.
- Khối lượng gửi và nhận thư điện tử có thể nhiều hơn thư bưu điện rất nhiều lần.
- Thư điện tử không thể bị hư hai vật lý. Thư điện tử có thể bị nhiễm virus, các mã
độc hại
- Khả năng chuyển tiếp thư nhanh chóng
- Hộp thư là nơi cất giữ các thư từ với địa chỉ xác định. Tương tự, trong hệ thống
thư điện tử, thì hộp thư này tương đương với phần dữ liệu chứa nội dung
các email cộng vói điạ chỉ của người chủ thư điện tử. Điểm khác biệt ở đây là hộp
thư điện tử sẽ có nhiều chức năng hơn là việc xoá bỏ các thư cũ.
- Mỗi người có thể có một hay nhiều địa chỉ email (và phải được đăng ký qua một
hệ thống nào đó). Mỗi hộp thư sẽ có một địa chỉ phân biệt không bao giờ trùng
Thực tập chuyên nghành MMT & TT
• Việc chuyển giao các thư được các MTA quyết định dựa trên địa chỉ người
nhận.
• Nếu nó trùng với hộp thư do MTA (Local-MTA) quản lý thì thư được chuyển
cho MDA để chuyển vào hộp thư.
• Nếu địa chỉ thư bị lỗi, thư có thể được chuyển lại người gửi.
• Nếu không bị lỗi nhưng không phải là thư của MTA, tên miền được sử dụng
để xác định xem Remote MTA nào sẽ nhận thư theo các bản ghi MX trên hệ
thống tên miền.
• Khi các MX xác định được Remote MTA quản lý tên miền đó thì không có
nghĩa là người nhận thuộc Remote MTA mà Remote MTA có thể đơn giản chỉ
trung chuyển (thư) cho một MTA khác,có thể định tuyến thư cho địa chỉ khác
như vai trò của một dịch vụ domain ảo (domain gateway) hoặc người nhận
không tồn tại và Remote MTA sẽ gửi lại cho MUA một lời cảnh
báo(warning).
Microsoft Exchange Server là một MTA dùng giao thức SMTP để đóng vai trò là một
SMTP Server làm nhiệm vụ phân phối thư từ vùng này sang vùng khác.
Mail Delivery Agent (MDA)
Là một chương trình được MTA sử dụng để chuyển thư vào hộp thư của người
dùng.Ngoài ra MDA còn có khả năng lọc thư, định hướng thư…MTA có thể tích hợp
một hay nhiều MDA.
4.Cơ chế hoạt động của thư điện tử
E-mail là dịch vụ rất phổ biến và thông dụng trong mạng
Internet/Intranet và hầu như không thể thiếu được trong Internet/Intranet hiện
nay. Tuy nhiên không phải là dịch vụ “từ đầu - đến cuối” (end to end). Nghĩa
là dịch vụ này không đòi hỏi hai máy tính gởi và nhận thư phải nối trực tiếp
với nhau để thực hiện việc chuyển thư. Nó là dịch vụ kiểu lưu và chuyển tiếp
(store-and-forward) thư được chuyển từ máy này sang máy khác cho tới khi
máy đích nhận được. Người nhận cũng chỉ thực hiện một số thao tác đơn giản
để lấy thư, đọc thư và nếu cần thì cho in ra. Cách liên lạc này thuận tiện hơn
IMAP(INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1)
thực chất là giao thức mới bổ Sung và mở rông hơn của giao thức POP3 còn
thiếu. IMAP cho phép đọc, xoá, gởi, duy chuyển mail ngay trên máy chủ.
Điều này rất thuận tiện cho người nhận mail phải thường xuyên di chuyển
mail từ máy này sang máy khác trong quá trình làm việc. Tuy nhiên chi phí để
cài đặt một trạm e-mail có giao thức IMAP là rất cao so với giao thức POP3.
Mỗi người dùng (client) đều phải kết nối với một E-mail Server gần
nhất (đóng vai trò bưu cục địa phương) phải có một tên (e-mail account) trên
một trạm e-mail và sử dụng chương trình e-mail client (ví dụ như Eudora,
Netscape...). Sau khi soạn thảo xong thư và đề rõ địa chỉ đích (người nhận) rồi
gửi thư tới E-mail-Server của mình. E-mail Server này có nhiệm vụ sẽ tự
động kiểm tra và định hướng chuyển thư tới đích hoặc chuyển thư tới một E-
mail-Server trung gian khác. Thư chuyển tới E-mail-Server của người nhận và
được lưu ở đó. Đến khi người nhận thiết lập tới một cuộc kết nối tới E-mai-
Server đó thì thư sẽ chuyển về máy người nhận, nếu không thì thư vẫn tiếp
tục giữ lại ở server đảm bảo không bị mất.
Phần khác của ứng dụng thư điện tử là cho phép người sử dụng đính
kèm (attachments) theo thư một tập tin bất kỳ (có thể dạng nhị phân chẳng
hạn chương trình chạy).
Như vậy để gởi/nhận thư người sử dụng chỉ cần quan tâm tới cách sử
dụng chương trình e-mail client. Hiện nay có nhiều chương trình E-mail client
như Microsoft Outlook Express, Eudora Pro, Peagasus mail, ....và một dịch
vụ e-mail client rất phổ biến bây giờ là Webmail.
5.Kiến trúc của thư điện tử
Về cơ bản, một bức Mail bao gồm 3 phần chính:
• Phần phong bì (Envelope): Mô tả thông tin về người gởi và người
nhận. Phần này do các MTA tạo ra và sử dụng, nó chứa các thông tin để
chuyển nhận email như địa chỉ của nơi nhận, địa chỉ của nơi gửi. Hay nói
cách khác, giao thức SMTP sẽ quy định thông tin của phong bì, các hệ thống
Trang 7
tạo ra bởi trình soạn thảo Editor của chương trình Mail. Để phân biệt phần tiêu đề và
phần nội dung của bức Mail, người ta qui ước đặt ranh giới là một dòng trắng (chuỗi
ký tự "\r\n"). Kết thúc của phần nội dung là chuỗi ký tự kết thúc Mail: "\r\n.\r\n". Như
vậy nội dung bức Mail nằm trong khoảng giữa dòng trắng đầu tiên và ký tự kết thúc
Mail, và trong phần nội dung của bức Mail không được phép tồn tại chuỗi ký tự kết
Trang 8
Thực tập chuyên nghành MMT & TT
thúc Mail. Mặt khác do môi trường truyền thông là mạng Internet nên các ký tự cấu
thành phần body của bức Mail cũng phải là các ký tự ASCII chuẩn.
6.Những chức năng cơ bản của hệ thống thư điện tử
Các hệ thống thư điện tử thường bao gồm hai hệ thống con: các tác
nhân người sử dụng (the user agents - gọi tắt là UA), nó cho phép chúng ta
đọc và gửi thư, và các tác nhân truyền thông điệp (the message transfer agents
- gọi tắt là MTA), nó làm nhiệm vụ chuyển các thông điệp từ nguồn đến đích.
Các UAs là các chương trình cục bộ hỗ trợ dựa trên điều khiển bằng lệnh,
trình đơn menu hay dùng phương pháp đồ hoạ để tương tác với hệ thống thư
điện tử. Các MTAs là các trình tiện ích hoạt động ở chế độ nền (background)
thực hiện các nhiệm vụ cần thiết như tiếp nhận thư điện tử và chuyển thư qua
các hệ thống. Đặc biệt, các hệ thống thư điện tử hỗ trợ năm chức năng cơ bản,
được mô tả dưới đây:
- Composition: Xử lý việc tạo các thông điệp và trả lời. Cho phép bất
cứ trình soạn thảo nào có thể được sử dụng cho phần thân của thông điệp, các
hệ thống có thể tự nó đảm trách việc đánh địa chỉ và chỉ số các trường tiêu đề
(header fields) được kèm theo cùng với mỗi thông điệp. Ví dụ như, khi trả lời
một thông điệp, hệ thống thư điện tử có thể tách địa chỉ của người gửi từ các
thư được gửi đến và tự động chèn nó vào các trường thích hợp trong phần hồi
âm (reply).
- Transfer: Làm nhiệm vụ chuyển các thông điệp từ người gửi đến nơi
người nhận. Trong phần này, việc chuyển các thông điệp yêu cầu phải thiết
lập một kết nối đến đích (người nhận) hay một số thao tác của thiết bị như
Mục đích của giao thức SMTP là truyền mail một cách tin cậy và hiệu quả.
Giao thức SMTP không phụ thuộc vào bất kỳ hệ thống đặc biệt nào và nó chỉ yêu cầu
trật tự của dữ liệu truyền trên kênh truyền đảm bảo tính tin cậy.
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
Trang 10
File System
SMTP Commands / Replies
Sender SMTP
Sender - SMTP
Hình 3: Mô hình tổng quát sử dụng giao thức SMTP
Receiver SMTP
Receiver - SMTP
and Mail
File System
User
Thực tập chuyên nghành MMT & TT
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
1.2. 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
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.
1.3. Thủ tục SMTP
1.3.1 Mail
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
Trang 12
Thực tập chuyên nghành MMT & TT
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 hộp
thư(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.
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
1.3.3.Kiểm tra và mở rộng( Verifying and Expanding)
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.
Trang 14
Thực tập chuyên nghành MMT & TT
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
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.
1.3.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.
1.3.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 .
Trang 16
Thực tập chuyên nghành MMT & TT
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-
Thực tập chuyên nghành MMT & TT
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 .
1.3.7 Domains
Domains: là cách sử dụng các tên vùng tên miền để chuyển đổi từ
không gian địa chỉ tổng thể gồm các chuỗi kí tự đơn giản sang một không
gian địa chỉ có cấu trúc được phân cấp.
Tên các host được thay thế bởi các tên miền và máy chủ định danh bao
gồm các chuỗi các phần tử miền được phân ra thành các phân đoạn được sắp
xếp ngăn nắp thành một địa chỉ chung nhất.
1.3.8 Changing Roles
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.
1.4 Đặc tả SMTP
1.4.1Những lệnh SMTP (SMTP commands)
a. 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
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 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 đó.
Trang 19
Thực tập chuyên nghành MMT & TT
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
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.
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.
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). 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 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
QUIT <CRLF>
TURN <CRLF>
1.4.2 SMTP Replies
Sự phản hồi các lệnh SMTP được đưa ra là để chắc chắn tính thống trong quá trình
thư, đông thời đảm bảo rằng phía sender_SMTP luôn luôn biết được chính xác trạng
thái của receiver-SMTP mọi câu lệnh yêu cầu phải được trả lời bằng các mã thông tin
phản hồi chính xác
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
Trang 21
Thực tập chuyên nghành MMT & TT
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 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. 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 Những mã Reply cho một
nhóm chức năng
500 Lỗi cú pháp, không chấp nhập lệnh
501 Lỗi cú pháp trong những đối số hay những tham số
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 đỡ
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
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”
Thực tập chuyên nghành MMT & TT
Chuỗi Commands và 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)
Thứ tự S F E
CONNECTION
ESTABLISHMENT
220 421
HELLO 250 500, 501, 504, 421
MAIL 250 552, 451, 452 500, 501, 421
RCPT 250, 251 550, 551, 552, 553, 450,
451, 452
500, 501, 503, 421
DATA S: 250 552, 554, 451, 452, 451, 554 500, 501, 503, 421
RSET 250 500, 501, 504, 421
SEND 250 552, 451, 452 500, 501, 502, 421
SOML 250 552, 451, 452 500, 501, 502, 421
SAML 250 552, 451, 452 500, 501, 502, 421
VRFY 250, 251 550, 551, 553 500, 501, 502, 504, 421
EXPN 250 550 500, 501, 502, 504, 421
HELP 211, 214 500, 501, 502, 504, 421
NOOP 250 500, 421
QUIT 221 500, 421
TURN 250 502 500, 503
1.4.4 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
khiển khác. Nếu kê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ếu nhữ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ếu những biến đổi đó được áp dụng cho mail được chia ca
c. . Kích thước
Trang 24
Thực tập chuyên nghành MMT & TT
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ực thi 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ải gử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
đề trong suố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)
1.5 Giao thức mở rộng SMTP ( ESMTP)
SMTP 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