Chương trình này sẽ nhận thông tin documents tại ô địa chỉ address do người sử dụng yêu cầu thông tin trong ô địa chỉ được gọi là tên miền domain name, rồi sau đó chương trình sẽ tự động
Trang 1LỜI CẢM ƠN
rước hết tôi xin chân thành cảm ơn các thầy cô giáo khoa Công Nghệ Thông Tin của trường Đại học Mở Thành phố Hồ Chí Minh đã trang bị cho tôi những kiến thức cơ bản cần thiết trong những năm học vừa qua để tôi có thể thực hiện tốt cuốn khóa luận này
Em xin chân thành cảm ơn thầy Ninh Xuân Hương đã tận tình giúp đỡ và hướng dẫn em hoàn tất cuốn khóa luận này Ngoài ra tôi cũng xin cảm ơn tất cả bạn bè đã giúp
đỡ tôi trong suốt quá trình thực hiện khóa luận
Mặc dù đã rất cố gắng, nhưng trong khoảng thời gian cho phép cũng như những hạn chế về kiến thức nên cuốn khóa luận này của tôi không thể tránh khỏi những thiếu sót Chính vì vậy, tôi rất mong nhận được sự góp ý của các thầy cô giáo cũng như bạn bè gần xa và những cá nhân hay tổ chức có quan tâm đến lĩnh vực được trình bày trong cuốn khóa luận này
TP Hồ Chí Minh, tháng 2 năm 2009
Trần Phan Phong Phú
T
Trang 2Mục lục
Phần 1: Lời nói đầu 5
Phần 2: Cơ sở lý thuyết 6
Chương 1: Tổng quan về Web và thư điện tử 6
1 Giới thiệu 6
2 Khái niệm về Internet 6
3 Mô hình hoạt động của web 7
3.1 Khái niệm về Website 7
3.2 Tên miền (Domain name) 7
3.3 Nơi lưu trữ WEBSITE (Hosting) 7
3.4 Giao diện WEBSITE 8
3.5 WEBSITE tĩnh và WEBSITE động 8
3.6 Khái niệm thương mại điện tử 8
3.7 Tìm kiếm và Quảng bá WEBSITE trên Internet 8
3.8 Khái niệm về World Wide Web (WWW) 9
4 Tìm hiểu Webmail 9
4.1 Giới thiệu 9
4.2 Ưu điểm Webmail 10
4.3 Khuyết điểm Webmail 11
5 Mô hình client/server 11
5.1 Giới thiệu 11
5.2 Client 13
5.3 Server 13
5.4 Web Server/mail Server và hoạt động của browser WWW 14
6 Dịch vụ thư điện tử 14
6.1 Giới thiệu 14
6.2 Khái niệm 14
6.3 Kiến trúc và dịch vụ 16
7 Phương thức hoạt động 21
7.1 Email đến được hộp thư của người nhận như thế nào? 21
7.2 Email có thể bị giữ chậm hoặc bị mất liên lạc ra sao? 23
8 Cấu trúc một thư điện tử 24
9 Các giao thức gửi nhận mail 25
9.1 SMTP (Simple Mail Transfer Protocol) 25
9.1.1 Giới thiệu chung 25
9.1.2 Mô hình hoạt động phiên giao dịch 25
9.1.3 Thủ tục Mail 27
9.1.4 Thủ tục Forwarding 29
9.1.5 Các thủ tục Mailing và Sending 29
9.2 POP3 (Post Office Protocol) 30
9.2.1 Giới thiệu 30
9.2.2 Mô hình hoạt động phiên giao dịch 30
9.2.3 Trạng thái AUTHORIZATION 31
Trang 39.2.4 Trạng thái TRANSACTION 33
9.2.5 Trạng thái UPDATE 37
9.3 IMAP (Internet Message Access Protocol) 38
9.4 Khái niệm Mailserver 45
Chương 2: Các công nghệ dùng trong ứng dụng 47
1 Giới thiệu java 47
1.1 Sự xuất hiện ngôn ngữ Java 47
1.2 Các tính chất, ưu khuyết điểm của Java 51
1.2.1 Các tính chất cơ bản 51
1.2.2 Ưu điểm của java 52
1.2.3 Nhược điểm của Java 53
2 Các công nghệ sử dụng trong ứng dụng 53
2.1 J2EE 53
2.2 JSP/Servlet 54
2.3 Struts framework 55
2.3.1 Giới thiệu 55
2.3.2 Các thành phần cơ bản của Struts 56
2.3.3 Tiến trình thực hiện 56
2.4 Ajax 56
2.4.1 So sánh với các ứng dụng web truyền thống 57
2.4.2 Các trình duyệt hổ trợ Ajax 58
2.5 Javascript 59
2.6 HTML 59
2.7 Hibernate 60
2.8 Webserver Tomcat 61
2.9 Mô hình MVC 61
2.10 Hệ quản trị cơ sở dữ liệu MySQL 62
2.10.1 Giới thiệu 62
2.10.2 Tại sao lại sử dụng MySQL? 62
2.10.3 Một số đặc điểm của MySQL 62
2.11 Công cụ phát triển Java 63
Phần 3: Xây dựng hệ thống Webmail 65
Chương 1: Phân tích thiết kế hệ thống Mail 65
1 Khảo sát 65
2 Yêu cầu bài toán 65
3 Chức năng xử lý 65
4 Phân tích thiết kế 66
4.1 Phân tích user case 66
4.1.1 Sơ đồ user case 66
4.1.2 Chi tiết user case 67
4.2 Thiết kế cơ sở dữ liệu 71
4.3 Sơ đồ quan hệ các bảng 72
4.4 Thiết kế website 72
4.4.1 Sơ đồ website 72
Trang 44.4.2 Một số layout chính 73
5 Sơ đồ kiến trúc hệ thống webmail 75
5.1 Kiến trúc chung 75
5.2 Kiến trúc Struts 75
5.3 Kiến trúc Hibernate 76
5.4 Kiến trúc mail folder 76
Chương 2: Cài đặt và triển khai ứng dụng 77
1 Cài đặt Java 77
2 Cài đặt MySQL Server 5.0.27 77
3 Cấu hình Mailserver 77
4 Cấu hình Webserver 77
5 Triển khai ứng dụng 78
Chương 3: Kết luận 79
1 Kết quả đạt được 79
2 Hạn chế của chương trình 79
3 Hướng phát triển chương trình 79
Trang 5Phần 1: Lời nói đầu
gày nay với sự phát triển mạnh mẽ của tin học và công nghệ Internet, hầu như mọi người đều thấy rõ lợi ích mà các dịch vụ do mạng Internet mang lại
Dịch vụ thư điện tử gọi tắt là Email là một trong nhưng dịch vụ được sử dụng nhiều nhất trên Internet hiện nay Dịch vụ này cho phép các cá nhân hay tổ chức trao đổi thư với nhau thông qua mạng Internet Nhiều người sử dụng Internet chỉ để dùng dịch vụ này Hầu như mọi trao đổi thông tin liên lạc trong doanh nghiệp đều sử dụng Email
Thông thường, khi sử dụng dịch vụ thư tín điện tử, người sử dụng thường ít khi quan tâm xem hệ thống bên trong đã thực hiện như thế nào Vì vậy, họ ( người sử dụng) mới chỉ thấy được một nửa của ứng dụng dịch vụ Email và phần ứng dụng đó được gọi là Mail Client, hay là sử dụng dịch vụ thư tín máy trạm
Do xu hướng toàn cầu hóa nên việc dùng phần mềm không bản quyền càng ngày càng hạn chế ở nước ta Do đó việc dùng phần mềm mã nguồn mở ngày càng phổ biến
Từ những nhu cầu trên tôi quyết định chọn đề tài “Xây dựng webmail cient bằng công nghệ java” nhằm cũng cố lại những kiến thức đã học và tìm hiểu thêm nhiều công nghệ mới
N
Trang 6"WEBSITE" Chúng ta sẽ có WEBSITE cửa hàng, WEBSITE siêu thị, WEBSITE thư
viện, WEBSITE nhà máy, WEBSITE cá nhân,
Khi so sánh internet với mội trường kinh doanh truyền thống, chúng ta có thể tự đặt câu hỏi, thế trên internet có những khái niệm như vị trí tốt xấu không, có nhà trung tâm, nhà ngoại ô không Có! và đó là điều đáng để suy nghĩ, không nhanh chân chúng ta
sẽ không còn chỗ, hoặc là phải mua lại với giá rất đắt Đó là gì vậy? Chính là địa chỉ của WEBSITE Ví dụ như www.dtcvn.net hay www.admin.com.vn Tên của WEBSITE không được trùng nhau, trong khi đó tên viết tắt của các công ty thì trùng nhau quá nhiều,
và ai cũng muốn tạo cho mình một địa chỉ thật dễ nhớ Kết quả là người chậm chân mất quyền ưu tiên, không mua được địa chỉ đó Một địa chỉ dễ nhớ giữ vai trò rất quan trọng trong việc giới thiệu một WEBSITE Địa chỉ nhớ thông thường phải ngắn gọn hoặc có ý nghĩa Nếu doanh nghiệp đã có thương hiệu khá nổi tiếng thì nên dùng ngay thương hiệu của mình
2 Khái niệm về Internet
Internet là một hệ thống thông tin toàn cầu có thể được truy nhập công cộng gồm các mạng máy tính được liên kết với nhau Hệ thống này truyền thông tin theo kiểu nối chuyển gói dữ liệu (packet switching) dựa trên một giao thức liên mạng đã được chuẩn hóa (giao thức IP) Hệ thống này bao gồm hàng ngàn mạng máy tính nhỏ hơn của các doanh nghiệp, của các viện nghiên cứu và các trường đại học, của người dùng cá nhân, và các chính phủ trên toàn cầu Khi phát triển World Wide Web, Tim Berners-Lee xài bộ NeXTcube tại CERN và làm nó thành máy chủ Web đầu tiên Tiền thân của mạng Internet ngày nay là mạng ARPANET Cơ quan quản lý dự án nghiên cứu phát triển ARPA thuộc bộ quốc phòng Mỹ liên kết 4 địa điểm đầu tiên vào tháng 7 năm 1969 bao gồm: Viện nghiên cứu Stanford, Đại học California, Los Angeles, Đại học Utah và Đại
học California, Santa Barbara Đó chính là mạng liên khu vực (Wide Area Network -
WAN) đầu tiên được xây dựng
Thuật ngữ "Internet" xuất hiện lần đầu vào khoảng năm 1974 Lúc đó mạng vẫn được gọi là ARPANET Năm 1983, giao thức TCP/IP chính thức được coi như một chuẩn đối với ngành quân sự Mỹ và tất cả các máy tính nối với ARPANET phải sử dụng chuẩn mới này Năm 1984, ARPANET được chia ra thành hai phần: phần thứ nhất vẫn được gọi
là ARPANET, dành cho việc nghiên cứu và phát triển; phần thứ hai được gọi là MILNET,
là mạng dùng cho các mục đích quân sự Giao thức TCP/IP ngày càng thể hiện rõ các điểm mạnh của nó, quan trọng nhất là khả năng liên kết các mạng khác với nhau một cách
dễ dàng Chính điều này cùng với các chính sách mở cửa đã cho phép các mạng dùng cho nghiên cứu và thương mại kết nối được với ARPANET, thúc đẩy việc tạo ra một siêu
Trang 7mạng (SuperNetwork) Năm 1980, ARPANET được đánh giá là mạng trụ cột của Internet
Mốc lịch sử quan trọng của Internet được xác lập vào giữa thập niên 1980 khi tổ chức khoa học quốc gia Mỹ NSF thành lập mạng liên kết các trung tâm máy tính lớn với nhau gọi là NSFNET Nhiều doanh nghiệp đã chuyển từ ARPANET sang NSFNET và do
đó sau gần 20 năm hoạt động, ARPANET không còn hiệu quả đã ngừng hoạt động vào khoảng năm 1990 Sự hình thành mạng xương sống của NSFNET và những mạng vùng khác đã tạo ra một môi trường thuận lợi cho sự phát triển của Internet Tới năm 1995, NSFNET thu lại thành một mạng nghiên cứu còn Internet thì vẫn tiếp tục phát triển Với khả năng kết nối mở như vậy, Internet đã trở thành một mạng lớn nhất trên thế giới, mạng của các mạng, xuất hiện trong mọi lĩnh vực thương mại, chính trị, quân sự, nghiên cứu, giáo dục, văn hoá, xã hội Cũng từ đó, các dịch vụ trên Internet không ngừng phát triển tạo ra cho nhân loại một thời kỳ mới: kỷ nguyên thương mại điện tử trên Internet
3 Mô hình hoạt động của web
3.1 Khái niệm về Website
Những khái niệm như cửa hàng, siêu thị, thư viện, nhà máy, đã quá quen thuộc
với chúng ta Nhưng đó chỉ là thế giới vật chất, còn trong thế giới của thông tin với hệ thống giao thông mạng Internet, những khái niệm đó được tổng hợp chung vào trong từ
"WEBSITE" Chúng ta sẽ có WEBSITE cửa hàng, WEBSITE siêu thị, WEBSITE thư viện, WEBSITE nhà máy, WEBSITE
cá nhân,
3.2 Tên miền (Domain name)
Khi so sánh internet với mội trường kinh doanh truyền thống, chúng ta có thể tự đặt câu hỏi, thế trên internet có những khái niệm như vị trí tốt xấu không, có nhà trung tâm, nhà ngoại ô không Có! và đó là điều đáng để suy nghĩ, không nhanh chân chúng ta sẽ không còn chỗ, hoặc là phải mua lại với giá rất đắt Đó là gì vậy? Chính là địa chỉ của WEBSITE Ví dụ như www.dtcvn.net hay www.admin.com.vn Tên của WEBSITE không được trùng nhau, trong khi đó tên viết tắt của các công ty thì trùng nhau quá nhiều,
và ai cũng muốn tạo cho mình một địa chỉ thật dễ nhớ Kết quả là người chậm chân mất quyền ưu tiên, không mua được địa chỉ đó
Một địa chỉ dễ nhớ giữ vai trò rất quan trọng trong việc giới thiệu một WEBSITE Địa chỉ nhớ thông thường phải ngắn gọn hoặc có ý nghĩa Nếu doanh nghiệp đã có thương hiệu khá nổi tiếng thì nên dùng ngay thương hiệu của mình
3.3 Nơi lưu trữ WEBSITE (Hosting)
Công trình thiết kế web đã hoàn tất, bạn cần đưa nó lên mạng,
bạn cần một nơi để cất giữ thông tin của WEBSITE để khi người
xem gõ đúng địa chỉ WEBSITE lập tức trang web của bạn được
tìm thấy thì được gọi là Hosting Chúng tôi ví von nơi lưu trữ
WEBSITE trên internet (Host) là nhà, còn địa chỉ WEBSITE
(domain name) chính là địa chỉ nhà Hai khái niệmHai khái niệm
Trang 8này luôn đi đôi với nhau thì người ta mới tìm thấy nội dung WEBSITE của bạn trên internet, ví như có nhà mà không có địa chỉ thì cũng không ai tìm được, có địa chỉ mà không có nhà thì không biết tìm ai
3.4 Giao diện WEBSITE
Chính là cái mà chúng ta thấy nó ở trên trang web, là khung được trang trí cho trang web Được thiết kế bởi những designer với các khung, bảng, mầu và chữ, Các giao diện website thường có kích thước bề ngang chuẩn là 800 pixel hoặc 1024 pixel, nhưng cũng
có một số website không theo chuẩn này mà thiết kế tự động giãn theo kích thước màn hình Để có 1 giao diện website đẹp, cần rất nhiều yếu tố cấu thành, trong đó ý tưởng của người chủ website là quan trọng nhất
3.6 Khái niệm thương mại điện tử
Nếu một trong những công đoạn của giao dịch thương mại như tìm kiếm đối tác, thỏa thuận hợp đồng, trao đổi hàng hóa và dịch vụ, thanh toán, được thực hiện bằng công cụ điện tử thì giao dịch thương mại đó có thể được coi là thương mại điện tử Bạn gửi fax cho các khách hàng tiềm năng để chào hàng, bạn thỏa thuận chi tiết hợp đồng qua hệ thống ngân hàng, tất cả những việc đó đều thuộc phạm trù của thương mại điện tử với ý nghĩa tổng quát của nó
Chỉ sau internet ra đời và được phổ biến rộng rãi thì thương mại điện tử mới thực sự
có bước nhảy vọt Khái niệm thương mại điện tử hiện nay hàm ý thương mại internet nhiều hơn Theo thống kê của IDC và OECD, với internet, thương mại điện tử đã đạt mức tăng trưởng từ 50 tỷ USD vào năm 1998, lên đến 111 tỷ năm 1999 và dự tính sẽ đạt mức
1000 tỷ USD vào những năm 2003-2005 Qua hệ thống internet với hàng trăm triệu máy tính trên khắp các châu lục, các doanh nhân ngày nay đã thật sự có một công cụ đặc biệt hữu hiệu để giao dịch
3.7 Tìm kiếm và Quảng bá WEBSITE trên Internet
Ngày nay, chúng ta có thể tìm đối tác một cách dễ dàng hơn thông qua các công cụ
tìm kiếm trên internet, đặc biệt là đối tác tại các nước phát triển, nơi
có tỷ lệ phổ cập internet rất cao Bạn chỉ cần vào một trong những công cụ tìm kiếm như www.google.com hoặc www.yahoo.com, gõ vào từ khóa liên quan đến vấn đề cần tìm, chỉ vài giây sau bạn đã có một danh sách dài ngoằng Sau vài giờ phân loại, sàng lọc thông tin, bạn đã có thể có trong tay một danh sách các đối tác tiềm năng So với cách làm truyền thống qua danh bạ điện thoại, catalog thì việc tìm kiếm trên internet nhanh chóng và hiệu quả hơn nhiều
Trang 93.8 Khái niệm về World Wide Web (WWW)
World Wide Web, gọi tắt là Web hoặc WWW, mạng lưới toàn cầu là một không gian thông tin toàn cầu mà mọi người có thể truy nhập (đọc và viết) qua các máy tính nối với mạng Internet Thuật ngữ này thường được hiểu nhầm là từ đồng nghĩa với chính thuật ngữ Internet Nhưng Web thực ra chỉ là một trong các dịch vụ chạy trên Internet, chẳng
hạn như dịch vụ thư điện tử Web được phát minh và đưa vào sử dụng vào khoảng năm 1990, 1991 bởi viện sĩ Viện Hàn lâm Anh Tim Berners-Lee và Robert Cailliau (Bỉ) tại CERN, Geneva, Switzerland
Các tài liệu trên World Wide Web được lưu trữ trong một hệ thống siêu văn bản (hypertext), đặt tại các máy tính trong mạng Internet Người dùng phải sử dụng một chương trình được gọi là trình duyệt web (web browser) để xem siêu văn bản Chương trình này sẽ nhận thông tin (documents) tại ô địa chỉ (address) do người sử dụng yêu cầu (thông tin trong ô địa chỉ được gọi là tên miền (domain name)), rồi sau đó chương trình sẽ tự động gửi thông tin đến máy chủ (web server) và hiển thị trên màn hình máy tính của người xem Người dùng có thể theo các liên kết siêu văn bản (hyperlink) trên mỗi trang web để nối với các tài liệu khác hoặc gửi thông tin phản hồi theo máy chủ trong một quá trình tương tác Hoạt động truy tìm theo các siêu liên kết thường được gọi là duyệt Web.Quá trình này cho phép người dùng có thể lướt các trang web để lấy thông tin Tuy nhiên độ chính xác
và chứng thực của thông tin không được đảm bảo
3.9 URL
URL (Uniform Resource Locator) dùng để chỉ tài nguyên trên Internet Sức mạnh của web là khả năng tạo ra những liên kết siêu văn bản đến các thông tin liên quan Những thông tin này có thì là những trang web khác, những hình ảnh, âm thanh Những liên kết này thường được biểu diễn bầng những chữ màu xanh có gạch dưới được gọi là anchor.Các URL có thể được truy xuất thông qua một trình duyệt (Browser) như IE hay Netscape
Trong đó: http: là giao thức
index.html là tên đường dẫn trên máy chứa tài nguyên
Nhờ địa chỉ url mà ta có thể từ bất kỳ một máy nào trong mạng Internet truy nhập tới các trang web ở các website khác nhau
4 Tìm hiểu Webmail
4.1 Giới thiệu
Thuật ngữ Email trên nền web và Webmail ám chỉ việc hiện thực một chương trình xem e-mail dưới dạng một ứng dụng web cho phép người dùng truy cập e-mail của họ thông qua một trình duyệt web, thay vì sử dụng chương trình xem email nên nền máy tính
để bàn như Microsoft Outlook, Mozilla Thunderbird hay Eudora (Cần chú ý thuật ngữ
"Web" là nói gọn của thuật ngữ "World Wide Web" (mạng toàn cầu), và đôi khi có thể viết ở dạng chữ thường.) Một webmail khách thường được cung cấp bởi dịch vụ email,
Trang 10cho phép khách hàng của nó truy cập thư được lưu trữ trên máy chủ của dịch vụ, nhưng
cũng có những ngoại lệ
Từ Webmail còn được dùng chung với các danh từ khác như dịch vụ webmail hay nhà cung cấp webmail để chỉ đến một dịch vụ email được cung cấp thông qua một website (khác với dịch vụ email, thường phải gắn liền với việc kết nối internet) Mặc dù không nhất thiết phải sử dụng một chương trình webmail, việc sử dụng một chương trình webmail thường là phần quan trọng khi đưa ra dịch vụ webmail, đôi khi như là cách duy nhất để người dùng có thể tiếp cận email của họ, và đôi khi những phương pháp khác cũng được thêm vào như giao thức POP3 hoặc IMAP4 và chuyển tiếp email Dịch vụ Webmail đầu tiên là Hotmail Những nhà cung cấp Webmail phổ biến nhất hiện nay là Yahoo! Mail, Windows Live Hotmail and Gmail.[1] Những nhà cung cấp Webmail khác bao gồm Inbox.com, AIM Mail, Mail.com, Fastmail.FM, Lycos Mail, BlueTie, Everyone.net, and LuxSci Người dùng cũng có thể chạy một phần mềm Webmail trên máy chủ Web của chính mình Những phần mềm Webmail thương mại bao gồm Outlook Web Access (OWA), Laszlo Mail, Atmail and SmarterMail Phần mềm Webmail mã nguồn mở bao gồm Horde IMP, OpenWebmail (dựa trên NeoMail), RoundCube, Zimbra,
và SquirrelMail Nhiều trường Đại học và phổ thông sử dụng những phần mềm đó để giúp sinh viên và giảng viên của trường có thể xem email qua trang Web Nhiều nhà cung cấp dịch vụ Internet cũng đưa ra Webmail cho khách hàng của mình Có một vài ứng dụng quản lý webmail, mà bạn có thể dùng nó để kiểm tra tất cả những email từ bất kỳ nhà cung cấp nào Mail2Web.com và Email4Web.com là những ứng dụng phổ biến
Phần lớn các dịch vụ Webmail có các tính năng sau:
• Thư mục
• Bộ lọc email (thư đến sẽ được sắp xếp vào thư mục thích hợp)
• Thư mục thùng rác
• Sổ địa chỉ
Một vài dịch vụ Webmail đưa thêm những tính năng khác cho chương trình webmail:
• Từ điển khi soạn thư
• Kiểm tra chính tả
• Nhiều định danh người gửi
• Khả năng tìm kiếm thư
• Đăng nhập an toàn
Những tính năng không phải webmail:
• Truy cập email thông qua những giao thức khác như POP3 hay IMAP4
• Chuyển tiếp email
• Tích hợp tài khoản email (lấy email từ các tài khoản khác)
• Phát hiện E-mail spam
• Kiểm tra virus trong thư đính kèm
• Hỗ trợ Unicode (UTF-8)
4.2 Ưu điểm Webmail
• E-mail được lưu trữ từ máy chủ ở xa, có nghĩa là nó có thể được truy cập từ bất
cứ nơi nào có kết nối Internet và một trình duyệt Web
Trang 11• Phần lớn những nhà cung cấp Webmail là dịch vụ miễn phí
• Bảo trì tập trung email của khách hàng; sao lưu, nâng cấp và sửa lỗi bảo mật được thực hiện bởi người quản trị Không cần phải cài đặt, nâng cấp hoặc hoặc
vá những chương trình e-mail tại mỗi máy
• Một vài nhà cung cấp Webmail đưa ra những địa chỉ e-mail vô dụng (spam), ví
dụ như Sneakemail, TrashMail và Mailinator Cũng có những nhà cung cấp webmail an toàn như Hushmail không lưu trữ bất cứ thông tin cá nhân nào và luôn cố gắng gửi tất cả những email với giải thuật mã hóa PGP
• Một vài ứng dụng webmail như Fastmail.FM đưa ra những tính năng không bao giờ có ở những chương trình email trên nền máy để bàn
4.3 Khuyết điểm Webmail
• Người dùng phải luôn online để đọc và viết nhiều e-mail Họ không thể dễ dàng sửa chữa thư khi họ đang làm việc offline (trừ khi phải chép và dán nội dung thư)
• Những dịch vụ Webmail thương mại thường cung cấp không gian lưu trữ e-mail giới hạn và hoặc là hiện quảng cáo khi sử dụng hoặc gắn quảng cáo email được gửi Không giống như phần mềm ở máy, người dùng không mặc định được giữ các tin nhắn vào máy tính của mình, mặc dù họ cũng có quyền lựa chọn để tải
về và lưu trữ những email quan trọng vào máy tính, có thể làm bằng tay hoặc bằng phần mềm pop-mail
• Phần lớn e-mail là những thông điệp ngắn, ở dạng thuần ký tự, nhỏ hơn 2 kB, nhưng khi sử dụng Webmail, e-mail gốc được lồng vào những mã HTML của Web site nên có thể lên đến 40 kB hoặc hơn nữa Điều này có thể làm chậm đáng kể tốc độ sử dụng, đặc biệt là với đường truyền chậm
• Những tài khoản Webmail thường là mục tiêu của spam
• Những tài khoản Webmail bị cho là không an toàn
• Những tài khoản Webmail miễn phí thường không dùng được cho những người dùng khiếm thị, do sử dụng giao diện trực quan
• Webmail thường bị giới hạn về tốc độ và tính năng so với những chương trình xem email khác, một phần do sự hạn chế của HTML (trang web) Ví dụ như, khi những thư được đánh dấu xóa trong chỉ mục, những thẻ này thường mất đi khi
có người đọc thư Điều đó có nghĩa là bạn không thể đọc thư mà bạn cho là có thể phải xóa (để kiểm tra lại có nên xóa hay không) nếu bạn không xóa thẻ đã đánh dấu đi hoặc phải đánh dấu lại Do đó sẽ càng bất tiện hơn khi muốn xóa nhiều thư một lúc
5 Mô hình client/server
5.1 Giới thiệu
Thuật ngữ server được dùng cho những chương trình thi hành như một dịch vụ trên toàn mạng Các chương trình server này chấp nhận tất cả các yêu cầu hợp lệ đến từ mọi nơi trên mạng, sau đó nó thi hành dịch vụ và trả kết quả về máy yêu cầu Một chương trình được coi là client khi nó gửi các yêu cầu tới máy có chương trình server và chờ đợi câu trả lời từ server Chương trình server và client nói chuyện với nhau bằng các thông
Trang 12điệp (messages) thông qua một cổng truyền thông liên tác IPC (Interprocess Communication) Để một chương trình server và một chương trình client có thể giao tiếp được với nhau thì giữa chúng phải có một chuẩn để nói chuyện, chuẩn này được gọi là giao thức Nếu một chương trình client nào đó muốn yêu cầu lấy thông tin từ server thì nó phải tuân theo giao thức mà server đó đưa ra Bản thân chúng ta khi cần xây dựng một mô hình client/server cụ thể thì ta cũng có thể tự tạo ra một giao thức riêng nhưng thường chúng ta chỉ làm được điều này ở tầng ứng dụng của mạng Với sự phát triển mạng như hiện này thì có rất nhiều giao thức chuẩn trên mạng ra đời nhằm đáp ứng nhu cầu phát triển này Các giao thức chuẩn (ở tầng mạng và vận chuyển) được sử dụng rộng rãi nhất hiện nay như: giao thức TCP/IP, giao thức SNA của IBM, OSI, ISDN, X.25 hoặc giao thức LAN-to-LAN NetBIOS Một máy tính chứa chương trình server được coi là một máy chủ hay máy phục vụ (server) và máy chứa chương trình client được coi là máy tớ (client) Mô hình mạng trên đó có các máy chủ và máy tớ giao tiếp với nhau theo 1 hoặc nhiều dịch vụ được gọi là mô hình client/server Thực tế thì mô hình client/server là sự
mở rộng tự nhiên và tiện lợi cho việc truyền thông liên tiến trình trên các máy tính cá nhân Mô hình này cho phép xây dựng các chương trình client/server một cách dễ dàng và
sử dụng chúng để liên tác với nhau để đạt hiệu quả hơn
Mô hình client/server như sau: Client/Server là mô hình tổng quát nhất, trên thực tế thì một server có thể được nối tới nhiều server khác nhằm làm việc hiệu quả và nhanh hơn Khi nhận được 1 yêu cầu từ client, server này có thể gửi tiếp yêu cầu vừa nhận được cho server khác ví dụ như database server vì bản thân nó không thể xử lý yêu cầu này được Máy server có thể thi hành các nhiệm vụ đơn giản hoặc phức tạp Ví dụ như một máy chủ trả lời thời gian hiện tại trong ngày, khi một máy client yêu cầu lấy thông tin về thời gian nó sẽ phải gửi một yêu cầu theo một tiêu chuẩn do server định ra, nếu yêu cầu được chấp nhận thì máy server sẽ trả về thông tin mà client yêu cầu Có rất nhiều các dịch
vụ server trên mạng nhưng nó đều hoạt động theo nguyên lý là nhận các yêu cầu từ client sau đó xử lý và trả kết quả cho client yêu cầu Thông thường chương trình server và client được thi hành trên hai máy khác nhau Cho dù lúc nào server cũng ở trạng thái sẵn sàng chờ nhận yêu cầu từ client nhưng trên thực tế một tiến trình liên tác qua lại (interaction) giữa client và server lại bắt đầu ở phía client, khi mà client gửi tín hiệu yêu cầu tới server Các chương trình server thường đều thi hành ở mức ứng dụng (tầng ứng dụng của mạng)
Sự thuận lợi của phương pháp này là nó có thể làm việc trên bất cứ một mạng máy tính nào có hỗ trợ giao thức truyền thông chuẩn cụ thể ở đây là giao thức TCP/IP Với các giao thức chuẩn này cũng giúp cho các nhà sản xuất có thể tích hợp nhiều sản phẩm khác nhau của họ lên mạng mà không gặp phải khó khăn gì Với các chuẩn này thì các chương trình server cho một dịch vụ nào đấy có thể thi hành trên một hệ thống chia sẻ thời gian (timesharing system) với nhiều chương trình và dịch vụ khác hoặc nó có thể chạy trên chính một máy tính các nhân bình thường Có thể có nhiều chương server cùng làm một dịch vụ, chúng có thể nằm trên nhiều máy tính hoặc một máy tính Với mô hình trên chúng ta nhận thấy rằng mô hình client/server chỉ mang đặc điểm của phần mềm không liên quan gì đến phần cứng mặc dù trên thực tế yêu cầu cho một máy server là cao hơn nhiều so với máy client Lý do là bởi vì máy server phải quản lý rất nhiều các yêu cầu từ các clients khác nhau trên mạng Ưu và nhược điểm chính Có thể nói rằng với mô hình client/server thì mọi thứ dường như đều nằm trên bàn của người sử dụng, nó có thể truy
Trang 13cập dữ liệu từ xa (bao gồm các công việc như gửi và nhận file, tìm kiếm thông tin, ) với nhiều dịch vụ đa dạng mà mô hình cũ không thể làm được Mô hình client/server cung cấp một nền tảng lý tưởng cho phép tích hợp các kỹ thuật hiện đại như mô hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý (GIS) Một trong những vấn đề nảy sinh trong mô hình này đó là tính an toàn và bảo mật thông tin trên mạng Do phải trao đổi dữ liệu giữa 2 máy ở 2 khu vực khác nhau cho nên dễ dàng xảy ra hiện tượng thông
tin truyền trên mạng bị lộ
5.2 Client
Trong mô hình client/server, người ta còn định nghĩa cụ thể cho một máy client là một máy trạm mà chỉ được sử dụng bởi 1 người dùng với để muốn thể hiện tính độc lập cho nó Máy client có thể sử dụng các hệ điều hành bình thường như Win9x, DOS, OS/2 Bản thân mỗi một client cũng đã được tích hợp nhiều chức năng trên hệ điều hành
mà nó chạy, nhưng khi được nối vào một mạng LAN, WAN theo mô hình client/server thì
nó còn có thể sử dụng thêm các chức năng do hệ điều hành mạng (NOS) cung cấp với nhiều dịch vụ khác nhau (cụ thể là các dịch vụ do các server trên mạng này cung cấp), ví
dụ như nó có thể yêu cầu lấy dữ liệu từ một server hay gửi dữ liệu lên server đó Thực tế trong các ứng dụng của mô hình client/server, các chức năng hoạt động chính là sự kết hợp giữa client và server với sự chia sẻ tài nguyên, dữ liệu trên cả 2 máy Vai trò của client Trong mô hình client/server, client được coi như là người sử dụng các dịch vụ trên mạng do một hoặc nhiều máy chủ cung cấp và server được coi như là người cung cấp dịch
vụ để trả lời các yêu cầu của các clients Điều quan trọng là phải hiểu được vai trò hoạt động của nó trong một mô hình cụ thể, một máy client trong mô hình này lại có thể là server trong một mô hình khác Ví dụ cụ thể như một máy trạm làm việc như một client bình thường trong mạng LAN nhưng đồng thời nó có thể đóng vai trò như một máy in chủ (printer server) cung cấp dịch vụ in ấn từ xa cho nhiều người khác (clients) sử dụng Client được hiểu như là bề nổi của các dịch vụ trên mạng, nếu có thông tin vào hoặc ra thì
chúng sẽ được hiển thị trên máy client
5.3 Server
Server còn được định nghĩa như là một máy tính nhiều người sử dụng (multiuser computer) Vì một server phải quản lý nhiều yêu cầu từ các client trên mạng cho nên nó hoạt động sẽ tốt hơn nếu hệ điều hành của nó là đa nhiệm với các tính năng hoạt động độc lập song song với nhau như hệ điều hành UNIX, WINDOWS Server cung cấp và điều khiển các tiến trình truy cập vào tài nguyên của hệ thống Các ứng dụng chạy trên server phải được tách rời nhau để một lỗi của ứng dụng này không làm hỏng ứng dụng khác Tính đa nhiệm đảm bảo một tiến trình không sử dụng toàn bộ tài nguyên hệ thống Vai trò của server Như chúng ta đã bàn ở trên, server như là một nhà cung cấp dịch vụ cho các clients yêu cầu tới khi cần, các dịch vụ như cơ sở dữ liệu, in ấn, truyền file, hệ thống Các ứng dụng server cung cấp các dịch vụ mang tính chức năng để hỗ trợ cho các hoạt động trên các máy clients có hiệu quả hơn Sự hỗ trợ của các dịch vụ này có thể là toàn bộ hoặc chỉ một phần thông qua IPC Để đảm bảo tính an toàn trên mạng cho nên server này còn có vai trò như là một nhà quản lý toàn bộ quyền truy cập dữ liệu của các máy clients,
Trang 14nói cách khác đó là vai trò quản trị mạng Có rất nhiều cách thức hiện nay nhằm quản trị
có hiệu quả, một trong những cách đang được sử dụng đó là dùng tên Login và mật khẩu
5.4 Web Server/mail Server và hoạt động của browser WWW
Hoạt động truy xuất WWW giữa máy khách và web server theo cơ chế sau: Server ứng dụng cung cấp dữ liệu mà người sử dụng cần đến hoặc trao đổi Chỉ những người sử dụng đã đăng ký account mới được cấp web site chứa dữ liệu riêng của mình trên server này, mọi người sử dụng đều có thể truy xuất các URL được phép dùng chung trong server này
Trước tiên trình duyệt thực hiện kết nối để nhận được program/server Browser dùng địa chỉ miền tên như số điện thoại hay địa chỉ để đạt tới server
Sau đó browser sẽ gửi request header sau tới miền xác định:
• Một request header xác định file hay dịch vụ đang được request
• Các fields request header, xác định browser
• Thông tin đặc biệt thêm vào request
• Bất kỳ dữ liệu nào đi cùng với request
Tất cả những thông tin đó được gọi là request header HTTP Chúng xác định đối với server thông tin căn bản mà client đang request và loại đáp ứng có thể được client chấp nhận Scrver cũng lấy tất cả các header do client gửi tới thông qua biến môi trường (environments variables) để chương trình server xử lý Server đáp ứng với response header Header đáp ứng đầu tiên là dòng trạng thái cho client biết kết quả của việc tìm kiếm request url Nếu trạng thái là thành công (Success) thì nội dung của request url được gửi trả lại client/browser và hiển thị trên màn hình máy tính của client
6 Dịch vụ thư điện tử
6.1 Giới thiệu
Bạn phụ thuộc vào email và không thể làm việc mà không có nó Tuy nhiên hầu như đa số người dùng (trừ các chuyên gia CNTT) vẫn cảm nhận về email như một điều gì khó hiểu và đôi khi có phần kỳ diệu Bạn chỉ cần viết một thông điệp trên máy tính, kích Send và sau đó ít phút, nó xuất hiện trong hộp thư của người nhận bất kể họ ở đâu Thật tuyệt!
Email có vẻ như vô hình Bề ngoài bạn không thể biết được rằng sự phân phối email quả thực là một hệ thống phức tạp với rất nhiều thao tác cần phải thực hiện Đó thưc sự là một câu chuyện thú vị? Tuy nhiên nếu bạn phải đứng ra chịu trách nhiệm về vấn đề phân phối email hoặc quản lý công việc nặng nhọc như các quản trị viên email thì bạn cần phải biết được những vấn đề tối thiểu về công nghệ này
6.2 Khái niệm
Thư điện tử, hay email (từ chữ electronic mail), đôi khi được dịch không chính xác là
Trang 15Email là một phương tiện 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ông thườ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ùng lúc
Ngày nay, 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 email dạng sống động tương thích với kiểu tệp HTML
Đặc điểm của thư điện tử khi so sánh với bưu chính thông 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 Đối với các dịch vụ thư điện tử mới thì dung lượng có thể lên đến hàng Gbyte như dịch vụ của Gmail chẳng hạn, hay nhiều hơn Số thư có thể dự trữ trong dung lượng này tương đương với vài bộ tự điển bách khoa
• Các trường hợp thư phá hoại trên hệ thống bưu điện (như là thư có bột antrax, thư bom, ) rất hiếm có nhưng có thể gây thương vong Ngược lại, hệ thống thư điện tử, không thể gây thương tích mà thường rất phải đương đầu với nhiều vấn nạn như virus máy tính, các thư nhũng lạm (spam mail), các thư quảng cáo (advertisement mail) và các thư khiêu dụ tình dục (pornography mail), đặc biệt
là cho trẻ em, thì lại rất nhiều Đối với các loại thư độc hại (malicious mail) này người dùng cần phải cài đặt thêm các tiện ích hay chức năng lọc (sẵn có trong phần mềm hay phải mua thêm) để giảm trừ Tuy nhiên, một điều chắc chắn là không có công cụ phần mềm nào là tuyệt hảo
• Các dạng chuyển tiếp (chain mail) trong đó người nhận lại chuyển đi nội dung
lá thư cho một hay nghiều người khác thường cũng phổ biến trong cả hai hệ thống bưu chính và thư điện tử Khả năng ảnh hưởng về thông tin của hai loại này là tương đương mặc dù thư điện tử chuyển tiếp có nhiều xác suất gây nhiễm virus máy tính
• Hộp thư là nơi cất giữ các thư từ với địa chỉ hẳn hoi 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
Trang 16email 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 với địa chỉ email khác Như vậy có thể hoàn toàn không nhầm lẫn khi dùng danh từ hộp thư điện tử hay hòm thư điện tử (email account) để chỉ một phần mềm email đã được đăng kí dùng để nhận và gửi email cho một cá nhân
6.3 Kiến trúc và dịch vụ
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:
1 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)
2 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ư 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
3 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ấn đã gửi đến đích chưa? hoặc việc gửi đã bị huỷ bỏ? hoặc thư đã bị lạc?
4 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ột trình hiển thị đặc biệt để hỗ trợ, ví dụ như, nếu thông điệp có dạng một tệp PostScript hay tiếng nói được số hóa kèm theo trong thông điệp gửi đến
5 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ó đi trướ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úng bằng những phương pháp khác nhau khi được yêu cầu của người sử dụng
Trang 17Thê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ấp nhiều đặc tính nâng cao khác nhau Một số đặc tính tiêu biểu như, khi người ta muố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 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à hủy bỏ các hộp thư, kiểm tra các nội dung hộp thư, chèn và xóa các thông điệp khỏi hộp thư, v v
Những người giám đốc công ty thường cần gửi một thông điệp đến mỗi người trong số những người cấp dưới, những khách hàng, hay đến các nhà cung cấp Thì điều này đưa ra một ý tưởng về danh sách thư (mailing list), nó là một danh sách các địa chỉ thư điện tử Khi một thông điệp được gửi đến mailing list, các bản sao giống hệt được phát đến mọi người có địa chỉ trên danh sách
Một ý tưởng quan trọng khác là thư điện tử được đăng ký, để cho phép người gửi (sender or originator) biết thư của họ đã đến Việc thông báo tự động của các thư không được phát đi một cách luân phiên để người ta có thể biết Trong bất kỳ trường hợp nào, người gửi nên có một số điều khiển thông qua thông báo những gì xảy ra
Các đặc tính nâng cao khác là đồng gửi (carbon copies), thư có mức ưu tiên cao (high-priority email), bảo mật thư (secret email) có nghĩa là thông điệp được mã hóa trước khi gửi đi, thay đổi người nhận thư (alternative recipients) nếu người đầu tiên
paid the above invoice of $0.00
Please send us a check for
$0.00 promptly
i d Gi
ϒ Name: Mr Daniel Dumkopf
Street: 18 Willow Lane State: NY
Zip code: 10604 Priority: Urgent Encryption: None From: United Gizmo Address: 180 Main St Location: Boston, MA 02120 Date: April, 5, 2001 Subject: Invoice 1081
Dear Mr Dumkopf,
Our computer records show that you still have not paid the above invoice of $0.00
Please send us a check for
Trang 18không có khả năng nhận được, và các khả năng cho các cô thư ký vận dụng thư của các ông chủ của mình
Hiện nay thư điện tử được sử dụng rộng rãi trong việc kinh doanh cho việc truyền thông tin trong công ty Nó cho phép các công nhân ở xa hợp tác về các dự án phức tạp, ngay cả những nơi phải mất nhiều thời gian mới đến được Một số công ty đã đánh giá rằng thư điện tử đã làm tăng năng suất sản xuất của họ lên 30 phần trăm (Perry and Adam
1992)
Một khái niệm quan trọng trong tất cả các hệ thống thư điện tử hiện đại là sự phân biệt giữa phong bì (envelope) và các nội dung bên trong của nó Phong bì bao bọc (encapsulate) cả thông điệp Nó chứa tất cả các thông tin cần thiết cho việc truyền tải thông điệp, như là địa chỉ đích, độ ưu tiên, và mức độ bảo mật , tất cả những cái đó đều
khác biệt với thông điệp bên trong nó Các MTAs sử dụng phong bì cho việc định tuyến
đường truyền, điều này cũng giống như công việc của bưu điện làm
Thông điệp ở bên trong phong bì chứa hai phần: phần đầu thư (header) và phần thân
thư (body) Phần header chứa các thông tin điều khiển cho các UAs Phần thân là phần
hoàn toàn dành cho người nhận thư Các phong bì và các thông điệp được mô tả trong hình bên dưới
Tác nhân người sử dụng (The User Agent)
Các hệ thống thư điện tử có hai phần cơ bản, như chúng ta đã thấy gồm: phần UA và phần MTA Trong phần này chúng ta sẽ xét đến phần UA Một UA thường là một chương
trình (đôi khi được gọi là bộ phận đọc thư) nó nhận một trong những lệnh khác nhau như
là cho mục đích soạn thư, nhận thư, và hồi đáp các thông điệp, cũng như việc thao tác trên các hộp thư (mailboxes) Một số UA (User Agent) có giao diện trình đơn (menu) hay biểu tượng (icon) khá hấp dẫn mà nó yêu cầu sử dụng chuột hoặc chấp nhận các lệnh 1 ký tự
từ bàn phím có cùng chức năng với menu và các icon
Gửi thử (Sending Email)
Để gửi đi một thông điệp, người sử dụng phải cung cấp thông điệp, địa chỉ đích và một số tham số khác nếu có (ví dụ như là mức ưu tiên hay bảo mật) Người sử dụng có thể tạo thông điệp với một trình soạn thảo văn bản khác nhau, một chương trình sử lý từ hay với bộ soạn thảo được xây dựng trên UA Địa chỉ đích phải có một định dạng mà làm sao cho UA có thể hiểu được Nhiều UA tiếp nhận các địa chỉ DNS (Domain Name
System) có dạng mailbox@location
Đọc thử (Reading Email) Khi UA được khởi động nó kiểm tra xem trong hộp thư của người sử dụng có thư gửi đến không trước khi hiển thị các thứ khác lên màn hình Khi đó có lẽ nó sẽ thông báo một số các thông điệp trong hộp thư hay hiển thị một dòng vắn tắt của mỗi thông điệp và chờ nhận lệnh để xử lý Một ví dụ ở hình bên dưới cho thấy một viễn cảnh sau khi UA khởi động hiển thị những yêu cầu vắn tắt của các thông điệp Trong ví dụ này hộp thư (mailbox) gồm có tám thông điệp
Mỗi dòng hiển thị chứa một số trường được trích ra từ phong thư hay phần đầu (header) của từng thông điệp được định vị trong hộp thư Trong một hệ thống thư điện tử đơn giản, sự lựa chọn của các trường hiển thị được người ta xây dựng thành một chương trình Trong các hệ thống phức tạp hơn, người sử dụng có thể xác định cho các trường nào
Trang 19được hiển thị bằng cách cung cấp một hiện trạng người sử dụng (User Profile), hay một
tệp mô tả định dạng hiển thị Trong ví dụ này, trường đầu tiên là số thông điệp có trong
hộp thư Trường thứ hai, là các cờ có thể chứa một kí tự K, có nghĩa là thông điệp cũ đã được đọc kỳ trước rồi và được lưu lại trong hộp thư; kí tự A có nghĩa là thư này đã được hồi âm rồi; ký tự F (có thể có), có nghĩa là thư này được chuyển tiếp đến người khác Các
cờ khác nữa cũng có thể được đưa vào ngoài những cờ này
2 KA 6348 Radia Comments on material you sent me
3 KF 4519 Amy N Wong Request for information
4 1236 Bal Deadline for grant proposal
5 103610 Kaashoek Text of DCS paper
6 1223 Emily E Pointer to WWW page
7 3110 Saniya Referee reports for the page
Hiển thị các nội dung của hộp thư
Trường thứ ba cho biết chiều dài của thông điệp và trường thứ tư cho biết ai là người gửi thông điệp Vì trường này được trích ra từ các thông điệp rất đơn giản nên trường này có thể chứa các tên, họ tên đầy đủ, các tên viết tắt, các tên đăng nhập, hay bất
cứ thứ gì mà người gửi có thể đặt vào trong trường này Cuối cùng là trường chủ đề thư
(Subject) cho biết một câu vắn tắt về những gì trong nội dung thông điệp Những người nào quên điền vào trường này thì thường được cho là những câu trả lời cho thư của họ là không chú ý đến mức ưu tiên cao nhất
Sau khi các phần đầu đã được hiển thị, người sử dụng có thể thực hiện bất cứ lệnh nào có thể Một chọn lựa tiêu biểu được liệt kê ở bảng bên dưới (hình bên dưới) là một ví
dụ khi một người sử dụng bằng hệ thống Mmdf của hệ điều hành UNIX Có một số lệnh yêu cầu có tham số Ký hiệu # có nghĩa là chỉ số của một thông điệp (hay có thể có nhiều
thông điệp) được chấp nhận Tương tự, mẫu tự a có thể được sử dụng có nghĩa cho tất cả
các thông điệp
Chúng ta bây giờ hãy quay đến từ giao diện người sử dụng đến định dạng của các thông điệp thư điện tử Trước tiên chúng ta xét thư điện tử dựa trên bản mã ASCII sử dụng chuẩn RFC 822 (Request for Comments) Sau đó xét đến các mở rộng đa phương tiện cho chuẩn RFC 822
Chuẩn RFC 822
Các thông điệp bao gồm một phong bì gốc (được mô tả trong chuẩn RFC 821), một
số các trường cho phần đầu (header), một dòng để trống và sau đó là phần thân (body) Mỗi trường header bao gồm các dòng văn bản ASCII chứa tên trường, dấu hai chấm, và cho hầu hết các trường đều có một giá trị RFC 822 là một chuẩn cũ và giữa các trường
Trang 20header của phong bì (envelope) không phân biệt rõ ràng như một chuẩn mới khác Khi sử
dụng, thông thường UA xây dựng một thông điệp và đưa nó qua bộ phận tác nhân truyền thông điệp (message transfer agents - MTA), ở đây nó dùng một số các trường header để
xây dựng một envelope thực sự, thông điệp được thay đổi bởi cái cũ đi một chút cùng với envelope
Command Parameter Description
U # Undelete previously deleted message(s)
B Backup to the previous message and display it
G # Go to a specific message but do not display it
E Exit the mail system and update the mailbox
Các lệnh điều khiển thư đặc biệt
Các trường header chủ yếu liên quan đến việc chuyển giao thông điệp được liệt kê
dưới bảng sau Trường To: trường này cho biết địa chỉ DNS của người nhận đầu tiên Trường hợp nhiều người nhận cũng có thể cho phép Trường Cc: cho biết địa chỉ của
những người nhận kế tiếp (còn gọi là địa chỉ đồng gửi) Trong các thuật ngữ của việc phát thư, không có sự phân biệt giữa những người nhận thứ nhất và người nhận thứ hai Thuật
ngữ Cc (Carbon copy) là một mẫu đã được xác định, vì máy tính không sử dụng các trang giấy bản sao Trường Bcc: (Blind carbon copy) giống như trường Cc: chỉ trừ là dòng này
được xóa khỏi tất cả các bản sao được gửi đến những người nhận đầu tiên và người nhận thứ hai Đặc tính này cho phép người ta gửi các bản sao đến những người trong nhóm thứ
ba mà trong đó không có người thứ nhất và người thứ hai biết
Header Meaning
To: Email address(es) of primary recipient(s)
Cc: Email address(es) of secondary recipient(s)
Bcc: Email address(es) for blind carbon copies
From: Person or people who created the message
Sender: Email address of the actual sender
Received: Line added by each transfer agent along the route
Return-Path: Can be used to identify a path back to the sender
Trang 21Các trường header RFC 822 liên quan trong việc truyền thông điệp
Hai trường kế tiếp, From: và Sender: cho biết để phân biệt người viết và người gửi
thông điệp Hai trường này hoàn toàn không giống nhau Ví dụ một nhà quản trị doanh nghiệp có thể viết một thông điệp nhưng cô thư ký là người thật sự truyền nó đi Trong
trường hợp này, người quản trị phải được liệt kê vào trong trường From: và cô thư ký trong trường Sender:
Header Meaning
Date: The date and time the message was sent
Reply-To: Email address to which replies should be sent
Message-Id: Unique number for referencing this message latter
In-Reply-To: Message-Id of the message to which this is a reply
References: Other relevant Message-Ids
Keywords: User chosen keywords
Subject: Short summary of the message for the one-line display
Một số trường được sử dụng trong header thông điệp RFC 822
Trường From: yêu cầu phải có còn trường Sender: có thể được bỏ qua nếu việc viết
và gửi cùng một người Các trường này cần thiết khi trong trường hợp thông điệp không được phát đi và phải được trả lại cho người gửi
Dòng chứa trường Received: được đưa vào bởi các MTAs dọc theo đường truyền
Dòng này chứa định danh của agent, ngày tháng và thời gian thông điệp được nhận, và các thông tin khác có thể được sử dụng cho việc tìm kiếm các lỗi trong hệ thống định tuyến
Trường Return-Path: được đưa vào bởi MTAs cuối cùng và được dùng cho việc gửi
trở lại người gửi Theo lý thuyết, thông tin này có thể được tập hợp lại từ các header
Received: (loại trừ tên của hộp thư người gửi), nhưng nó ít khi được điền đầy đủ như thế
và chỉ đặc biệt chứa địa chỉ của người gửi
Thêm vào các trường của hình bên dưới các thông điệp RFC 822 cũng có thể chứa một trong số các trường khác được sử dụng bởi các UA hay những người nhận thư Những trường thông thường nhất được liệt kê trong hình bên dưới Hầu hết những trường này có tính cách giải thích, vì thế chúng ta không đi sâu vào từng chi tiết
7 Phương thức hoạt động
7.1 Email đến được hộp thư của người nhận như thế nào?
Có lẽ nền tảng đầu tiên là email không được quản lý bởi một loại máy chủ hay công nghệ nào Nó là một gói giao thức được phục vụ bởi các tiến trình riêng biệt Chúng ta sẽ xem xét đến các tiến trình này sau khi hiểu qua về vấn đề tổng quan Bạn đã từng viết thư trong máy khách email của bạn – các ứng dụng phần mềm có thể sử dụng trên desktop để giúp soạn thảo và tổ chức thư tín, như chương trình Microsoft Outlook, Apple Mail hoặc Thunderbird Các chuyên gia Email gọi các ứng dụng máy khách đó là mail user agent (MUA) MUA có thể không phải là một ứng dụng desktop; nó
Trang 22có thể là một ứng dụng "Web mail" chạy trên máy chủ Web và máy chủ này cho phép bạn điều khiển bằng cách sử dụng trình duyệt Web mail client, dù thông qua Gmail, Yahoo hay front end công ty đến hệ thống khác, đều được xử lý theo cùng một cách với tư cách MUA của desktop client trong phần còn lại của tiến trình truyền tải email Khi bạn kích vào nút Send, thư tín sẽ không suất hiện trên màn hình và thiết lập một chuỗi các sự kiện chuyển mail Sau khi kích vào nút Send, thư được truyền tải đến outgoing mail server (máy chủ mail gửi) của bạn, máy chủ mail này có thể được đặt tên dạng như
mail.tencongty.com Máy chủ mail – trước đây được gọi là một tác nhân truyền tải mail
(MTA) – chấp thuận thư, vì bạn đang ở trong một mạng tin cậy hoặc vì bạn đã cung cấp username và password (thông thường được lưu trong các file cấu hình của MUA) Tiến trình mạng này được hoàn thành bằng sử dụng giao thức truyền tải mail đơn giản - Simple Mail Transfer Protocol (SMTP), và tiến trình bảo đảm người gửi là tin cậy được gọi là SMTP chứng thực
Khi thư của bạn trong hàng đợi, máy chủ mail cần gửi nó đi Máy chủ mail lên lạc với máy chủ mail của người nhận và tuyền tải thư bằng giao thức SMTP Nhưng với hàng triệu máy chủ mail, thì đâu là máy chủ mail mà nó cần phải liên lạc? Máy chủ mail của bạn sẽ tìm kiếm trên máy chủ DNS (máy chủ tên miền), các máy chủ này được hiểu như một kiểu danh mục thẻ thư viện của Internet, để tìm ra ai đã ký để chấp nhận mail cho miền của người nhận DNS cho máy chủ mail của bạn các bản ghi trao đổi mail (MX) đã được đăng ký cho miền đó Từ đó trao cho máy chủ mail của bạn một máy chủ để liên lạc
và nó bắt đầu truyền tải trên đó
Thư tín được gửi trên Internet thông qua TCP/IP (Transmission Control Protocol/Internet Protocol) Quá trình truyền thông giữa máy chủ tới máy chủ có phần khác đôi chút so với những gì nó thực hiện khi trao đổi với client MUA, mặc dù cả hai đều sử dụng SMTP Một điểm khác nữa đó là giữa các thiết lập của quản trị viên và chương trình mã đã thiết lập từ trước, mỗi máy chủ mail sẽ thừa nhận rằng thư tín đã bị định dạng sai (giống như việc từ chối của bưu điện đối với một lá thư thiếu địa chỉ phố đầy đủ), vì nó không đúng với nguyên tắc trong hành động gửi spam hoặc virus
Chủ yếu là để chống spam nên hầu hết các máy chủ mail đều xử lý thư qua một tiến trình gồm nhiều bước nhỏ trước khi chúng chấp nhận dữ liệu, lại càng không lưu nó và chuyển tiếp đến người dùng Các bước này sẽ được chúng tôi giới thiệu sơ qua bên dưới Lưu ý rằng, chúng tôi đang đơn giản hóa hết mức quá trình truyền thông ở đây Hãy biết rằng có rất nhiều bước trong một quá trình và mỗi một bước lại được quản lý bởi các chuẩn Ví dụ RFC 2821 đưa ra chuẩn SMTP, chuẩn này gồm có cách gửi mail trên mạng RFC 2822 đưa ra định dạng cơ bản cho thông báo email, gồm có các header (To:, Cc:, Subject: …) Các quản trị viên email của bạn có thể sẽ hiểu được rất kỹ về các vấn đề này
Khi thư tín đến được máy chủ mail đích thì máy chủ này sẽ chịu trách nhiệm cho việc
phân phối đến người nhận (như mail.tencongtykhachhang.com), nó chuẩn bị để phân
phối đến từng cá nhân đang đợi thư của bạn Ở đây cũng có nhiều lựa chọn cho quản trị viên mail, trong cách mail sẽ được lưu như thế nào và được chuyển tiếp ra sao đến người dùng Mỗi tổ chức (hoặc các quản trị viên email của nó) quyết định xem phương pháp nào
là tốt nhất với những nhu cầu của họ Hầu hết, giao thức chính đã sử dụng trong tổ chức của chúng tôi là Internet Message Access Protocol (IMAP), giao thức này cho phép giữ
Trang 23tất cả các thư trên máy chủ mail đến, được phân loại một cách gọn gàng thành các thư mục của người dùng Ngày nay các công ty thường sử dụng Post Office Protocol (POP3)
Sử dụng POP3 e-mail, lệnh “Tải thư mới” trong MUA của bạn cho phép ứng dụng có thể download tất cả các thư tín về máy tính Trong bất kỳ hoàn cảnh nào, các thư tín email sử dụng POP3 sau đó đều được xóa trên máy chủ mail
Người nhận chuyển qua một lệnh “Tải thư mới” trên MUA của chính họ… và có được thư mà bạn đã gửi Điều kỳ diệu là thư tín của bạn có thể du lịch vòng quanh thế giới thông qua 5 hoặc 6 máy tính đơn lẻ Tuy nhiên trong nhiều trường hợp, thư của bạn đến được máy tính của người nhận trong vòng một hoặc hai phút Tất cả những công việc đó được thực hiện rất nhanh khi hệ thống làm việc Vậy điều gì sẽ xảy ra khi hệ thống gặp vấn đề?
7.2 Email có thể bị giữ chậm hoặc bị mất liên lạc ra sao?
Sự cường điệu hóa trước kia nói rằng Inernet như một “xa lộ điện tử” Mặc dù vậy trong trường hợp này, một mạng các xa lộ cũng tương tự như các đường xa lộ khác nhau trong thực tế Nếu bạn không bắt gặp một phương tiện nào đó trên đường đến văn phòng làm việc của mình thì có thể chỉ mất khoảng 20 phút để đến được văn phòng làm việc Nhưng nếu đường có quá nhiều xe ca, bạn có thể mất đến 5 phút để có thể vượt qua mỗi một ngã ba hay ngã tư nào đó Cấu trúc động cơ tốt cũng không thể giúp ích được bạn trong trường hợp này Khi đó thời gian bạn tốn cho việc đến văn phòng sẽ mất hơn 20 phút là điều chắc chắn
Hiểu tương tự như vậy đối với “xa lộ email” Máy chủ email nhanh, nhưng các thư tín lại rất nhiều và đang đầy ắp ở hàng đợi Lưu lượng Internet có thể yêu cầu các thư được định tuyến lại thông qua những đường dẫn không rành mạch Đôi khi vấn đề có thể do các máy chủ mất kết nối với Internet, giắc cáp mạng bị rút, thay đổi các thiết lập MUA, hay gửi một file PowerPoint lên đến 10MB Đây là vấn đề chung đối với máy chủ mail của bạn Giống như đối với dịch vụ bưu chính, các thư từ có thể chuyển từ một địa điểm này sang một địa điểm khác trước khi chúng được phân phối Các thư điện tử này được quản
lý từ máy đến máy dưới mô hình “lưu và chuyển tiếp” liên quan đến nhiều máy tính, vì vậy tốc độ phân phối có thể thay đổi rất nhanh
Điều này cũng có nghĩa rằng các thư tín “được đi du lịch” qua các máy tính có thể biết hoặc không biết người nhận và người gửi Mô hình lưu và chuyển tiếp là một mô hình quan trọng trong phương pháp truyền tải email, vì nó cho phép các tuyến thứ cấp có thể thay đổi đường dẫn và tạo lại các kết nối khi có vấn đề nào đó xuất hiện
Đó hoàn toàn là những thứ chưa đụng chạm gì đến các vấn đề gây khó chịu như spam
và virus Thêm vào đó là việc tiêu tốn một số lượng lớn về băng thông; virus, spam và Trojan horses có thể gây ra tốn rất nhiều thời gian và mọi nỗ lựu của các nhà quản trị mạng trong việc xây dựng bẫy để ngăn chặn những rủi ro không mong muốn lọt vào trong hộp thư của người dùng Mọi gateway đều cần đến thời gian, giống như một cao tốc nhưng tốc độ lại chậm Trước kia, các mail Server không được quan tâm nhiều về mặt kỹ thuật Nhưng trong thế giới hiện tại, khả năng phân phối mail có thể bị tổn hại bởi các vấn
đề kỹ thuật khác như các máy chủ tên miền (DNS) không đúng, việc điều chỉnh thiếu thận trọng các tham số timeout và định dạng mail khác thường
Trang 24Sau đó gánh nặng chuyển sang giải quyết các vấn đề spam, tấn công giả mạo và virus
Sẽ không có thứ như vậy khi thực hiện bảo vệ bằng bộ lọc spam Tuy các bộ lọc này sẽ ngày càng được cải thiện nhưng bạn vẫn có thể phải lưu ý vì không ít thư thực sự lại bị đưa vào thư mục spam, và trong tình huống như vậy nếu không kiểm tra thư mục spam bạn sẽ cho rằng thư đó bị thất lạc
Các rào cản khác đến từ việc thất bại máy khách và chủ email không được cấu hình (có thể như chính bạn) theo các nguyên tắc; thường chung hơn, mail này bị loại ra bởi các máy chủ mail của người nhận Nếu điều đó xảy ra, thư sẽ bị giữ chậm hoặc bị mất Điều
đó có nghĩa rằng các công ty phải ép buộc công nghệ mail dựa trên các chuẩn (như khi bảo đảm rằng các địa chỉ mail bám chặt với RFC), và rằng người dùng phải có các hành
vi thực hiện với email một cách đúng đắn.Một số lý do khác bao gồm việc không tương thích giữa các máy chủ mail của người nhận và người gửi Trong trường hợp này thư sẽ bị giữ chậm lại hoặc bị mất Do đó các công ty thường phải ép công nghệ mail dựa trên các chuẩn chung và người dùng lưu ý trong việc sử dụng địa chỉ email một cách đúng đắn và cần thiết
8 Cấu trúc một 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ì: Mô tả thông tin về người gởi và người nhận Do hệ thống tạo ra
• 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ụng cung 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
• Phần nội dung (body): chứa đựng nội dung của bức Mail, là nội dung được tạo ra
bởi trình soạn thảo Editor của chương trình Mail Sau đây là chi tiết của từng phần:
- Sau đây là một số trường thông dụng và ý nghĩa của nó :
9 Date: chỉ ngày giờ nhận mail
9 From: chỉ người gởi
9 To: chỉ người nhận
9 Cc: chỉ người những nhận bản copy của mail
9 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ày
Trang 259 Return-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)
9 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 trong phần header cũng có thể có thêm một số trường khác do chương trình Email tạo ra nhằ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
c Phần nội dung (body):
Để 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 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
9 Các giao thức gửi nhận mail
9.1 SMTP (Simple Mail Transfer Protocol)
9.1.1 Giới thiệu chung
Mục đích của giao thức SMTP (Simple Mail Transfer Protocol) là để truyền thư đáng tin cậy và có hiệu quả
SMTP đọc lập về hệ thống con truyền thông đặc biệt và các yêu cầu chỉ tin cậy theo kênh luồng dữ liệu tuần tự
Đặc tính quan trọng của SMTP là khả năng chuyển tiếp thư tín qua các môi trường dịch vụ truyền thông (transport service) Dịch vụ truyền thông cung cấp một môi trường truyền thông liên quá trình (interprocess communication environment - IPCE) IPCE có thể là một mạng, nhiều mạng hay một tập hợp con của một mạng Điều quan trọng để nhận thấy rằng các hệ thống truyền thông (IPCEs) không phải là việc truyền thông tương ứng một tới một (one-to-one) với các mạng Một tiến trình có thể truyền thông qua lại trực tiếp với một tiến trình khác thông qua bất kỳ một IPCE đã được biết Thư tín là một ứng dụng hay là việc sử dụng truyền thông liên tiến trình Thư tín có thể được truyền qua giữa các tiến trình theo các IPCEs khác nhau bắng cách chuyển tiếp qua một tiến tiến trình được kết nối tới hai hay nhiều IPCEs Đặc biệt hơn nữa, thư tín có thể được chuyển tiếp giữa các máy chủ (hosts) trên các hệ thống truyền thông khác nhau bởi một máy chủ trên cả hai hệ thống truyền thông
Giao thức SMTP định nghĩa cách để chuyển giao thư tín trực tiếp giữa các máy tính
trên mạng Nó có hai vai trò là gửi (sender-SMTP) và nhận (receiver-SMTP) thư Thông
thường, bên gửi thiết lập một liên kết TCP với bên nhận, và bên nhận sử dụng cổng truyền thông số 25 để cung cấp dịch vụ thư tín điện tử
Trong một phiên giao dịch thư tín, bên gửi và bên nhận trao đổi tuần tự các lệnh và các thông tin phản hồi
9.1.2 Mô hình hoạt động phiên giao dịch
SMTP được thiết kế dựa trên mô hình truyền thông sau: khi người sử dụng (user) gửi một
yêu cầu dịch vụ thư tín, trước tiên Sender-SMTP thành lập một kênh truyền thông hai
Trang 26chiều tới Receiver-SMTP Receiver-SMTP có thể là đích cuối cùng hoặc là một trạm trung gian Sau đó, các lệnh của SMTP được sinh ra từ phía Sender-SMTP và gửi tới Receiver-SMTP Receiver-SMTP sẽ thao tác trên các lệnh đó và gửi trả kết quả về phía Sender-SMTP
SMTP cung cấp cơ chế chuyển thư trực tiếp từ máy chủ của người gửi đến máy chủ của người nhận khi hai máy chủ được kết nối trên cùng một dịch vụ truyền thông hoặc qua một hoặc nhiều Server-SMTP chuyển tiếp khi các máy chủ nguồn và máy chủ đích không cùng được kết nối tới cùng một dịch vụ truyền thông
Để thực hiện được khả năng chuyển tiếp thư tín trên mạng, cần phải cung cấp tên của máy chủ cũng như tên của hộp thư (mailbox) cuối cùng cần gửi tới cho SMTP Server
SMTP cung cấp một tập các lệnh cho phép các máy tính trên mạng có thể trao đổi thực tiếp các thông tin theo một chuẩn qui định Nhờ vào tập lệnh này, các hệ thống thư tín khác nhau có thể trao đổi dữ liệu thư được với nhau Mỗi lệnh đều có cùng chiều dài bốn kí tự, hầu hết đều có tham số kèm theo
Các lệnh sử dụng trong việc gửi/nhận thư tín tuân theo một cú pháp khắt khe Đó là các thông tin phản hồi luôn ở dạng mã số kèm theo là các mô tả về kết quả thực hiện lệnh Các lệnh và mã phản hồi không phân biệt chữ hoa và chữ thường Điều này có nghĩa là một lệnh hoặc một thông báo phản hồi có thể ở dạng in hoa, in thường hoặc trong bất kì một kiểu kết hợp nào giữa in hoa và in thường
Lưu ý rằng điều này là không đúng với tên của ”user mailbox” Với một số máy chủ, user name là phân biệt chữ hoa, thường và việc thực hiện các lệnh SMTP cần phải quan tâm để đảm bảo sự thực hiện đúng đắn trong trường hợp này Tên của máy chủ cũng không phân biệt chữ hoa, thường
Các lệnh và thông tin phản hồi được xây dựng bởi các kí tự từ bộ mã ASCII Khi dịch vụ giao vận cung cấp kênh truyền thông 8 bit, mỗi kí tự truyền đi sẽ chỉ sử dụng 7, bit cao nhất sẽ được xoá về 0
Mỗi phiên giao dịch SMTP phải trải qua một số giai đoạn Các giai đoạn đó được thực hiện thông qua các thủ tục SMTP, kèm theo đó là các thông tin phản hồi:
Thủ tục MAIL
File
System
SMTP Commands / Replies Sender
SMTP
Sender - SMTP
Mô hình tổng quát sử dụng giao thức SMTP
Receiver SMTP
Receiver - SMTP
and Mail
File System User
Trang 27 Lệnh MAIL được gửi đi kèm theo là tham số về địa chỉ người gửi thư
Lệnh RCPT được gửi đi kèm theo là tham số về địa chỉ người nhận thư Có thể thực hiện nhiều lần lệnh này trong trường hợp muốn gửi thư cho nhiều người
Lệnh DATA được gửi đi để xác nhận bắt đầu gửi dữ liệu của thư
Dưới đây là phần chi tiết về 3 lệnh trên
9.1.3.1 Lệnh MAIL FROM <reverse-path>
Tham số: là một xâu ký tự định danh mailbox của người gửi thư
• Hạn chế: Chỉ có thể thực hiện khi chưa thực hiện chính lệnh này
• Chi tiết: Lệnh này dùng để xác nhận người gửi thư đồng thời thiết lập một phiên giao dịch SMTP với Receiver-SMTP (Server) Nó đưa ra đường dẫn <reverse-path> để sử
dụng trong trường hợp phiên giao dịch không thực hiện thành công Ngược lại, thông tin
về người gửi sẽ được lưu lại
• Thông tin phản hồi:
Tham số: là một xâu ký tự định danh mailbox của người nhận thư
• Hạn chế: Chỉ có thể thực hiện khi đã định danh người gửi thư bằng lệnh MAIL
• Chi tiết: Lệnh này dùng để xác nhận người nhận thư được chỉ định trong tham số
<forward-path> Nếu Receiver-SMTP chấp nhận thì thông tin về người gửi sẽ được lưu lại Lệnh này có thể thực hiện nhiều lần để xác nhận nhiều người nhận thư
• Thông tin phản hồi:
Trang 289.1.3.3 Lệnh DATA
Tham số: không
• Hạn chế: Chỉ có thể thực hiện khi đã thực hiện thành công việc xác nhận người gửi và
người nhận thư
• Chi tiết: Lệnh này dùng để xác nhận bắt đầu việc gửi nội dung thư Nếu SMTP
Receiver chấp nhận, nó sẽ tiến hành nhận và lưu trữ tất cả các dòng văn bản được gửi đến
Để kết thúc việc gửi dữ liệu, SMTP Sender cần gửi một dòng chỉ chứa một dấu chấm ”.”
Lưu ý rằng phần dữ liệu sau lệnh DATA bao gồm toàn bộ phần header của thư (như các trường Date, Subject, CC, From, ) cũng như nội dung thư
• Thông tin phản hồi:
250 OK
Ví dụ:
S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Sends body of mail message
S: <CR><LF>.<CR><LF>
R: 250 OK
S: QUIT
S: 221 Beta.gov Service Closing Transmission Channel
Sau đây là một ví dụ minh hoạ cho một phiên giao dịch thư tín SMTP Phần thông tin phía Server được bắt đầu bằng R: và mã số, tiếp sau là thông tin Phần phía Client là các lệnh thực thi của SMTP bắt đầu bằng S: Ta sẽ sử dụng dịch vụ Telnet để kích hoạt
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah
S: etc etc etc
S:
R: 250 OK
S: MAIL FROM: <Postel@USC-ISIF.ARPA>
R: 250 OK
Trang 29S: RCPT TO: <eric@BERKELEY.ARPA>
R: 250 OK
S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah
S: etc etc etc
251 User not local; will forward to <forward-path>
Thông tin phản hồi này chỉ ra rằng mailbox của người nhận thuộc một máy chủ
(host) khác Như vậy, SMTP Receiver sẽ chỉ ra <forward-path> chính xác để sử dụng và
nó sẽ chịu trách nhiệm gửi thư này
551 User not local; please try <forward-path>
Thông tin phản hồi này chỉ ra rằng, SMTP Receiver biết được mailbox của người nhận thuộc một máy chủ khác Nó sẽ đưa ra địa chỉ chính xác để sử dụng nhưng trong trường hợp này nó không thực hiện việc gửi thư đi Chính vì vậy, người gửi cần phải xác nhận lại các thông tin cho chính xác theo thông tin phản hồi của SMTP Receiver hoặc trả lại thông báo lỗi cho người gửi ban đầu
Sau đây là ví dụ về cách sử dụng thủ tục này:
S: RCPT TO:<Postel@USC-ISI.ARPA>
R: 251 User not local;
will forward to <Postel@USC-ISIF.ARPA>
or
S: RCPT TO:<Paul@USC-ISIB.ARPA>
R: 551 User not local;
please try <Mockapetris@USC-ISIF.ARPA>
9.1.5 Các thủ tục Mailing và Sending
SMTP chủ yếu cung cấp các chức năng phát thư đến mailbox của người sử dụng Tuy nhiên, nó cũng có một số các chức năng thực hiện việc chuyển thư đến terminal của người sử dụng
Việc phát thư đến mailbox của người sử dụng được gọi là ”mailing”, còn việc phát thư đến terminal được gọi là ”sending” Dịch vụ sending là phần mở rộng của một hệ thống thư tín điện tử
Có ba dạng câu lệnh được định nghĩa để hỗ trợ cho các tùy chọn sending Các câu lệnh này được dùng trong các phiên giao dịch SMTP thay thế cho câu lệnh MAIL và báo cho Receiver-SMTP biết ý nghĩa đặc biệt của phiên giao dịch này
Trang 309.1.5.1 Lệnh SEND FROM <reverse-path>
Tham số: địa chỉ terminal của người nhận
• Chi tiết: Lệnh này yêu cầu dữ liệu của thư được phân phát tới terminal của người sử dụng Nếu người sử dụng chưa kích hoạt (hoặc không chấp nhận kiểu giao dịch này) thì
Receiver-SMTP sẽ gửi trả mã 450 Phiên giao dịch là thành công nếu thư được chuyển đến terminal của người sử dụng
• Thông tin phản hồi:
450 OK
9.1.5.2 Lệnh SOML FROM <reverse-path>
Tham số: địa chỉ terminal của người nhận
• Chi tiết: Lệnh này (viết tắt của chữ Send Or MaiL) yêu cầu dữ liệu của thư được phân phát tới terminal của người sử dụng trong trường hợp người sử dụng kích hoạt (và chấp nhận kiểu giao dịch này) Trong trường hợp ngược lại, nghĩa là người sử dụng chưa kích
hoạt thì dữ liệu của thư sẽ được chuyển đến mailbox của người nhận Phiên giao dịch thành công nếu thư được chuyển đến terminal của người sử dụng
9.1.5.3 Lệnh SAML FROM <reverse-path>
Tham số: địa chỉ terminal của người nhận
• Chi tiết: Lệnh này (viết tắt của chữ Send And MaiL) yêu cầu dữ liệu của thư được phân phát tới terminal của người sử dụng trong trường hợp người sử dụng kích hoạt (và chấp nhận kiểu giao dịch này) Trong bất cứ trường hợp nào thì dữ liệu của thư cũng sẽ được
chuyển đến mailbox của người nhận Phiên giao dịch thành công nếu thư được chuyển
đến mailbox của người sử dụng
9.2 POP3 (Post Office Protocol)
9.2.1 Giới thiệu
Giao thức POP3 cho phép một máy trạm có thể truy nhập để lấy thư trên máy chủ
Nó định nghĩa cách thức giao tiếp với POP3 Server bởi các lệnh chuẩn được quy định trong RFC 1081 để lấy thư về
9.2.2 Mô hình hoạt động phiên giao dịch
Vào thời điểm bắt đầu, tiến trình phía Server bắt đầu dịch vụ POP3 bằng cách ”lắng nghe” trên cổng TCP 110 Thuật ngữ ”lắng nghe” ở đây được hiểu theo nghĩa là tiến trình phía Server luôn luôn tiếp nhận các thông tin đến ở cổng dịch vụ mà nó cung cấp - trong trường hợp này là cổng dịch vụ 110 - xử lý và gửi kết quả về cho tiến trình yêu cầu dịch
vụ phía Client
Khi một tiến trình phía Client muốn sử dụng dịch vụ, nó thiết lập một kết nối TCP tới máy chủ phía Server Khi kết nối được thiết lập, POP3 Server gửi một thông báo chấp nhận và sau đó tiến trình phía Client và POP3 Server có thể trao đổi các lệnh cũng như các thông tin phản hồi cho đến khi kết nối bị hủy bỏ hoặc phiên giao dịch kết thúc
Các lệnh trong POP3 bao gồm từ khóa, có thể theo sau là một hoặc nhiều tham số Tất cả các lệnh đều được kết thúc bởi cặp ký tự CRLF Từ khóa và các tham số là các kí
Trang 31tự in được trong bảng mã kí tự ASCII, giữa chúng được phân cách bởi một kí tự dấu cách
trống Từ khóa có thể dài ba hoặc bốn kí tự, còn các tham số có thể dài tới bốn mươi kí tự Thông tin phản hồi của POP3 bao gồm một thông báo trạng thái và một từ khóa có thể theo sau một số thông tin thêm Tất cả các thông tin phản hồi đều được kết thúc bởi cặp ký tự CRLF
Có hai thông báo trạng thái là: Xác định (”+OK”) để xác nhận thành công và phủ định (”-ERR”) để xác nhận trong trường hợp có lỗi
Các thông tin phản hồi cho các lệnh thực tế là nhiều dòng Trong những trường hợp này, sau khi gửi dòng đầu tiên của thông tin phản hồi và một cặp CRLF, bất cứ một dòng thêm vào nào được gửi thì đều phải kết thúc bằng cặp CRLF Khi tất cả các thông tin phản hồi đều đã được gửi, một dòng cuối cùng được gửi, bao gồm mã kết thúc (mã thập phân 046, ”.”) và một cặp CRLF
Nếu có một dòng nào trong thông tin phản hồi đa dòng bắt đầu với một mã ký tự
kết thúc (dấu chấm ”.”), thì dòng đó coi như chưa được xử lí xong đối với thông tin phản
hồi Vì vậy, một thông tin phản hồi đa dòng được kết thúc bởi bộ năm octets là ”CRLF CRLF”
Một phiên giao dịch POP3 phải trải qua một số các trạng thái trong suốt thời gian tồn tại của phiên làm việc Mỗi lần kết nối TCP được mở và POP3 Server gửi thông báo chấp nhận, phiên làm việc chuyển sang trang thái AUTHORIZATION ở trạng thái này, Client phải tự định danh của mình cho POP3 Server
Mỗi khi Client thực hiện xong việc định danh, Server nhận được tài nguyên tương ứng với hộp thư của Client, nó sẽ chuyển sang trạng thái TRANSACTION
Trong trạng thái này, các yêu cầu của Client được chuyển sang và được thực hiện bên phía POP3 Server Khi Client đưa ra lệnh QUIT, phiên làm việc chuyển sang trạng thái UPDATE Trong trạng thái này, POP3 Server giải phóng mọi tài nguyên thu được trong suốt trạng thái TRANSACTION và kết thúc Đồng thời, kết nối TCP kết thúc
Một POP3 Server có thể có một bộ xác định thời gian Nếu sau một khoảng thời gian xác định trước mà phía Client không có tác động gì thì POP3 Server có thể tự động kết thúc phiên làm việc Khoảng thời gian này ít nhất là khoảng 10 phút
Nếu trong khoảng thời gian này có bất kì một lệnh nào từ phía Client, bộ xác định thời gian sẽ được khởi tạo lại Khi hết thời gian hiệu lực, phiên làm việc không chuyển sang trạng thái UPDATE Server sẽ đóng kết nối TCP mà không chuyển bất kì một thư nào cũng như các thông tin phản hồi nào về phía Client
Như vậy, ta thấy một phiên làm việc của POP3 phải trải qua ba trạng thái: trạng thái AUTHORIZATION, trạng thái TRANSACTION và trạng thái UPDATE
Phần tiếp theo sẽ trình bày chi tiết về sự hoạt động của POP3 Server trong từng trạng thái của phiên giao dịch và các lệnh có thể thực hiện trong mỗi trạng thái đó
9.2.3 Trạng thái AUTHORIZATION
Khi một phiên giao dịch POP3 được kích hoạt bởi một POP3 Client, POP3 Server sẽ gửi một thông báo cho phía Client Tương tự như phần trình bày về giao thức SMTP, ta cũng sử dụng Telnet để kích hoạt dịch vụ này Một ví dụ có thể là:
S: +OK dewey POP3 server ready
Trang 32Chú ý rằng, đây là thông tin phản hồi từ phía POP3 Server Dấu ”+” có nghĩa là thành công, ngược lại, dấu ”-” là không thành công bị lỗi Phiên làm việc POP3 hiện tại đang ở trạng thái AUTHORIZATION Phía Client bây giờ cần phải đưa vào các lệnh để xác định người nhận thư cho POP3 Server Để thực hiện việc này, phía Client sử dụng hai lệnh là USER và PASS Đầu tiên, Client sử dụng lệnh USER với tham số là account của người nhận
Nếu thông tin phản hồi từ phía POP3 Server bắt đầu bằng dấu ”+” (+OK) thì phía
Client có thể gửi tiếp lệnh PASS với tham số là mật khẩu của người nhận để kết thúc việc định danh hoặc cũng có thể gửi lệnh QUIT để kết thúc phiên giao dịch
Trong trường hợp ngược lại, nếu thông tin phản hồi bắt đầu bằng dấu ”-” (-ERR) cho
lệnh USER thì phía Client có thể thực hiện lại việc định danh hoặc kết thúc phiên giao dịch bằng lệnh QUIT
Khi phía Client đưa vào lệnh PASS, POP3 Server sẽ sử dụng kết hợp hai đối số đưa vào bởi hai lệnh USER và PASS để xác định xem người sử dụng này có tồn tại hay không, có được quyền truy nhập vào mailbox hay không,.v.v
Sau khi đã xác định phía Client được quyền truy nhập, POP3 Server sẽ thực hiện việc khoá mailbox để chống lại việc sửa đổi hoặc xoá thư trong mailbox từ các phiên POP3 khác, trước khi chuyển sang trạng thái UPDATE
Nếu như việc khoá mailbox thành công, phiên giao dịch POP3 sẽ chuyển sang trạng thái TRANSACTION Vào thời điểm này, chưa có một thư nào bị đánh dấu xoá
Trong trường hợp ngược lại, nếu như vì một lý do nào đó không thể khoá được
mailbox (ví dụ như không được quyền truy nhập hoặc mailbox đã bị khoá,.v.v) thì POP3
Server sẽ gửi một thông tin phản hồi ”-ERR” và kết thúc luôn phiên giao dịch
Sau khi POP3 Server đã mở được mailbox, nó sẽ gắn chỉ số cho mỗi một bức thư và tính luôn kích thước từng bức thư Chỉ số được bắt đầu từ 1 Trong các lệnh của POP3 và các thông tin phản hồi, tất cả các chỉ số và kích thước thư đều ở dạng cơ số 10
Sau đây là một số lệnh có thể thực hiện trong trạng thái AUTHORIZATION:
9.2.3.1 Lệnh USER [name]
• Tham số: là một xâu ký tự định danh của mailbox, duy nhất đối với Server
• Hạn chế: Chỉ có thể thực hiện trong trạng thái AUTHORIZATION vào thời điểm
ban đầu hoặc sau khi việc định danh USER và PASS không thành công
• Chi tiết: Lệnh này dùng để định danh người sử dụng
• Thông tin phản hồi:
+OK name is welcome here
-ERR Never heard of name
Trang 339.2.3.2 Lệnh PASS [string]
Tham số: là một xâu ký tự định danh của mật khẩu tương ứng với mailbox
• Hạn chế: Chỉ có thể thực hiện trong trạng thái AUTHORIZATION vào thời điểm
ban đầu hoặc sau khi việc định danh USER thành công
• Chi tiết: Lệnh này dùng để xác định mật khẩu tương ứng với người sử dụng đã định danh bằng lệnh USER
• Thông tin phản hồi:
+OK maildrop locked and ready
-ERR invalid password
-ERR unable to lock maildrop
• Chi tiết: Lệnh này dùng để kết thúc phiên giao dịch
• Thông tin phản hồi:
Cuối cùng, phía Client thực hiện lệnh QUIT để chuyển phiên giao dịch sang trạng thái UPDATE
Sau đây là một số lệnh có thể thực hiện trong trạng thái TRANSACTION:
Trang 349.2.4.1 Lệnh STAT
• Tham số: không
• Hạn chế: Chỉ có thể thực hiện trong trạng thái TRANSACTION
• Chi tiết: Lệnh này dùng để lấy thông tin về số thư trong mailbox và kích thước
của mailbox tương ứng với người sử dụng Cấu trúc của dòng thông tin phản hồi này là: “+OK”, tiếp theo là một dấu cách trống, số lượng thư trong mailbox và kích thước của mailbox tương ứng với người dùng đã xác định
• Thông tin phản hồi:
• Tham số: (có thể có hoặc không) là một số hiệu của thư trong số những thư hiện
có trong mailbox của người dùng Lưu ý, những thư bị đánh dấu xoá sẽ bị bỏ qua
• Hạn chế: Chỉ có thể thực hiện trong trạng thái TRANSACTION
• Chi tiết: Lệnh này dùng để liệt kê danh sách các thư có trong mailbox và kích
thước tương ứng hoặc lấy thông tin về một thư cụ thể nào đó Trong trường hợp không đưa vào tham số thì POP3 Server sẽ trả lại “+OK” và một danh sách các thư và số hiệu tương ứng trong mailbox của người dùng Trong trường hợp ngược lại, có tham số, nếu tham số nằm trong khoảng cho phép từ 1 đến số thư thì POP3 Server sẽ trả lại “+OK” và số hiệu của thư và kích thước tương ứng Ngược lại, POP3 Server sẽ trả lại “-ERR”
• Thông tin phản hồi:
+OK scan listing follows
-ERR no such message
Trang 35• Chi tiết: Lệnh này dùng để hiện thị nội dung thư tương ứng với số hiệu đưa vào
Nếu thực hiện được POP3 Server sẽ gửi trả một thông tin phản hồi đa dòng, bắt đầu bằng ”+OK”, tiếp theo là các dòng chứa đựng thông tin về nội dung thư cũng như tiêu đề của thư được chọn Trong trường hợp có lỗi, POP3 Server sẽ gửi trả
”-ERR”
• Thông tin phản hồi:
+OK message follows
-ERR no such message
• Tham số: số hiệu của thư cần xoá
• Hạn chế: chỉ có thể thực hiện trong trạng thái TRANSACTION
• Chi tiết: lệnh này dùng để xoá một thư tương ứng với số hiệu đưa vào Nếu thực
hiện được, POP3 Server sẽ gửi trả một thông tin phản hồi bắt đầu bằng ”+OK”, tiếp theo là thông tin về thư đã bị xóa Trong trường hợp có lỗi, POP3 Server sẽ gửi trả ”-ERR” Lưu ý, POP3 Server chỉ thực hiện việc đánh dấu xoá trên bức thư
đó Nó chỉ bị xoá thực sự sau khi phiên giao dịch chuyển sang trạng thái UPDATE
• Thông tin phản hồi:
+OK message deleted
-ERR no such message
• Hạn chế: chỉ có thể thực hiện trong trạng thái TRANSACTION
• Chi tiết: lệnh này dùng để xác nhận kết nối với POP3 Server POP3 Server không
làm gì cả mà chỉ gửi trả lại ”+OK” cho Client
• Thông tin phản hồi:
+OK
Ví dụ:
C: NOOP
S: +OK
Trang 369.2.4.6 Lệnh LAST
• Tham số: không
• Hạn chế: chỉ được thực hiện trong trạng thái TRANSACTION
• Chi tiết: POP3 server đặt một trả lời xác định với dòng chứa số thông điệp cao
nhất hiện tại mà nó được truy cập trong maildrop Trong trường hợp còn đang ở trong trạng thái TRANSACTION mà các thư đã bị đánh dấu xóa chưa có lệnh RSET thì số thư hiện có trong maildrop vẫn không thay đổi tính luôn cả các thư
đã được đánh dấu xoá
• Thông tin phản hồi:
+OK nn
Ví dụ:
C: STAT S: +OK 4 320
• Hạn chế: chỉ có thể thực hiện trong trạng thái TRANSACTION
• Chi tiết: lệnh này dùng để khôi phục lại những thư đã bị đánh dấu xóa Nếu thực
hiện được POP3 Server sẽ gửi trả thông tin phản hồi ”+OK” để xác nhận đã bỏ đánh dấu đối với những thư đã bị đánh dấu xóa Trong trường hợp có lỗi, POP3 Server sẽ gửi trả lời ”-ERR”
• Thông tin phản hồi:
+OK
Trang 37• Lệnh QUIT
• Tham số: không
• Hạn chế: không
• Chi tiết: Lệnh này dùng để kết thúc phiên giao dịch một cách hợp lệ POP3 Server
sẽ xóa vật lý tất cả thư đã bị đánh dấu xóa trong mailbox Sau đó, nó sẽ gỡ bỏ khóa đối với mailbox đó và có một thông tin phản hồi để xác nhận thao tác này Kết nối TCP sẽ kết thúc
• Thông tin phản hồi:
Ví dụ về một phiên giao dịch POP3
S: <wait for connection on TCP port 110>
Trang 38S: <wait for next connection>
9.3 IMAP (Internet Message Access Protocol)
- 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ản 4( 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ó cho phép chương trình thư điện tử dùng cho máy khách - như Netscape Mail, Eudora của Qualcomm, Lotus Notes hay Microsoft Outlook - lấy thông điệp từ xa trên máy chủ 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ện thoạ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 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ên thông điệp
- IMAP4rev1 được kế thừa từ [IMAP2] tuy nhiên trong giao thức IMAP4rev1 khô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ác thô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 cho phé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ét phầ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 được lưu trữ cục bộ trong khi thực
Trang 39tế 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ụng thông qua các lệnh truy suất mà IMAP4rev1 đã định dạng sẵn trong giao thức IMAP 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
Các lệnh của IMAP4:
- Những tập lệnh của IMAP4rev1 được định nghĩa trong rfc2060 cũng nhưng quá trình bắt đầu và kết thúc của một phiên làm việc Vì trong chương trình em chỉ sử dụng một số lệnh cơ bản trong bộ giao thức này, dưới đây là ý nghĩ cũng như cách sử dụng chúng
♦ CAPABILITY
- Arguments: none
- 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ào muốn lấy mail từ trình chủ bằng giao thức IMAP, mục đích là kiểm tra version giao thức có đáp ứng được yêu cầu không Version hiện nay đang dùng là IMAP4(IMAP4rev1)
Ví dụ C: abcd CAPABILITY
S: * CAPABILITY IMAP4rev1
S: abcd OK CAPABILITY completed
♦ 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
Ví dụ C: a001 LOGIN tuyentm01 kimphung
S: a001 OK LOGIN completed
♦ 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ện hay chưa, nếu thực hiện rồi trả về OK
♦ SELECT
- Arguments: mailbox name (tên hòm thư)
Trang 40- 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ồm thư mới, thư đọc rồi và thư đã xoá Lệnh này cho phép ta thay đổi thuộc tính của hò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
Ví dụ C: A142 SELECT INBOX
S: * 172 EXISTS
S: * 1 RECENT
S: * OK [UNSEEN 12] Message 12 is first unseen
S: * OK [UIDVALIDITY 3857529045] UIDs valid
S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S: * OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited
S: A142 OK [READ-WRITE] SELECT completed
- Trong ví dụ trên chúng ta quan tâm các thông số sau:
9 EXISTS : tổng số lá thư mà hòm thư này lưu trữ ví dụ trên là 172 lá thư
9 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
9 UNSEEN : là tổng số lá thư củ mà người dùng chỉ nhìn thấy nhưng nội dung chưa xem qua
9 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 data item names nhưng thông số này phải tuân theo RFC822 được trình bày ở trên