1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

81 1,1K 10
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề 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
Người hướng dẫn Thầy Lê Quốc Tuấn
Trường học Trường Đại Học Khoa Học Công Nghệ
Chuyên ngành Mạng Máy Tính và Truyền Thông
Thể loại Đồ án
Định dạng
Số trang 81
Dung lượng 2,27 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

MỤC LỤC

LỜI MỞ ĐẦU 3

PHẦN I: CÁC GIAO THỨC TRUYỀN NHẬN MAIL 4

I Giới thiệu tổng quan về E-mail 4

2.Lợi ích của thư điện tử (E-mail) so với thư truyền thống 5

3.Các nhân tố cơ bản của một hệ thống E-mail 5

4.Cơ chế hoạt động của thư điện tử 7

5.Kiến trúc của thư điện tử 9

6.Những chức năng cơ bản của hệ thống thư điện tử 10

II Các giao thức truyền nhận E-mail 12

1.SMTP (Simple Mail Tranfer Protocol) 12

1.1.Giới thiệu 12

1.2 Mô hình SMTP 12

1.3 Thủ tục SMTP 14

1.4 Đặc tả SMTP 20

1.5 Giao thức mở rộng SMTP ( ESMTP) 27

2.POP3 28

2.1 Giới thiệu 28

2.2 Thao tác cơ bản 28

2.3 Trạng thái xác nhận (Authorization State) 30

2.4 Trạng thái giao dịch 32

2.5 Trạng thái cập nhật 34

2.6 Các lệnh POP3 chọn lựa 34

3.IMAP(RFC2060, RFC2193,…) 36

3.1 Một số lệnh của IMAP4: 37

4.MIME 43

PHẦN II: TỔNG QUAN MICROSOFT EXCHANGE SERVER 2010 46

I.Tổng quan Microsoft Exchange Server 2010 46

1 Linh động và đáng tin cậy 47

2 Truy cập thông tin ở bất cứ đâu 48

3 Khả năng bảo mật và tuân thủ quy định thông tin cao 50

II Sự thay đổi của Microsoft Exchange 2010 so với các phiên bản trước 51

Trang 2

1.Một số phần được loại bỏ trong Microsoft Exchange 2010 so với phiên bản

trước 51

2.Cải tiến phương thức quản lý 51

3.Khôi phục đơn 53

4.Windows Mobile 53

5.Cho phép phân quyền tự quản trị bằng công cụ ECP 53

6.Những cải tiến về tốc độ 54

7 Một số hạn chế 54

III Những công nghệ trong Microsoft Exchange 2010 55

1.Hệ thống thư điện tử thống nhất (Unified messaging) 55

2.Phục hồi Mailbox( Mailbox Resiliency) 56

3.Công cụ quản lý (Management tools) 58

4.Theo dõi và bảo vệ thông tin ( Information Protection and Control) 59

5 Một số chức năng khác 62

PHẦN III: TRIỂN KHAI VÀ CÀI ĐẶT MÔ HÌNH EXCHANGE SERVER 2010 63

I.Yêu cầu khi cài đặt Exchange Server 2010 63

1.Yêu cầu phần cứng 63

2.Yêu cầu hệ điều hành (Oparator System), Role & Features 63

3.Yêu cầu hạ tầng 64

II Triển khai 64

1.Mô hình & chuẩn bị 64

2.Thực hiện 65

2.1 Cài đặt Exchange Server 2010 trên máy Domain 65

2.2 Cài đặt Exchange Edge Transport, ForeFont Protection và TMG 2010 trên máy TMG 71

3.Một số tính năng của ForeFront TMG dành cho Email 78

3.1Cấu hình Email Policy 78

3.2 Cấu hình Anti Spam Policy 80

Trang 3

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ộttrong 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ừ quaInternet 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ờichú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ơinà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ạngthô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ệpHTML

Đố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ớinhữ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êntrong 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 chocá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ìmhiểu về những chức năng của Exchange server 2010 phần mềm máy chủ của hãngMicrosoft 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ủ Exchangeserver 2010

Trong quá trình làm đồ án còn rất nhiều thiếu sót Rất mong nhận được ýkiến giúp đỡ của Thầy(Cô) để hoàn thành tốt đồ án chuyên nghành này Tôi cũng

chân thành cảm ơn thầy Lê Quốc Tuấn đã hướng dẫn tôi làm đồ án này.

Trang 4

PHẦN I: CÁC GIAO THỨC TRUYỀN NHẬN

MAIL

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 chonhữ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 đếnnay là X.400 và SMTP ( Simple Mail Transfer Protocol) SMTP thường đi kèm vớichuẩn POP3 và do hạn chế của SMTP mà ngày nay người ta dùng chuẩn mở rộngcủa nó là ESMTP (Extended SMTP) Mục đích chính của X.400 là cho phép cácmail 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ìnhphầ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ủachuẩn SMTP miêu tả cách điều khiển các thông điệp trên mạng Internet Điều quantrọng của chuẩn SMTP là giả định máy nhận phải dùng giao thức SMTP gởi Mailcho 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 Mailthông dụng : chuẩn X.400, chuẩn IMAP, SMTP (ESMTP), POP3 Trong phần nàychúng ta sẽ làm rõ các giao thức truyền nhận mail này, cơ chế gửi và nhận Mail nhưthế nào?

I Giới thiệu tổng quan về E-mail

1 Khái niệm thư điện tử (E-mail)

E-mail hay thư điện tử là một phương tiện truyền đạt thông tin rất nhanh.Một mẫu thông tin (thư từ) có thể được gửi đi ở dạng mã hoá hay dạng thôngthường và được chuyển qua các mạng máy tính đặc biệt là mạng Internet Nó có thểchuyển mẫu thông tin từ một máy nguồn tới một hay rất nhiều máy nhận trong cùnglúc

Ngày nay, email không những có thể truyền gửi được các ký tự, mà 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ệtcác 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 độngtương thích với kiểu tệp HTML

Trang 5

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ímcủ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 haymá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ộidung bức thư điện tử được truyền đi đến máy nhận Do đó, chỉ có nội dung haycá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ĩakhá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 đọcnê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ườidù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ốngthư điện tử, thì hộp thư này tương đương với phần dữ liệu chứa nội dungcá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ùngvới địa chỉ email khác

3.Các nhân tố cơ bản của một hệ thống E-mail

Thông thường một hệ thống mail bao gồm 3 thành phần cơ bản:MUA, MTA,MDA

Trang 6

Hình 1: Các nhân tố cơ bản của hệ thống mail

 Mail User Agent (MUA)

MUA là chương trình quản lý thư đầu cuối cho phép người dùng có thể đọc soạnthảo và gửi mail

MUA có thể lấy thư từ mail server về để xử lý(sử dụng giao thức POP)hoặcchuyển thư cho một MUA khác thông qua MTA(sử dụng giao thức SMTP)

MUA có thể xử lý trực tiếp thư ngay trên mail server (sử dụng giao thức IMAP).Chức năng chính của MUA là cung cấp giao diện cho người dùng tương tác vớithư,gồm có:

 Soạn thảo, gửi thư

 Hiển thị thư gồm cả các tập tin đính kèm

 Gửi trả (Relay) hay chuyển tiếp thư (Create New)

 Đính kèm các tập tin vào các thư gửi đi (Text, HTML, MIME…)

 Thay đổi các tham số (ví dụ như server được sử dụng,kiểu hiển thịthư,kiểu mã hóa thư)

 Thao tác trên các thư mục thư địa phương và ở xa

 Cung cấp số địa chỉ thư (danh bạ địa chỉ)

 Lọc thư

 Mail Tranfer Agent (MTA)

Khi các thư được gửi đến từ MUA, MTA có nhiệm vụ nhận diện người gửi vàngười nhận từ thông tin đóng gói trong phần header và điền các thông tin cần thiết

Trang 7

vào header.Sau đó MTA sẽ chuyển thư cho MDA để chuyển đến hộp thư ngay tạiMTA,hoặc chuyển cho Remote MTA.

 Việc chuyển giao các thư được các MTA quyết định dựa trên địa chỉ ngườinhận

 Nếu nó trùng với hộp thư do MTA (Local-MTA) quản lý thì thư đượcchuyể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ảnchỉ 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ườinhận không tồn tại và Remote MTA sẽ gửi lại cho MUA một lời cảnhbá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ườidùng.Ngoài ra MDA còn có khả năng lọc thư, định hướng thư…MTA có thể tíchhợ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ểnthư 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ựchiệ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ênlạc này thuận tiện hơn nhiều so với gởi thư thông thường qua bức điện hoặc Fax, lại

Trang 8

rẻ và nhanh hơn Cách thực hiện việc chuyển thư không cần phải kết nối trực tiếpvới nhau để chuyển thư, thư có thể được chuyển từ máy này đến máy khác cho tớimáy đích Giao thức truyền thống sử dụng cho hệ thống thư điện tử của Internet làSMTP(Simple Mail Transfer Protocol).

Hình 2: Cơ chế hoạt động của thư điện tử(E-mail)

Giao thức liên lạc : mặc dù gởi thư trên Internet sử dụng nhiều giao thứckhác nhau, nhưng giao thức SMTP được dùng trong việc vận chuyển mail giữa cáctrạm Giao thức này đặc tả trong hai chuẩn là trong RFC 822 (định nghĩa cấu trúccủa thư ) và RFC 821(đặc tả giao thức trao đổi thư giữa hai mạng) ngoài ra trongRFC2821 sẽ nói rõ các qui luật và cách hoạt động của giao thức Là giao thức cơbản để chuyển thư giữa các máy Client, SMTP có một bộ gởi thư, một bộ nhận thư,

và một tập hợp lệnh dùng để gởi thư từ người gởi đến người nhận Giao thức SMTPhoạt động theo mô hình khách/chủ (Client/ Server) với một tập lệnh đơn giản, trìnhkhách (SMTP mail Client) sẽ bắt tay với trình chủ (SMTP mail Server) gởi các yêucầu tiếp nhận mail Trình chủ đọc nội dung mail do trình khách gởi đến và lưu vàomột thư mục nhất định tương ứng với từng user trên máy chủ

Cứ mỗi trạm e-mail thường bao gồm ít nhất là hai dịch vụ: POP3 (Post Office Protocol Version 3) có nhiệm vụ nhận/trả thư từ/tới e-mail client và dịch vụ SMTP (Simple E-mail Transfer Protocol) có nhiệm vụ nhận/phân phối thư từ/đến

POP3 đồng thời trao đổi thư với các trạm e-mail trung gian POP3 được tìm thấytrong RFC 1725 hay RFC 1939, là một giao thức đơn giản nhất, cho phép lấy mail

về từ trình chủ POP3 Server Ngoài tra trạm e-mail này có thể bổ sung thêm một sốdịch vụ khác như ESMTP, IMAP và dịch vụ MX Record của dịch vụ DNS hay dịch

vụ chuyển tiếp mail(Forward or relay) IMAP(INTERNET MESSAGE ACCESSPROTOCOL - VERSION 4rev1) thực chất là giao thức mới bổ Sung và mở rônghơn của giao thức POP3 còn thiếu IMAP cho phép đọc, xoá, gởi, duy chuyển mail

Trang 9

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 chiphí để 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 khisoạn thảo xong thư và đề rõ địa chỉ đích (người nhận) rồi gửi thư tới E-mail-Servercủa mình E-mail Server này có nhiệm vụ sẽ tự động kiểm tra và định hướngchuyể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ậnthiế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ườinhậ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ươngtrì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ụngchươ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-mailclient 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ậnemail 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ứcSMTP sẽ quy định thông tin của phong bì, các hệ thống Email cần những thông tinnày để chuyển dữ liệu từ một máy tính này sang một máy tính khác

 Phần tiêu đề (header): chứa đựng các thông tin về người gởi, người nhận,chủ đề bức Mail, địa chỉ hồi âm v.v Các thông tin này, một số được người sử dụngcung cấp khi gởi Mail, một số khác được chương trình Mail thêm vào, và số còn lại

do Hệ thống điền thêm

Trang 10

- Phần này cung cấp những thông tin tổng quát về Email như người nhận,người gửi, ngày giờ nhận

- Cấu tạo gồm nhiều trường (field) cấu trúc mỗi trường là một dòng vănbản ASCII chuẩn 7 bit như sau:

<tên trường >: <nội dung của trường>

- Sau đây là một số trường thông dụng và ý nghĩa của nó :

Date Chỉ ngày giờ nhận mail

From chỉ người gởi

Cc chỉ người những nhận bản copy của mail

Bcc chỉ ra những người nhận bản copy của bức mail, nhưng từng người

không biết những người nào sẽ nhận bức thư nàyReturn-

path

chứa các thông tin để người nhận có thể trả lời lại (thường nó chính làđịa chỉ người gởi)

Subject chủ đề của nội dung Email

Các trường trên là các trường chuẩn do giao thức SMTP quy định, ngoài ra trongphần header cũng có thể có thêm một số trường khác do chương trình Email tạo ranhằm quản lý các email mà chúng tạo Các trường này được bắt đầu bằng ký tự X-

và thông tin theo sau là cũng giống như ta thấy trên một trường chuẩn

 Phần nội dung (body): chứa đựng nội dung của bức Mail, là nội dung đượctạ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ạichuỗi ký tự kết thúc Mail Mặt khác do môi trường truyền thông là mạng Internetnê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ự ASCIIchuẩ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ânngười sử dụng (the user agents - gọi tắt là UA), nó cho phép chúng ta đọc và gửithư, 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

Trang 11

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ìnhtiệ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ộtkết nối đến đích (người nhận) hay một số thao tác của thiết bị như xuất thông điệp

và kết thúc việc kết nối Hệ thống thư điện tử làm việc này một cách tự động màkhông cần có một sự can thiệp nào của người sử dụng

- Reporting: Buộc phải thực hiện để báo cho người gửi những gì xảy ra đối

với thông điệp vừa gửi là ở tình huống đã gửi đến đích chưa? hoặc việc gửi đã bịhuỷ bỏ? hoặc thư đã bị lạc?

- Displaying: Những thông điệp gửi đến được yêu cầu làm sao để mọi người

có thể đọc được thư của họ Đôi khi người ta yêu cầu quá trình chuyển đổi hay mộttrình hiển thị đặc biệt để hỗ trợ, ví dụ như, nếu thông điệp có dạng một tệpPostScript hay tiếng nói được số hoá kèm theo trong thông điệp gửi đến

- Disposition: Là bước cuối cùng liên quan đến những gì người nhận thực

hiện đối với thông điệp sau khi đã nhận nó Những khả năng có thể là ném nó đitrước khi đọc, ném nó đi sau khi đọc, lưu nó, v v Nó cũng sẽ có thể thu nhận đểđọc lại với các thông điệp đã được lưu lại, chuyển tiếp chúng hoặc xử lý chúngbằng những phương pháp khác nhau khi được yêu cầu của người sử dụng

Thêm vào đó các dịch vụ này, hầu hết các hệ thống thư điện tử cung cấpnhiều đặc tính nâng cao khác nhau Một số đặc tính tiêu biểu như, khi người tamuốn chuyển thư hay khi họ nghĩ xa hơn về các chi tiết về thời gian, có lẽ họ muốn

Trang 12

thư của họ được chuyển tiếp, chính vì thế mà hệ thống thực hiện điều này một cách

tự động

Hầu hết các hệ thống cho phép người sử dụng tạo các hộp thư (mailboxes) đểlưu trữ các thư chuyển đến (incoming email) Các lệnh được người ta yêu cầu tạo vàhuỷ bỏ các hộp thư, kiểm tra các nội dung hộp thư, chèn và xoá các thông điệp khỏihộp thư, …

II Các giao thức truyền nhận E-mail

1.SMTP (Simple Mail Tranfer Protocol)

1.1.Giới thiệu

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êucầ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ôitrườ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àiNetwork, 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ụnghay 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ếtnối đến hai (hay nhiều ) IPCE Chi tiết hơn Mail có thể chia ca giữa những Hosttrên hệ thống giao chuyển khác nhau bằng một Host trên cả hai hệ thống chuyểngiao

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êucầu Mail của user Sender- SMTP thiết lập một kênh hai đường vận chuyển đếnmột receiver- SMTP Receiver- SMTP có thể là đích đến cuối cùng hay một trunggian 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 đó

Trang 13

File System

SMTP Commands / Replies

Sender SMTP

Sender - SMTPHình 3: Mô hình tổng quát sử dụng giao thức SMTP

Receiver SMTP

Receiver - SMTP

and Mail

File SystemUser

Khi một kênh giao chuyển được thiết lập sender-SMTP gửi đi 1 lệnh Mailbiể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 Receivermail nếu Receiver-SMTP có thể chấp nhận mail nó trả lời với 1 OK reply nếukhô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ộtchuỗ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)

SMTP cung cấp những cơ chế giao chuyển Mail một cách trực tiếp từ Host củaUser gửi đến host của user nhận khi cả hai host được kết nối đến cùng dịch vụ giaochuyể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ậnSMTP-Sever phải được cung cấp tên của host đến cùng chẳng hạn như hạn củaMailhost đế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ộtmessage 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ềunà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

Trang 14

của những user name như chúng đã xuất hiện trong những đối số của mailbox Hostnames 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}, khidị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ự 7bit đượ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

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ộpthư(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 receipient Nếu được chấpnhận receiver-SMTP trả về một reply 250 OK Và lưu lại forward-path Nếureceipient không nhận biết thì receiver trả về reply 550 Failure 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:

Trang 15

DATA<CRLF>Nếu chấp nhận receiver-SMTP trả về một reply 354 và coi tất cả các dòngnố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 dataphả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áocho 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àinguyê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ỉ đượcdùng trong những trật tự được trình bày ở trên Ví dụ :

1.3.2 Forwarding

Có một số trường hợp thông tin của đích đến trong <forward-path> bị sai nhưngreceiver-SMTP biết đích đến đúng Trong trường hợp như vậy một trong nhữngreply 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ênmột host khác và chỉ định forward-path đúng để sau đó sử dụng Lưu ý mộttrong hai host hay user hay cả hai có thể khác nhau Receiver chịu tráchnhiệ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ộthost khác và chỉ định forward-path đúng để sử dụng Lưu ý host hoặc là userhay 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 cungcấp hoặc là trả trả lời error cho user khởi đầu

Trang 16

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 username 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ủauser đó 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êndanh 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 mailboxcục bộ phải được thừa nhận như là“user names” Nếu một host chọn lựa để thừanhậ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 chosingle mailbox hơi mơ hồ Từ đó một cấu trúc dữ liệu phổ biến có thể giữ cả haikiể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 chonế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 namemộ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áchchứ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 amailing 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àymột yêu cầu nhập nhằng khó hiểu như : “VRFY Smith” có hai câu trả lời của Smithphải là "553 User ambiguous"

Những đối số chuổi ký tự của lệnh VRFY và EXPN không thể vượt qua giớihạn được quyền trên sự bổ sung đa dạng của user name và khái niệm mailbox Trênmột số hệ thống nó có thể dành riêng cho đối số của lệnh EXPN để là một file namecho 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 đặctên file trong internet

1.3.4 Sending and Mailing

Trang 17

Mục đích chính của SMTP là phân phối những message đến những mailbox củauser Một dịch vụ rất phổ biến được cung cấp bởi một số host là để phân phốinhữ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 thicủ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ênkết với SMTP Mặc dù lệnh sending không bao gồm trong yêu cầu thực thi tốithiểu 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ộtreply 450 có thể được trả cho một lệnh RCPT Giao chuyển mail thành công khimessage đó đượ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 terminalcủa user nếu user đó đang hoạt động (và chấp nhận những message terminal) trênhost đó Nếu user không hoạt động (haykhông chấp nhận terminal message) thì maildata được đưa vào trong mailbox của user Giao chuyển mail thành công khimessage đó đượ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 đếnterminal của user nếu user đó đang hoạt động (và chấp nhận những messageterminal) trên host đó Trong những tất cả trường hợp mail data được đưa vào trongmailbox của user Giao dịch mail thành công khi message đó được phân phát đếnmailbox

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

Trang 18

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ộtroute 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 khimessage đó đượ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ủamessage đến điểm khởi đầu của message đó) Khi một server SMTP xóa phần nhậndạ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 đượcbiế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-pathkhông phải là phần nhận dạng của SMTP đó, thành phần này không bị xoá trongforward-path và được dùng để xác định SMTP kế để gửi message đến Trongtrườ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 SMTP khác Receiver-SMTP đó có thể chấp nhận hoặc bác bỏ công việc chia cacho 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ànhsender-SMTP, thiết lập một kênh truyền đến SMTP kế trong forward-path,và gửimail đó 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

server-Nếu một server-SMTP chấp nhận công việc chia ca mail và sau đó thấyforward-path không đúng hay mail đó không thể được phân phát được vì bất cứ lí

Trang 19

do nào, thì nó phải xây dựng một message thông báo "undeliverable mail" (mailkhô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 messagethô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ủamessage một thông báo Khi một message thông báo như vậy được chia ca nó đượcdùng để loại bỏ reverse-path null Một lệnh MAIL với null reverse-path như sau:

MAIL FROM:< >

Thông báo này nằm trong trả lời cho một message được khởi động bởi JOEtại HOSTW và gửi thông qua HOSTX đến HOSTY với chỉ thị chia ca nó đếnHOSTZ, 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ônggian đị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ồmcá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ănnắ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ênkênh giao chuyển Nếu chương trình A đang là sender-SMTP hiện hành và nó gửilệ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ửilệ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ìnhtrạng kênh giao chuyển là TCP Tuy nhiên khi trị giá cho việc thiết lập kênh giaochuyể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 giaochuyển, đặc biệt nếu một số host đề cử các host khác cho việc trao đổi mail

Trang 20

<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ảituân theo những thoả hiệp phía receiver Những reply SMTP được bàn đến trongphần B

Một sự giao dịch mail bao gồm vài đối tượng dữ liệu được giao tiếp khinhữ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 xongbở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 chomột hay nhiều buffer bị xoá

HELLO (HELO) : Lệnh này dùng định danh sender-SMTP đến receiver-SMTP.

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

RECIPIENT (RCPT) : Lệnh này dùng định danh một recipient (người nhận)

mail data riêng lẻ, nhiều recipient được đặc tả bằng nhiều lệnh này

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 Maildata này có thể chứa những ký tự của 128 mã ACII Data mail được kết thúcbằng một dòng chỉ chứa một dấu chấm Đó là một dãy ký tự "<CRLF>

<CRLF>".Và đó là chỉ định kết thúc của mail data

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ày thành công nếu message được phân phát đến một terminal

Trang 21

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 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ững recipient đó 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

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 Chotừ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à chotất cả recipient thì đến mailbox của các recipient đó

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ácbuffer 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-pathbuffer, 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ácuser (nếu biết) và những mailbox được đặc tả đầy đủ được trả về trong mộtreply

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 tinchi 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à receivergử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ó

Trang 22

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 gianmong 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 đó) 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 xác định receiver 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ộtreply từ chối và giữ lại vai trò một receiver-SMTPĐể từ chối thay đổi vai tròreceiver gửi một reply 502

- Đối số bao gồm một chuỗi ký tự có chiều dài biến đổi kết thúc bằng chuỗi ký

Trang 23

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định trạng thái đưa vào kế tiếp Text ở trên có ý nghĩa cho user con người(khôngphả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 userthí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ộtreply đượ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ữnglệnh EXPN và HELP có kết quả là những reply nhiều dòng trong những tình huốngbì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”

450 Không lấy hành động mail yêu cầu: mailbox không có hiệu lự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 đủ

Trang 24

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

1.4.3 Sự liên tục của commands và reply

Sự giao tiếp giữa sender và receiver được định là một cuộc hội thoại tuần tự dosender điều khiển Chẳng hạn như sender sinh ra một lệnh và receiver trả lời vớimộ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ột reply 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à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

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ướcnhữ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, đóngkê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(statediagram)

Trang 25

3 4,5 1,3 2

4,5

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ộtchữ số đầu tiên của những mã reply được sử dụng Đây là một bảng trạng thái chotừng nhóm lệnh SMTP những nhóm lệnh này được xác định bằng cách xây dựngmột mô hình cho mỗ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ấu trú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 “waitforreply”

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

1.4.5 Chi tiết

a 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— HELO- MAIL- RCPT- DATA- RSET- NOOP- QUIT

b 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 userkhông nhận biết được sự “ngăn cản” những chuổi ký tự đó Để cho phép tất cả cáctext đã soạn thả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

 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 đầudòng

Trang 26

 2> Khi receiver-SMTP nhận một dòng mail text nó kiểm tra dòng đó Nếudò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ấu chấm và theo sau là những ký tự khác nằm trên cùngdò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ự đượcphân phát đến mailbox của recipient bao gồm phần định dạng và những ký tự điềukhiể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 bitcao 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ậpASCII , như tập ký tự cục bộ của chúng hay dữ liệu lưu trong những record nhiềuhơ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 đổihai chiều) được nếu những biến đổi đó được áp dụng cho mail được chia ca

c Kích thước

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ắtbuộ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)

ĐỂ 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ÀICỦA NHỮNG ĐỐI TƯỢNG SẼ ĐƯỢC DÙNG

Trang 27

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

đ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ứcmail khô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ại dữ 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ừ khoáSIZE=nnnnnnnnn sau lệnh khởi động cuộc giao dịch, nhờ đó ta có thể tăng giới hạnkí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 HELLO, nếu ServerMTA có trang bị, nó sẽ trả về mã thành công là 250 Ngày nay chuẩn ESMTP đãthay thế chuẩn SMTP ở đa số các hệ thống

Ví dụ : để khởi động cuộc giao dịch với kích thước mail lên tới 1MB, dònglệnh sẽ là : MAIL FROM :<thuan@sample1> SIZE=1000000

2.POP3

2.1 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ộtworkstation không có đủ tài nguyên (recycle, disk space) hợp lệ để cho phép mộtSMTP 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ường thì 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ơnnày Và chúng thường hổ trợ một user agent (UA) để giúp đỡ công việc điều khiểnmail Để giải quyết vấn đề một node có thể cung cấp một thực thể MTS đưa ra một

Trang 28

maildrop service đến những node được cấp nhỏ hơn này Post Office Protocol Version 3 (POP3) được dùng cho phép một workstation truy xuất động đến mộtmaildrop 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 được server đ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ày có thể, hay không cần POP3 server host cho client host đó)

2.2 Thao tác cơ bản

Ban đầu server host bắt đầu một POP3 service bằng cách lắng nghe trên TCPport 110 Khi một client host mong muốn dùng POP3 service, nó thiết lập một kếtnối TCP với server host đó Khi kết nối được thiết lập, POP3 server gửi một chàohỏi Client và server POP3 sau đó trao đổi những lệnh và các trả lời cho đến khi kếtnố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ộthay 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ách riê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 đến chiề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ể theo sau 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ặpCRLF Chỉ có hai loạ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ời nhiều dòng Trong trường hợp này, nó chophé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ộtCRLF, một số 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òng củ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ã 046 hệ 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ới termination 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ềudòng được kết thúc với năm octet "CRLF.CRLF" Khi xem xét một trả lời nhiềudò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 đầu tiên của dòng này (termination

Trang 29

octet) được bỏ đi Nếu đúng và nếu những ký tự kết thúc theo 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ó Khi kết nối TCP được mở và một POP3 server gửi một chào hỏi Hội nghị sẽ đivào trạng thái AUTHORIZATION (xác nhận) Trong trạng thái này client phải địnhdanh nó đến POP3 server Khi client định danh thành công, server thu được nhữngtài nguyên kết hợp với client’s maildrop, và hội nghị đi vào trạng tháiTRANSACTION (giao dịch) Trong trạng thái này client yêu cầu các hành độngtrong vai trò của POP3 server khi client phát ra lệnh QUIT, hội nghị đi vào trạngthái UPDATE Trong trạng thái này giải phóng các tài nguyên thu nhận được trongtrạng thái TRANSACTION và say goodbye Sau đó kết nối TCP đóng lạ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ận các lệnh từ client đủ để reset timer tự động logout đó Khi timer hếthiệ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ửi một message nào cho client

2.3 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òngchào hỏi nó có thể là một chuổi nào đó được kết thúc bởi CRLF

Chào hỏi đó là một POP3 reply POP3 server bao giờ cũng sẽ truyền đi mộttrả lời khẳ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 danh và 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ệnh USER 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átmột lệ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ệnhQUIT để kết thúc POP3 session Nếu POP3 server trả lời với một chỉ thị trạng tháiphủ nhận (“-ERR”) cho lệnh USER, thì client có thể phát ra một lệnh xác nhận mớihay có thể phát một lệnh QUIT

Trang 30

Khi client phát ra một lệnh PASS, POP3 server dùng cặp đối số từ lệnhUSER và PASS để xác định nếu client sẽ được cho truy xuất đến maildrop thíchhợp.

Khi POP3 server đã được xác định bằng các lệnh xác nhận, nó cho client truyxuất đến những mailbox thích hợp, sau đó POP3 server thu được một khoá truy xuấtloạ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ội nghị đi vào trạng thái UPDATE Nếu thu nhận khoá thành công POP3server trả lời với một chỉ định trạng thái khẳng định Và lúc này hội nghị đi vàotrạng thái TRANSACTION mà không có message nào bị đánh dấu để xoá Nếumaildrop 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ới maldrop thích hợp đó, hay maildrop khôngđược phân tích cú pháp ), POP3 server trả lời vớ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ỉ địnhtrạng thái phủ định, POP3 server phải giải phóng khoá trước khi loại bỏ lệnh đó ).Sau khi trả về một chỉ định trạng thái phủ định server phải đóng kết nối, nếu serverkhô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 chomỗi message và biểu thị kích thước của mỗi message trong hệ tám (octet), messageđầu tiên trong maildrop được gán message-number “1”, message thứ hai là “2” …Trong các lệnh và các trả lời POP3 tất cả các message-number và kích thướcmessage được trình bày dựa trên hệ 10 (decimal)

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

- 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

PASS string

Trang 31

- Đối số: Một password cho mailbox hay server (được yêu cầu) aserver/mailbox-specific password (required)

- Giới hạn : Chỉ có thể dược cho trong trạng thái AUTHORIZATION sau khimộ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 POP3server có thể xử lý khoảng trống trong đối số này như là một phần củapassword, 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

Đâ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ộtdòng chứa thông tin của maildrop Dòng này được gọi là một "drop listing" chomaildrop đó

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 đ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ú ý : Những message được đánh dấu xoá không được đếm trong tổng số

Trang 32

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

LIST [msg]

- Đối số : Một message-number (tuỳ ý) có thể không tham khảo đến mộtmessage đượ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ờikhẳng định với một dòng chứa thông tin cho message đó, dòng này được gọi là

“scan listing” cho message đó

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ấp

trong scan 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 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

RETR msg

- Đối số : Một message-number (được yêu cầu) nó có thể không tham khảo đếnmột message đượ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 đượctrao là multi-line Sau khi khởi tạo +OK , POP3 server gửi một message tương ứngvớ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ời multi-line)

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

-ERR no such message

DELE msg

- Đối số : Một message-number (được yêu cầu) có thể không tham khảo đếnmộ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

Trang 33

POP3 server không thật sự xoá message đó cho đến khi POP3 session đi vào trạngthái UPDATE

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

-ERR no such message

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ờikhẳng định

- Câu trả lời có thể: +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 POP3server, chúng được bỏ đánh dấu xoá(unmark ) Sau đó POP3 server hồi âm với mộttrả lời khẳng định

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

2.5 Trạng thái cập nhật

Khi client phát ra một lệnh QUIT từ trạng thái TRANSACTION, POP3session đ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ái AUTHORIZATION, POP3 session kết thúc nhưng không đi vào trạngthái UPDATE)

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ôngremove một message nào từ maildrop đó

Trang 34

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ếtnối TCP được đóng lại.

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

Lưu ý: Sổ ghi chép khuyến khích những sự thự thi nhằm hổ trợ cho những lệnh nà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ổ ghinhớ là nhằm đặt một sự thông minh trong vai trò của client POP3 và không choserver POP3

TOP msg n

- Đối số: Một message-number (được yêu cầu) nó có thể không tham khảo đếnmột message đượ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ách header khỏi body, và sau đó là số dòng chỉ định phần body củamessage, 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

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

Trang 35

- Discussion : Nếu một đối số được cho và POP3 server phát ra một trả lờikhẳ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

- Câu trả lời có thể +OK unique-id listing follows

-ERR no such message

APOP name digest

- Đối số : Một chuổi định danh một mailbox và một chuổi MD5 digest ( yêu cầu

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

-ERR permission denied

3.IMAP(RFC2060, RFC2193,…)

Internet Message Access Protocol (IMAP) cung cấp lệnh để phần mềm thưđiện tử trên máy khách và máy chủ dùng trong trao đổi thông tin phiên bản4( IMAP4rev1) Đó là phương pháp để người dùng cuối truy cập thông điệp thưđiện tử hay bản tin điện tử từ máy chủ về thư trong môi trường cộng tác Nó chophép chương trình thư điện tử dùng cho máy khách - như Netscape Mail, Eudoracủa Qualcomm, Lotus Notes hay Microsoft Outlook - lấy thông điệp từ xa trên máychủ một cách dễ dàng như trên đĩa cứng cục bộ

IMAP khác với giao thức truy cập thư điện tử Post Office Protocol (POP).POP lưu trữ toàn bộ thông điệp trên máy chủ Người dùng kết nối bằng đường điệnthoại vào máy chủ và POP sẽ đưa các thông điệp vào in-box của người dùng, sau đóxoá thư trên máy chủ Hai giao thức này đã được dùng từ hơn 10 năm nay Theo

Trang 36

một nhà phân tích thì khác biệt chính giữa POP (phiên bản hiện hành 3.0) và IMAP(phiên bản hiện hành 4.0) là POP3 cho người dùng ít quyền điều khiển hơn trênthông điệp.

IMAP4rev1 được kế thừa từ [IMAP2] tuy nhiên trong giao thức IMAP4rev1không tồn tại các giao thức hay cấu trúc của [IMAP2] nhưng những khuôn dạng dữliệu vẫn được kế thừa và sử dụng IMAP4rev1 bao gồm những thao tác tạo ra, xoá,

và đổi tên các hòm thư, kiểm tra mail mới, thường xuyên cập nhật lại cờ những mail

cũ nhưng thao tác này được trình bày trong RFC822(RFC dùng chuẩn hoámessage) và những thao tác này là duy nhất

IMAP là cơ chế cho phép lấy thông tin về thư điện tử của bạn, hay chính cácthông điệp từ mail server của môi trường cộng tác Giao thức thư điện tử này chophép người dùng kết nối bằng đường điện thoại vào máy chủ Internet từ xa, xem xétphần tiêu đề và người gửi của thư điện tử trước khi tải những thư này về máy chủcủa mình Với IMAP người dùng có thể truy cập các thông điệp như chúng đượclưu trữ cục bộ trong khi thực tế lại là thao tác trên máy chủ cách xa hàng ki lô mét.Với khả năng truy cập từ xa này, IMAP dễ được người dùng cộng tác chấp nhận vì

họ coi trọng khả năng làm việc lưu động

Một kết nối của IMAP4rev1 được thành lập theo một kết nối Client/Server

và sự tương tác trao đổi thông tin hay lấy mail về từ Server của người sử dụngthông qua các lệnh truy suất mà IMAP4rev1 đã định dạng sẵn trong giao thứcIMAP người sử dụng bắt đầu một mã lệnh trong giao thức IMAP theo một quy luật

là : đầu mỗi câu lệnh thêm vào các ký tự tượng trưng (nó tượng trưng cho lý lịch

hay thứ tự của lệnh…) như khi gởi lệnh Login trong giao thức IMAP phải là 0001 Login Tuyen minhtuyen.

Trang 37

- Kết quả trả về : OK - capability completed

BAD - command unknown or arguments invalid

- Đây là lệnh thực hiện trước tiên của bất kỳ một trình mail Client nàomuốn lấy mail từ trình chủ bằng giao thức IMAP, mục đích là kiểm tra version giaothức có đáp ứng được yêu cầu không Version hiện nay đang dùng làIMAP4(IMAP4rev1)

 LOGIN

- Arguments: [user name] [password ]

- Kết quả trả về là: OK - login completed, now in authenticated state

NO - login failure: user name or password rejected BAD - command unknown or arguments invalid

- Lệnh này để xác nhận người sử dụng có hợp pháp không? Nếu thành công thì người dùng sẽ thực hiện các thao tác lệnh tiếp theo

 CHECK

- Arguments: none

- Kết quả trả về: OK - check completed

BAD - command unknown or arguments invalid

- Lệnh này dùng để kiểm tra tại thời điểm này lệnh SELECT đã thực hiệnhay chưa, nếu thực hiện rồi trả về OK

 SELECT

- Arguments: mailbox name (tên hòm thư)

- Kết quả trả về : OK - select completed, now in selected state

NO - select failure, now in authenticated state: no

such mailbox, can't access mailbox

BAD - command unknown or arguments invalid

- Lệnh Select dùng để nhận biết được hòm thư có bao nhiêu thư bao gồmthư mới, thư đọc rồi và thư đã xoá Lệnh này cho phép ta thay đổi thuộc tính củahòm thư cũng như nhưng lá thư mà chúng lưu trữ bởi các lệnh khác trong IMAP

- Trong ví dụ trên chúng ta quan tâm các thông số sau:

 EXISTS : tổng số lá thư mà hòm thư này lưu trữ ví dụ trên là 172 láthư

Trang 38

 RECENT : là số lá thư mới trong thời gian gần đây mà người sử dụng chưa đọc ví dụ trên là 1.

 UNSEEN : là tổng số lá thư củ mà người dùng chỉ nhìn thấy nhưng nộidung chưa xem qua

 UIDVALIDITY : dùng để chỉ định trạng thái của hòm thư đây là một thông số không quan trong.Mổi mail Server sẽ có cách đặc tả thông số này khác nhau tuỳ từng mục đích sử dụng nó của các nhà quản trị mail thông số này liên quan đến lệnh UID

CLOSE

- Arguments: none

- Kết quả trả về : OK - close completed, now in authenticated state

NO - close failure: no mailbox selected

BAD - command unknown or arguments invalid

- Lệnh này dùng để đóng lệnh SELECT lại hay có thể hiểu loại bỏ lệnh này

và không lưu lại các thuộc tính đã thay đổi với hòm thư này

 FETCH

- Arguments: message set message data item names

- Kết quả: OK - fetch completed

NO - fetch error: can't fetch that data

BAD - command unknown or arguments invalid

- Lệnh dùng để hiển thị nội dung của một lá thư Thông số theo sau gồm cóhai thông số: đầu tiên là số thứ tự của lá thư và thông số thư hai là message dataitem names nhưng thông số này phải tuân theo RFC822 được trình bày ở trên

 UID

- Arguments: là các lệnh trong IMAP

- Kết quả trả về: OK - UID command completed

NO - UID command error

BAD - command unknown or arguments invalid

 EXAMINE

- Arguments: mailbox name

- Kết quản trả về:

Trang 39

OK - examine completed, now in selected state

NO - examine failure, now in authenticated state: no such mailbox,can't access mailbox

BAD - command unknown or arguments invalid

- Lệnh này tương tự như lệnh SELECT cùng một kế quả trả về nhưng khidùng lệnh này chúng ta chỉ xem thông tin không thay đổi được trạng thái của hòmthư cũng như các thuộc tính của nó

 CREATE

- Arguments: tên hòm thư cần tạo

- Kết quả trả về:OK - create completed

NO - create failure: can't create mailbox with that name BAD - command unknown or arguments invalid

- Lênh tạo ra một hòm thư mới với tên đã chọn và trả lại là OK nếu quátrình tạo ra hòm thư trên Server không gặp lỗi

 DELETE

- Arguments: tên hòm thư cần xoá

- Kết quả trả về:OK - delete completed

NO - delete failure: can't delete mailbox with that name BAD - command unknown or arguments invalid

- Lệnh xoá hòm thư, nếu xoá thành công thì kết quả nhận được là OK

 RENAME

- Arguments: (tên hòm thư tồn tại) (tên hòm thư mới)

- Kết quả: OK - rename completed

NO - rename failure: can't rename mailbox with that name, can't rename to mailbox with that name

BAD - command unknown or arguments invalid

- Lệnh chuyển đổi tên hòm thư, kết quả là OK nếu thành công

 COPY

- Arguments: tên lá thư đến tên hòm thư

- Kết quả trả về:OK - copy completed

Trang 40

NO - copy error: can't copy those messages or to thatname

BAD - command unknown or arguments invalid

- Đây là lệnh copy một lá thư từ hòm thư này sang hòm thư khác

 SUBSCRIBE

- Arguments: tên hòm thư

- Kết quả trả về: OK - subscribe completed

NO - subscribe failure: can't subscribe to that name

BAD - command unknown or arguments invalid

- Lệnh dùng để thiết lập thuộc tính active của hòm thư,tuy nhiên nó khôngthể thay đổi được đặc tính hòm thư hay nói cách khác nó dùng để kiểm tra xem hòmthư này có tồn tại hay không

 UNSUBSCRIBE

- Arguments: tên hòm thư

- Kết quả trả về:OK - unsubscribe completed

NO - unsubscribe failure: can't unsubscribe that name BAD - command unknown or arguments invalid

- Lệnh này ngược lại với SUBSCRIBE nghĩa là nó loại bỏ thuộc tính activecủa hòm thư

 LIST

- Arguments: tên hay những ký tự đặc trưng

- Kết quả trả về:OK - list completed

NO - list failure: can't list that reference or name

BAD - command unknown or arguments invalid

- Nếu tên hay những ký tự theo sau hợp lệ thì lệnh này trả về tập tên cáchòm thư, thường tên hay ký tự theo sau là “% ,*, “”, /, String*,” Chúng ta tạm hiểu

nó như một lệnh Dir trong MS-DOS

 LUSB

- Arguments: tên hay những ký tự đặc trưng

- Kết quả trả về: OK - list completed

NO - list failure: can't list that reference or name

Ngày đăng: 25/04/2013, 20:36

HÌNH ẢNH LIÊN QUAN

Hình 1: Các nhân tố cơ bản của hệ thống mail - 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
Hình 1 Các nhân tố cơ bản của hệ thống mail (Trang 4)
Hình 2: Cơ chế hoạt động của thư điện tử(E-mail) - 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
Hình 2 Cơ chế hoạt động của thư điện tử(E-mail) (Trang 6)
Hình 3: Mô hình tổng quát sử dụng giao thức SMTP - 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
Hình 3 Mô hình tổng quát sử dụng giao thức SMTP (Trang 11)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w