Đồ án Dịch vụ thư tín điện tử và cài đặt một chương trình mang tính thử nghiệm do dịch vụ thư tín điện tử

Tài liệu Đồ án Dịch vụ thư tín điện tử và cài đặt một chương trình mang tính thử nghiệm do dịch vụ thư tín điện tử: ĐỒ ÁN: Dịch vụ thư tín điện tử và cài đặt một chương trình mang tính thử nghiệm do dịch vụ thư tín điện tử [Year ] [Pick the date] LỜI CẢM ƠN Trước hết tôi xin chân thành cảm ơn các thầy cô giáo khoa Đại học Đại Cương của trường Đại học Thuỷ Sản Nha Trang và khoa Công Nghệ Thông Tin trường Đại học Bách Khoa Hà Nội đã 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 đồ án này. Em xin chân thành cảm ơn thầy Văn Thế Minh đã tận tình giúp đỡ và hướng dẫn em hoàn tất cuốn đồ á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 đồ á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 đồ á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 tro...

pdf151 trang | Chia sẻ: haohao | Lượt xem: 1169 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đồ án Dịch vụ thư tín điện tử và cài đặt một chương trình mang tính thử nghiệm do dịch vụ thư tín điện tử, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐỒ ÁN: Dịch vụ thư tín điện tử và cài đặt một chương trình mang tính thử nghiệm do dịch vụ thư tín điện tử [Year ] [Pick the date] LỜI CẢM ƠN Trước hết tôi xin chân thành cảm ơn các thầy cô giáo khoa Đại học Đại Cương của trường Đại học Thuỷ Sản Nha Trang và khoa Công Nghệ Thông Tin trường Đại học Bách Khoa Hà Nội đã 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 đồ án này. Em xin chân thành cảm ơn thầy Văn Thế Minh đã tận tình giúp đỡ và hướng dẫn em hoàn tất cuốn đồ á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 đồ á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 đồ á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 đồ án này. MỤC LỤC PHẦN 1 : CƠ SỞ LÝ THUYẾT .................................................................................. 9 CHƯƠNG 1 : GIỚI THIỆU CHUNG VỀ INTERNET VÀ MỘT SỐ GIAO THỨC TRUYỀN THÔNG TRÊN INTERNET ................................................................... 9 1.1. GIỚI THIỆU CHUNG VỀ INTERNET ....................................................... 9 1.2. HỌ GIAO THỨC TCP/IP ........................................................................... 10 1.3. GIAO THỨC LIÊN MẠNG IP ................................................................... 11 1.4. GIAO THỨC ĐIỀU KHIỂN TRUYỀN TCP ............................................. 20 CHƯƠNG 2 : CƠ SỞ VỀ LẬP TRÌNH MẠNG TRN MƠ HÌNH CLIENT/SERVER .............................................................................................................................. 23 2.1. LẬP TRÌNH GIAO TIẾP MẠNG VỚI WINDOWS SOCKETS ................. 23 2.2. MỘT SỐ KHÁI NIỆM CƠ BẢN ................................................................ 23 2.2.1.Địa chỉ Internet ................................................................................... 23 2.2.2. Khái niệm socket và port .................................................................. 24 2.3. CÁCH CÀI ĐẶT ỨNG DỤNG CLIENT/SERVER TCP ........................... 24 2.3.1. Cách cài đặt server TCP ................................................................... 24 2.3.2. Cách cài đặt client TCP ................................................................... 25 CHƯƠNG 3 : MỘT SỐ KHÁI NIỆM LIÊN QUAN ĐẾN THƯ ĐIỆN TỬ ........... 26 1.1. MAILSERVER ........................................................................................... 26 1.2. GIAO THỨC GỬI MAIL (MAIL TRANSPORT PROTOCOL) ................. 27 1.3.GIỚI THIỆU KIẾN TRÚC DỊCH VỤ THƯ ĐIỆN TỬ................................ 27 1.3.1. Kin trĩc vµ c¸c dÞch vơ ..................................................................... 27 1.3.2. T¸c nh©n ng­i sư dơng (The User Agent) ......................................... 30 1.3.2.1.Gửi thư (Sending Email) ................................................................ 30 1.3.2.2. Đọc thư (Reading Email) ............................................................... 31 1.3.2.3.Định dạng thông điệp (Message Formats)....................................... 33 1.3.2.4.Chuẩn RFC 822 .............................................................................. 33 1.4.PHÂN TÍCH CẤU TRÚC THƯ ĐIỆN TỬ, CÁC GIAO THỨC SMTP VÀ POP3 ................................................................................................................. 37 1.4.1.Phân tích cấu trúc thư điện tử (RFC 822) .......................................... 37 1.4.1.1. Giíi thiƯu ..................................................................................... 37 1.4.1.2. Mô tả về cấu trúc thư ..................................................................... 38 1.4.2. §Þnh ngha vỊ c¸c tr­ng Header ......................................................... 39 1.4.3. C¸c tr­ng header ®iĨn h×nh .............................................................. 40 1.4.4. VÝ dơ vỊ cu trĩc th­ ........................................................................... 42 1.5. PHÂN TÍCH GIAO THỨC SMTP (RFC 821) ............................................ 43 1.5.1. Giíi thiƯu chung ................................................................................ 43 1.5.2. M« h×nh ho¹t ®ng phiªn giao dÞch .................................................. 43 1.5.3. Thđ tơc Mail ...................................................................................... 45 1.5.4. Thđ tơc Forwarding ........................................................................... 49 1.5.5. C¸c thđ tơc Mailing vµ Sending ......................................................... 50 1.5.6. C¸c thđ tơc Opening vµ Closing ........................................................ 52 1.5.7. M· tr¶ li cđa c¸c c©u lƯnh SMTP ..................................................... 53 1.6. PHÂN TÍCH GIAO THỨC POP3 (RFC 1081,1082) .................................. 55 1.6.1. Giíi thiƯu ........................................................................................... 55 1.6.2. M« h×nh ho¹t ®ng phiªn giao dÞch .................................................. 55 1.6.3. Tr¹ng th¸i AUTHORIZATION ......................................................... 57 1.6.4. Tr¹ng th¸i TRANSACTION .............................................................. 60 1.6.5. Tr¹ng th¸i UPDATE .......................................................................... 66 1.6.6. VÝ dơ vỊ mt phiªn giao dÞch POP3 ................................................. 67 1.7. MIME (MULTIPURPOSE INTERNET MAIL EXTENSIONS) ................. 69 1.8.POP BEFORE SMTP(CHỨNG THỰC QUYỀN TRUY CẬP THEO GIAO THỨC POP TRƯỚC KHI SỬ DỤNG SMTP) ................................................... 72 1.9.MAIL CLIENT, WEB MAIL ...................................................................... 73 CHƯƠNG 4 : GIỚI THIỆU VỀ CÁC CÔNG NGHỆ LIÊN QUAN ...................... 73 2.1.GIỚI THIỆU VỀ JRUN WEBSERVER 3.1 ................................................. 73 2.2.GIỚI THIỆU VỀ SQL SERVER 7.0 ............................................................ 74 2.2.1. Lý thuyết hệ quản trị cơ sở dữ liệu sql server 7.0 và Cấu trúc cơ sở dữ liệu của sql server 7.0 ............................................................................. 74 2.2.2. Cấu trúc cơ sở dữ liệu vật lý: ............................................................. 75 2.2.2.1. Trang (page): ................................................................................. 75 2.2.2.2 .Extent: ........................................................................................... 76 2.2.2.3 Những loại file trong CSDL:SQL Server có 3 loại file: .................. 76 2.3. LÝ THUYẾT MƠ HÌNH QUAN HỆ .......................................................... 77 2. 3.1. Các khái niệm cơ bản ........................................................................ 77 2.3.2. Khái Niệm phụ thuộc dữ liệu và các dạng chuẩn ............................. 77 2.3.3 Khái niệm chỉ dẫn và khóa chỉ dẫn .................................................... 78 2.4.GIỚI THIỆU VỀ JAVA SERVLET ............................................................ 78 2.4.1.Khái niệm về JAVA SERVLET ......................................................... 78 2.4.2.Những ứng dụng thực tế của JAVA SERVLET và kiến trúc của JAVA SERVLET ......................................................................................... 79 2.5.GIỚI THIỆU VỀ JAVA SERVER PAGES(JSP) ......................................... 79 2.5.1.Khái niệm về JSP ................................................................................ 79 2.5.2.Quan hệ giữa Servlet và JSP .............................................................. 80 2.5.2.1.Cch trình chủ biên dịch trang JSP thành servlet .............................. 80 2.5.2.2. So sánh giữa Servlet và JSP ........................................................... 80 2.6. GIỚI THIỆU VỀ JAVABEANS ................................................................. 81 2.6.1.Khái niệm về JAVABEANS................................................................ 81 2.6.2.Các thẻ chuẩn của JAVABEANS trong trang JSP ........................... 82 2.6.2.1. ................................................................................ 82 2.6.2.2. ........................................................................... 83 2.6.2.3. .......................................................................... 84 2.6.3.Thêm JAVABEANS vào JSP .............................................................. 84 PHẦN 2 : XÂY DỰNG ỨNG DỤNG ....................................................................... 85 CHƯƠNG 1 PHÂN TÍCH BÀI TOÁN .................................................................. 85 1.1.TÊN ĐỀ TÀI ............................................................................................... 85 1.2.DỀ CƯƠNG CHI TIẾT ............................................................................... 86 1.2.1.Khảo sát ............................................................................................... 86 1.2.2.Yêu cầu của bài toán ........................................................................... 86 1.2.3.Dữ liệu vào, dữ liệu ra và các chức năng xử lý của hệ thống ............ 87 1.2.4. Chức năng của hệ thống thông tin quản lý ....................................... 87 1.3. LÝ DO CHỌN ĐỀ TÀI .............................................................................. 88 CHƯƠNG 2 : THIẾT KẾ VÀ CÀI ĐẶT ỨNG DỤNG ......................................... 88 2.1.PHÂN TÍCH VÀ THẾT KẾ CƠ SỞ DỮ LIỆU ............................................ 88 2.1.1.Phân tích .............................................................................................. 88 2.1.2. Giải thích các chức năng của hệ thống .............................................. 90 2.1.3.biểu đồ luồng dữ liệu( DFD – Data flow Diagram) ............................ 91 2.1.4. THIẾT KẾ HỆ THỐNG .................................................................... 91 2.1.4.1. Các bảng dữ liệu chính .................................................................. 91 2.2. CÀI ĐẶT MAILSERVER .......................................................................... 94 2.2.1.Phương án tổ chức lưu trữ mail trên Server ...................................... 94 2.2.2.Các đơn thể của mailserver ................................................................ 95 2.2.2.1. Xây dựng SMTP Server ................................................................ 95 2.2.2.2. Xây dựng POP3 Server................................................................ 118 2.3.CÀI ĐẶT MAILCLIENT .......................................................................... 143 Một số giao diện chính ................................................................................. 149 LỜI NÓI ĐẦU Ngà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. 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. Nhằm mục đích hiểu rõ hơn về hoạt động bên trong của ứng dụng Email ở phần cung cấp dịch vụ mà thường được gọi là Mail Server, trong cuốn đồ án này tôi xin trình bày một cách cơ bản hệ thống phục vụ việc truyền thư tín điện tử trên cơ sở tìm hiểu về các mô hình truyền thông thư tín, các giao thức truyền thông chuẩn, các hoạt động của một hệ Mail Server. Vì thời gian có hạn và có rất nhiều các vấn đề có liên quan, do đó đồ án này chỉ trình bày những vấn đề cơ bản nhất về dịch vụ thư tín điện tử và cài đặt một chương trình mang tính thử nghiệm do dịch vụ thư tín điện tử mà thôi. PHẦN 1 : CƠ SỞ LÝ THUYẾT CHƯƠNG 1 : GIỚI THIỆU CHUNG VỀ INTERNET VÀ MỘT SỐ GIAO THỨC TRUYỀN THÔNG TRÊN INTERNET 1.1. GIỚI THIỆU CHUNG VỀ INTERNET M¹ng Internet lµ mt tp hỵp gm hµng v¹n hƯ m¹ng trªn kh¾p th giíi, ®­ỵc ph¸t triĨn vµo thp k b¶y m­¬i. S l­ỵng m¸y tÝnh ni m¹ng vµ s l­ỵng ng­i truy cp vµo m¹ng Internet trªn toµn th giíi ®ang ngµy cµng t¨ng lªn nhanh chng, ®Ỉc biƯt t n¨m 1993 tr ®i. M¹ng Internet kh«ng ch cho phÐp chuyĨn t¶i th«ng tin nhanh chng mµ cßn giĩp cung cp th«ng tin, n cịng lµ diƠn ®µn vµ lµ th­ viƯn toµn cÇu ®Çu tiªn. M¹ng Internet c xut x n¨m 1969 t m¹ng m¸y tÝnh toµn cơc ARPANET do c¬ quan qu¶n lý c¸c d ¸n nghiªn cu c¸c c«ng tr×nh nghiªn cu khoa hc tiªn tin thuc B Quc phßng M (US Defense’s Advance Research Projects Agency ­ gi t¾t lµ DARPA) tµi trỵ. T gi÷a n¨m 1970, trung t©m DARPA h­íng tíi m¹ng Internet víi k thut chuyĨn m¹ch gi qua m¹ng v« tuyn vµ th«ng tin vƯ tinh. N¨m 1980, DARPA thư nghiƯm dng giao thc TCP/IP vµ ®· ®­ỵc c¸c tr­ng ®¹i hc M ghÐp ni víi hƯ ®iỊu hµnh UNIX BSD (Berkely Software Distribution). HƯ ®iỊu hµnh UNIX lµ hƯ ph¸t triĨn m¹nh víi rt nhiỊu c«ng cơ hç trỵ vµ ®¶m b¶o c¸c phÇn mỊm ng dơng c thĨ chuyĨn qua l¹i trªn c¸c h m¸y kh¸c nhau (m¸y mini, m¸y tÝnh lín vµ hiƯn nay lµ m¸y vi tÝnh). Bªn c¹nh ® hƯ ®iỊu hµnh UNIX BSD cßn cung cp nhiỊu thđ tơc Internet c¬ b¶n, ®­a ra kh¸i niƯm Socket vµ cho phÐp ch­¬ng tr×nh ng dơng th©m nhp vµo Internet mt c¸ch dƠ dµng. Cu trĩc m¹ng Internet gm c:  TÇng ng dơng: TELNET, FTP, SMTP;  TÇng giao vn: TCP, UDP;  TÇng Internet: Internet Protocol;  TÇng m¹ng: X.25, Ethernet, FDDI. . .;  TÇng vt lý: lµ c¸c m«i tr­ng truyỊn tin kh¸c nhau. 1.2. HỌ GIAO THỨC TCP/IP TCP/IP lµ h cđa c¸c giao thc ®­ỵc sư dơng cho viƯc truyỊn th«ng m¸y tÝnh. C¸c ch÷ c¸i ®­ỵc vit t¾t bi c¸c t (Transmission Control Protocol/Internet Protocol), hai giao thc nµy c c¸ch biĨu diƠn kh¸c nhau, ng­i ta Ýt khi sư dơng víi c¸i tªn ®Çy ®đ cđa hai giao thc nµy. Th­ng c¸c giao thc ®­ỵc nhm l¹i thµnh c¸c h (®«i khi cßn ®­ỵc gi lµ c¸c suites hay c¸c stacks). C¸c giao thc nµo ®­ỵc nhm l¹i víi nhau th­ng ®­ỵc x¸c ®Þnh bi c¸c b cµi ®Ỉt cđa giao thc. H giao thc TCP/IP bao gm c¸c giao thc nh­ lµ IP (Internet Protocol) , ARP (Address Resolution Protocol), ICMP (Internet Control Message Protocol), UDP (User Datagram Protocol), TCP (Transport Control Protocol), RIP (Routing Information Protocol), Telnet, SMTP (Simple Mail Transfer Protocol), DNS (Domain Name System) vµ mt s c¸c giao thc kh¸c. H×nh bªn d­íi m« t¶ kin trĩc cđa m¹ng TCP/IP c so s¸nh víi m« h×nh tham chiu OSI ®Ĩ chĩng ta h×nh dung ®­ỵc s t­¬ng ng vỊ chc n¨ng cđa c¸c tÇng. TCP/IP thc cht lµ mt h giao thc cng lµm viƯc víi nhau ®Ĩ cung cp ph­¬ng tiƯn truyỊn th«ng liªn m¹ng. Trong phÇn nµy chĩng ta s xem xÐt giao thc IP, giao thc TCP vµ mt s ng dơng tÇng trªn nh­ Telnet, FTP, DNS, SMTP. . . 1.3. GIAO THỨC LIÊN MẠNG IP Mơc ®Ých chÝnh cđa IP lµ cung cp kh¶ n¨ng kt ni c¸c m¹ng con thµnh liªn m¹ng ®Ĩ truyỊn d÷ liƯu. Vai trß cđa IP t­¬ng t vai trß cđa giao thc tÇng m¹ng trong m« h×nh OSI. IP lµ mt giao thc kiĨu ”kh«ng liªn kt” (connectionless) c ngha lµ kh«ng cÇn c giai ®o¹n thit lp liªn kt tr­íc khi truyỊn d÷ liƯu. §¬n vÞ d÷ liƯu dng trong IP ®­ỵc gi lµ datagram, c khu«n d¹ng ch ra trong h×nh bªn d­íi. ý ngha cđa c¸c tham s nh­ sau:  VER (4 bits): ch version hiƯn hµnh cđa IP ®­ỵc cµi ®Ỉt TCP/IP Protocol Suite OSI Model Layers Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer TCP/IP Protocol Architecture Layers Application Layer Host­to­Host Transport Layer Internet Layer Network Interface Layer Telnet FTP SMTP DNS RIP SNMP TCP UDP IP ARP IGMP ICMP Ethernet Token Ring Frame Relay ATM So s¸nh c¸c kin trĩc ISO vµ TCP/IP 0 1 2 3 4 5 6 7  IHL (4 bits): ch ® dµi phÇn ®Çu (Internet Header Length) cđa datagram, tÝnh theo ®¬n vÞ t (word = 32 bits). § dµi ti thiĨu lµ 5 t (20 bytes). VE R I H L Type of Service Total Length Indentification Fl ag s Fragment offset Time to live Protocol Header Checksum Source Address Destination Address Options + Padding Data (max: 65.535 bytes)  Type of service (8 bits): ®Ỉc t¶ c¸c tham s vỊ dÞch vơ, c d¹ng cơ thĨ nh­ sau: Header 0 3 4 7 8 15 16 31 Khu«n d¹ng cđa IP datagram Precede nce D T R Rese rved trong ®: Precedence (3 bits): ch thÞ vỊ quyỊn ­u tiªn gưi datagram, cơ thĨ lµ: 111 ­ Network Control (cao nht) 011 ­ Flash 110 ­ Internetwork Control 010 ­ Immediate 101 ­ CRITIC/ECP 001 ­ Priority 100 ­ Flas Override 000 ­ Routine (thp nht) D (Delay) (1 bit): ch ® trƠ yªu cÇu D = 0 ® trƠ b×nh th­ng D = 1 ® trƠ thp T (Throughput) (1 bit): ch th«ng l­ỵng yªu cÇu T = 0 th«ng l­ỵng b×nh th­ng T = 1 th«ng l­ỵng cao R (Reliability) (1 bit): ch ® tin cy yªu cÇu R = 0 ® tin cy b×nh th­ng R = 1 ® tin cy cao  Total Length (16 bits): ch ® dµi toµn b datagram, kĨ c¶ phÇn header (tÝnh theo ®¬n vÞ bytes).  Indentification (16 bits): cng víi c¸c tham s kh¸c (nh­ Source Address vµ Destination Address) tham s nµy dng ®Ĩ ®Þnh danh duy nht cho mt datagram trong kho¶ng thi gian n vn cßn trªn liªn m¹ng.  Flags (3 bits): liªn quan ®n s ph©n ®o¹n (fragment) c¸c datagram, cơ thĨ lµ: 0 D F M F Bit 0: reserved ­ ch­a sư dơng , lu«n ly gi¸ trÞ 0 Bit 1 (DF) = 0 (May Fragment) = 1 (Don’t Fragment) Bit 2 (MF) = 0 (Last Fragment) = 1 (More Fragment)  Fragment Offset (13 bits): ch vÞ trÝ cđa ®o¹n (fragment) trong datagram, tÝnh theo ®¬n vÞ 64 bits, c ngha lµ mçi ®o¹n (tr ®o¹n cui cng) ph¶i cha mt vng d÷ liƯu c ® dµi lµ bi s cđa 64 bits.  Time to live (8 bits): qui ®Þnh thi gian tn t¹i (tÝnh b»ng gi©y) cđa datagram trong liªn m¹ng ®Ĩ tr¸nh t×nh tr¹ng mt datagram bÞ qun trªn liªn m¹ng. Thi gian nµy ®­ỵc cho bi tr¹m gưi vµ ®­ỵc gi¶m ®i (th­ng qui ­íc lµ 1 ®¬n vÞ) khi datagram ®i qua mçi router cđa liªn m¹ng.  Protocol (8 bits): ch giao thc tÇng trªn k tip s nhn vng d÷ liƯu tr¹m ®Ých (hiƯn t¹i th­ng lµ TCP hoỈc UDP ®­ỵc cµi ®Ỉt trªn IP). 0 1 2  Header Checksum (16 bits): m· kiĨm so¸t lçi 16 bits theo ph­¬ng ph¸p CRC, ch cho vng header.  Source Address (32 bits): ®Þa ch cđa tr¹m ngun.  Destination Address (32 bits): ®Þa ch cđa tr¹m ®Ých.  Options (® dµi thay ®ỉi): khai b¸o c¸c options do ng­i gưi yªu cÇu.  Padding (® dµi thay ®ỉi): vng ®Ưm, ®­ỵc dng ®Ĩ ®¶m b¶o cho phÇn header lu«n kt thĩc mt mc 32 bits.  Data (® dµi thay ®ỉi): vng d÷ liƯu, c ® dµi lµ bi s cđa 8 bits, vµ ti ®a lµ 65535 bytes. S¬ ® ®Þa ch ho¸ ®Ĩ ®Þnh danh c¸c tr¹m (host) trong liªn m¹ng ®­ỵc gi lµ ®Þa ch IP 32 bits (32­ bit­ IP address). Mçi ®Þa ch IP c ® dµi 32 bits ®­ỵc t¸ch thµnh 4 vng (mçi vng 1 byte), c thĨ ®­ỵc biĨu thÞ d­íi d¹ng thp ph©n, b¸t ph©n, thp lơc ph©n hoỈc nhÞ ph©n. C¸ch vit phỉ bin nht lµ dng ký ph¸p thp ph©n c du chm (dotted decimal notation) ®Ĩ t¸ch c¸c vng. Mơc ®Ých cđa ®Þa ch IP lµ ®Ĩ ®Þnh danh duy nht cho mt host bt k trªn liªn m¹ng. Do tỉ chc vµ ® lín cđa c¸c m¹ng con (subnet) cđa liªn m¹ng c thĨ kh¸c nhau, ng­i ta chia c¸c ®Þa ch IP thµnh 5 líp, ký hiƯu lµ A, B, C, D vµ E, víi cu trĩc ®­ỵc ch ra trong h×nh bªn d­íi. 0 1 7 8 15 16 23 24 31 netid netid Hostid hostid Líp A Líp B Líp C Líp D Líp E netid hostid Multicast address Reserved for future use Cu trĩc cđa c¸c líp ®Þa ch IP  Líp A cho phÐp ®Þnh danh tíi 126 m¹ng, víi ti ®a 16 triƯu host trªn mçi m¹ng. Líp nµy ®­ỵc dng cho c¸c m¹ng c s tr¹m cc lín.  Líp B cho phÐp ®Þnh danh tíi 16384 m¹ng, víi ti ®a 65534 host trªn mçi m¹ng.  Líp C cho phÐp ®Þnh danh tíi 2 triƯu m¹ng, víi ti ®a 254 host trªn mçi m¹ng. Líp nµy ®­ỵc dng cho c¸c m¹ng c Ýt tr¹m.  Líp D dng ®Ĩ gưi IP datagram tíi mt nhm c¸c host trªn mt m¹ng.  Líp E d phßng ®Ĩ dng trong t­¬ng lai. VÝ dơ: 0000 0000 0000 0000 = 10.0.0.0 (Líp A) netid = 10 = 128.3.2.3 (Líp B) netid = 128.3 hostid = 2.3 = 192.0.1.255 (Líp C) netid = 192.0.1 hostid = 255 h­íng ®n tt c¶ c¸c host 0 0 31 31 (Líp A) (Líp B) (Líp C) 1010 0000 0000 0000 1000 0000 0000 0011 0000 0010 0000 0011 1100 0000 0000 0000 0000 0001 1111 1111 Mt ®Þa ch c hostid (host identifier) b»ng 0 ®­ỵc dng ®Ĩ h­íng tíi m¹ng ®Þnh danh bi vng netid (network identifier). Ng­ỵc l¹i, mt ®Þa ch c vng hostid gm toµn s 1 ®­ỵc dng ®Ĩ h­íng tíi tt c¶ c¸c host ni vµo m¹ng netid, vµ nu vng netid cịng gm toµn s 1 th× n h­íng tíi tt c¶ c¸c host trong liªn m¹ng. Trong nhiỊu tr­ng hỵp, mt m¹ng c thĨ ®­ỵc chia thµnh nhiỊu m¹ng con (subnet), lĩc ® c thĨ ®­a thªm c¸c vng subnetid ®Ĩ ®Þnh danh c¸c m¹ng con. Vng subnet ®­ỵc ly t hostid, cơ thĨ ®i víi 3 líp A, B, C nh­ sau (h×nh bªn d­íi). Netid Subnetid Hostid 7 8 15 16 23 24 Netid Subnetid Hostid 7 8 15 16 23 24 Netid Sub neti d Ho stid Bỉ sung vng subnetid CÇn l­u ý r»ng c¸c ®Þa ch IP ®­ỵc dng ®Ĩ ®Þnh danh c¸c host vµ m¹ng tÇng m¹ng cđa M« h×nh OSI, vµ chĩng kh«ng ph¶i lµ c¸c ®Þa ch vt lý (hay ®Þa ch MAC ­ Media Access Control) cđa c¸c tr¹m ® trªn mt m¹ng cơc b (Ethernet,Token Ring...). Trªn mt m¹ng cơc b nh­ vy, hai tr¹m ch c thĨ liªn l¹c víi nhau nu chĩng bit ®Þa ch vt lý cđa nhau. Nh­ vy, vn ®Ị ®Ỉt ra lµ ph¶i thc hiƯn ¸nh x¹ gi÷a ®Þa ch IP (32 bits) vµ ®Þa ch vt lý (48 bits) cđa mt tr¹m. Giao thc ARP (Address Resolution Protocol) ®· ®­ỵc x©y dng ®Ĩ chuyĨn ®ỉi t ®Þa ch IP sang ®Þa ch vt lý khi cÇn thit. Ng­ỵc l¹i, giao thc RARP (Reverse Address Resolution Protocol) ®­ỵc dng ®Ĩ chuyĨn ®ỉi t ®Þa ch vt lý sang ®Þa ch IP. Chĩ ý r»ng c¶ ARP vµ RARP ®Ịu kh«ng ph¶i lµ b phn cđa IP. IP s dng ®n chĩng khi cÇn. Mt giao thc kh¸c cịng liªn quan trc tip ®n IP, ® lµ ICMP (Internet Control Message Protocol). Giao thc nµy thc hiƯn truyỊn c¸c th«ng b¸o ®iỊu khiĨn (b¸o c¸o vỊ c¸c t×nh tr¹ng lçi trªn m¹ng,...) gi÷a c¸c gateway hoỈc tr¹m cđa liªn m¹ng. T×nh tr¹ng lçi c thĨ lµ: mt datagram kh«ng thĨ tíi ®­ỵc ®Ých cđa n, hoỈc mt router kh«ng ®đ b nhí ®Ưm ®Ĩ l­u vµ chuyĨn mt datagram,... Mt th«ng b¸o ICMP ®­ỵc t¹o vµ chuyĨn cho IP. IP s ”bc” (encapsulate) th«ng b¸o ® víi mt IP header vµ truyỊn ®n cho router hoỈc tr¹m ®Ých. Chĩng ta c thĨ tm t¾t c¸c b­íc thc hiƯn bi mt thc thĨ IP nh­ sau:  §i víi thc thĨ IP tr¹m ngun, khi nhn ®­ỵc mt primitive SEND t tÇng trªn , n thc hiƯn c¸c b­íc sau ®©y: 1. T¹o mt IP datagram da trªn c¸c tham s cđa primitive SEND 2. TÝnh checksum vµ ghÐp vµo header cđa datagram. 3. Ra quyt ®Þnh chn ®­ng: hoỈc lµ tr¹m ®Ých n»m trªn cng m¹ng hoỈc mt gateway s ®­ỵc chn cho chỈng tip theo. 4. ChuyĨn datagram xung tÇng d­íi ®Ĩ truyỊn qua m¹ng.  §i víi gateway, khi nhn ®­ỵc mt datagram qu¸ c¶nh, n thc hiƯn c¸c ®ng t¸c sau: 1. TÝnh checksum, nu bt cp th× lo¹i b datagram. 2. Gi¶m gi¸ trÞ cđa tham s Time­to­Live. Nu thi gian ®· ht th× lo¹i b datagram. 3. Ra quyt ®Þnh chn ®­ng. 4. Ph©n ®o¹n datagram, nu cÇn. 5. Kin t¹o l¹i IP header, bao gm gi¸ trÞ míi cđa c¸c vng Time­to­Live, Fragmentation vµ Checksum. 6. ChuyĨn datagram xung tÇng d­íi ®Ĩ truyỊn qua m¹ng.  Cui cng, khi mt datagram ®­ỵc nhn bi thc thĨ IP tr¹m ®Ých, n s thc hiƯn c¸c c«ng viƯc sau: 1. TÝnh checksum. Nu bt cp th× lo¹i b datagram. 2. Tp hỵp c¸c ®o¹n cđa datagram (nu c ph©n ®o¹n). 3. ChuyĨn d÷ liƯu vµ c¸c tham s ®iỊu khiĨn lªn tÇng trªn b»ng c¸ch dng primitive DELIVER. 1.4. GIAO THỨC ĐIỀU KHIỂN TRUYỀN TCP Source Port Destination Port Sequence Number Acknowledgment Number D a t a o f f s e t Rese rved Window Checksum Urgent Pointer Options Padding TCP data bit 0 15 16 31 Khu«n d¹ng cđa TCP segment. TCP lµ mt giao thc kiĨu ”c liªn kt” (connection ­ oriented), ngha lµ cÇn ph¶i thit lp liªn kt (logic) gi÷a mt cỈp thc thĨ TCP tr­íc khi chĩng trao ®ỉi d÷ liƯu víi nhau. §¬n vÞ d÷ liƯu sư dơng trong TCP ®­ỵc gi lµ segment (®o¹n d÷ liƯu), c khu«n d¹ng m« t¶ trong h×nh bªn d­íi. C¸c tham s trong khu«n d¹ng trªn c ý ngha nh­ sau:  Source Port (16 bits): s hiƯu cỉng cđa tr¹m ngun.  Destination Port (16 bits): s hiƯu cỉng cđa tr¹m ®Ých.  Sequence Number (32 bits): s hiƯu cđa byte ®Çu tiªn cđa segment tr khi bit SYN ®­ỵc thit lp. Nu bit SYN ®­ỵc thit lp th× Sequence Number lµ s hiƯu tuÇn t khi ®Çu (ISN) vµ byte d÷ liƯu ®Çu tiªn lµ ISN+1. Tham s nµy c vai trß nh­ tham s N(S) trong HDLC.  Acknowledgment Number (32 bits): s hiƯu cđa segment tip theo mµ tr¹m ngun ®ang ch ®Ĩ nhn. NgÇm ý b¸o nhn tt (c¸c) segment mµ tr¹m ®Ých ®· gưi cho tr¹m ngun ­ Tham s nµy c vai trß nh­ tham s N(R) trong HDLC.  Data offset (4 bits): s l­ỵng t ­ 32 bit (32 bit words) trong TCP header (tham s nµy ch ra vÞ trÝ b¾t ®Çu cđa vng d÷ liƯu).  Reserved (6 bits): dµnh ®Ĩ dng trong t­¬ng lai.  Control bits (c¸c bit ®iỊu khiĨn): T­ tr¸i sang ph¶i: URG: vng con tr khn (Urgent Pointer) c hiƯu lc ACK: vng b¸o nhn (ACK number) c hiƯu lc PSH: chc n¨ng PUSH RST: khi ®ng l¹i (reset) liªn kt SYN: ®ng b ho¸ c¸c s hiƯu tuÇn t (sequence number) FIN: kh«ng cßn d÷ liƯu t tr¹m ngun  Window (16 bits): cp ph¸t credit ®Ĩ kiĨm so¸t lung d÷ liƯu (c¬ ch cưa sỉ). §©y chÝnh lµ s l­ỵng c¸c byte d÷ liƯu, b¾t ®Çu t byte ®­ỵc ch ra trong vng ACK number, mµ tr¹m ngun ®· s½n sµng ®Ĩ nhn.  Checksum (16 bits): m· kiĨm so¸t lçi (theo ph­¬ng ph¸p CRC) cho toµn b segment (header + data).  Urgent Pointer (16 bits): con tr nµy tr tíi s hiƯu tuÇn t cđa byte ®i theo sau d÷ liƯu khn, cho phÐp bªn nhn bit ®­ỵc ® dµi cđa d÷ liƯu khn. Vng nµy ch c hiƯu lc khi bit URG ®­ỵc thit lp.  Options (® dµi thay ®ỉi): khai b¸o c¸c Options cđa TCP, trong ® c ® dµi ti ®a cđa vng TCP data trong mt segment.  Padding (® dµi thay ®ỉi): PhÇn chÌn thªm vµo header ®Ĩ b¶o ®¶m phÇn header lu«n kt thĩc mt mc 32 bits. PhÇn thªm nµy gm toµn s 0.  TCP data (® dµi thay ®ỉi): cha d÷ liƯu cđa tÇng trªn, c ® dµi ti ®a ngÇm ®Þnh lµ 536 bytes. Gi¸ trÞ nµy c thĨ ®iỊu chnh b»ng c¸ch khai b¸o trong vng options. Mt tin tr×nh ng dơng trong mt host truy nhp vµo c¸c dÞch vơ cđa TCP cung cp th«ng qua mt cỉng (port). Mt cỉng kt hỵp víi mt ®Þa ch IP t¹o thµnh mt socket duy nht trong liªn m¹ng. DÞch vơ TCP ®­ỵc cung cp nh mt liªn kt logic gi÷a mt cỈp socket. Mt socket c thĨ tham gia nhiỊu liªn kt víi c¸c socket xa kh¸c nhau. Tr­íc khi truyỊn d÷ liƯu gi÷a hai tr¹m cÇn ph¶i thit lp mt liªn kt TCP gi÷a chĩng vµ khi kh«ng cßn nhu cÇu truyỊn d÷ liƯu th× liªn kt ® s ®­ỵc gi¶i phng. Cịng ging nh­ c¸c giao thc kh¸c, c¸c thc thĨ tÇng trªn sư dơng TCP th«ng qua c¸c hµm dÞch vơ nguyªn thủ (service primitives), hay cßn gi lµ c¸c li gi hµm (function calls). CHƯƠNG 2 : CƠ SỞ VỀ LẬP TRÌNH MẠNG TRÊN MÔ HÌNH CLIENT/SERVER 2.1. LẬP TRÌNH GIAO TIẾP MẠNG VỚI WINDOWS SOCKETS Windows NT lµ mt hƯ ®iỊu hµnh m¹nh, cho phÐp tn dơng ti ®a kh¶ n¨ng cđa m¸y tÝnh lo¹i 32 bit, cung ng hµng lo¹t c¸c dÞch vơ m¹ng trªn m«i tr­ng Intranet vµ Internet. HiƯn nay Windows NT ®­ỵc sư dơng t­¬ng ®i phỉ bin c¸c c¬ quan; doanh nghiƯp ViƯt Nam. Giao thc truyỊn th«ng TCP/IP ®· ®­ỵc dng bi hƯ ®iỊu hµnh UNIX vµ m¹ng Internet, ®Ĩ c¸c m¸y trªn m¹ng NT c thĨ giao tip víi c¸c m¸y trªn m¹ng kh¸c, Windows NT cịng cung cp giao thc nµy. Ngoµi mt s lƯnh dng giao thc TCP/IP ®· ®­ỵc vit s½n nh­: ftp, telnet, finger..., Windows NT cho phÐp ng­i lp tr×nh ph¸t triĨn c¸c ng dơng khai th¸c k thut TCP/IP th«ng qua mt th­ viƯn tªn lµ Windows Sockets. C ba lý do chÝnh ®Ĩ ng­i lp tr×nh sư dơng k thut TCP/IP:  C thĨ vit c¸c ng dơng trªn Windows NT ®Ĩ ni vµo m¹ng UNIX vµ khai th¸c c¸c dÞch vơ c s½n trªn ®.  T¹o ra c¸c dÞch vơ trªn m¸y Windows NT ®Ĩ c¸c m¸y UNIX c thĨ khai th¸c nh÷ng dÞch vơ nµy.  Vit c¸c ch­¬ng tr×nh cho phÐp c¸c m¸y Windows NT giao tip trªn hƯ thng m¹ng Internet. 2.2. MỘT SỐ KHÁI NIỆM CƠ BẢN 2.2.1.Địa chỉ Internet Trong hƯ thng m¹ng Internet, mçi m¸y ®Ịu c mt tªn vµ mt ®Þa ch IP (cịng gi lµ ®Þa ch Internet). VÝ dơ nh­, mt m¸y NT c tªn lµ ntsvr.csc.hcmu.vn vµ ®Þa ch lµ 192.48.94.200. Tªn hay ®Þa ch IP ®Ịu x¸c ®Þnh duy nht mt m¸y trong hƯ thng m¹ng Internet. Khi lp tr×nh, chĩng ta c c¸c hµm ®Ĩ chuyĨn ®ỉi t tªn sang ®Þa ch IP vµ ng­ỵc l¹i. 2.2.2. Khái niệm socket và port Mt socket lµ mt thit bÞ truyỊn th«ng hai chiỊu t­¬ng t nh­ tp tin, chĩng ta c thĨ ®c hay ghi lªn n, tuy nhiªn mçi socket lµ mt thµnh phÇn trong mt mi ni nµo ® gi÷a c¸c m¸y trªn m¹ng m¸y tÝnh vµ c¸c thao t¸c ®c/ghi chÝnh lµ s trao ®ỉi d÷ liƯu gi÷a c¸c ng dơng trªn nhiỊu m¸y kh¸c nhau. Trong giao thc truyỊn th«ng TCP, mçi mi ni gi÷a hai m¸y tÝnh ®­ỵc x¸c ®Þnh bi mt port, kh¸i niƯm port ®©y kh«ng ph¶i lµ mt cỉng giao tip trªn thit bÞ vt lý mµ ch lµ mt kh¸i niƯm logic trong c¸ch nh×n cđa ng­i lp tr×nh, mçi port ®­ỵc t­¬ng ng víi mt s nguyªn d­¬ng. H×nh bªn d­íi minh ha c¸ch giao tip gi÷a hai m¸y tÝnh trong giao thc truyỊn th«ng TCP. M¸y A t¹o ra mt socket vµ kt buc (bind) socket nµy víi port X (tc lµ mt s nguyªn d­¬ng c ý ngha cơc b trong m¸y A), trong khi ® m¸y B t¹o mt socket kh¸c vµ mc vµo (connect) port X trong m¸y A. 2.3. CÁCH CÀI ĐẶT ỨNG DỤNG CLIENT/SERVER TCP 2.3.1. Cách cài đặt server TCP ng dơng server lµm viƯc theo qui tr×nh sau ®©y: socket socket M¸y A M¸y B Port HƯ thng m¹ng C¸c socket vµ port trong mi ni TCP Mi ni 1. Gi hµm socket ®Ĩ t¹o mt socket. 2. Gi hµm bind ®Ĩ kt buc socket víi mt port, ®i víi mçi giao thc ng chun th× s c mt h»ng s ®­ỵc ®Þnh ngha s½n trong Winsock cho port cđa giao thc ®. 3. Gi hµm listen ®Ĩ ch ®n khi c mt client ni vµo port. 4. Khi c mt client ni vµo th× hµm listen tr¶ ®iỊu khiĨn vỊ, ng dơng server gi hµm accept ®Ĩ x¸c nhn mi ni cđa client. 5. Gi c¸c hµm gưi hay nhn d÷ liƯu ®Ĩ trao ®ỉi th«ng tin víi client, vÝ dơ nh­ hµm send, recv. Sau khi ®· hoµn tt qu¸ tr×nh trao ®ỉi d÷ liƯu, ng dơng server gi hµm closesocket ®Ĩ ®ng socket ®· t¹o. 2.3.2. Cách cài đặt client TCP ng dơng client thc hiƯn c¸c b­íc sau: 1. Gi hµm socket ®Ĩ t¹o mt socket. 2. Gi hµm connect ®Ĩ ni vµo server. 3. Gi c¸c hµm gưi hay nhn d÷ liƯu ®Ĩ trao ®ỉi th«ng tin víi server, vÝ dơ nh­ c¸c hµm send, recv. 4. Sau khi ®· hoµn tt qu¸ tr×nh trao ®ỉi d÷ liƯu, ng dơng client gi hµm closesocket ®Ĩ ®ng socket ®· t¹o. H×nh minh ha c¸c b­íc cÇn thit ®Ĩ c¸c ng dơng client vµ server giao tip víi nhau nh­ sau: ng dơng Server ng dơng Client Ni vµo port cđa server T¹o mt socket Kt buc socket víi mt port (bind) §Ỉt socket tr¹ng th¸i ch client ni vµo Chp nhn kt ni cđa client ChuyĨn ®ỉi d÷ liƯu gi÷a client vµ server T¹o mt socket C¸c b­íc giao tip gi÷a client vµ server trong giao thc TCP CHƯƠNG 3 : MỘT SỐ KHÁI NIỆM LIÊN QUAN ĐẾN THƯ ĐIỆN TỬ 1.1. MAILSERVER Theo mô hình hoạt động khách chủ, trình chủ là một dịch vụ đóng vai trò người chủ phục vụ trình khách. Mail Server thật ra là một trình mở socket lắng nghe các yêu cầu (hay lệnh gửi mail) từ trình khách đưa đến. Như đã nói, mail server sẽ tiếp nhận nội dung mail, phân phối mail đến các trình chủ khác, cho phép trình khách truy cập vào máy chủ để nhận mail về, bảo vệ mail…Chính vì vậy, trước khi nhận hay gửi mail cần phải biết được địa chỉ IP của máy chủ mail server. Địa chỉ này thường được gọi là mail host. Về khái niệm socket và địa chỉ IP sẽ được trình bày ở phần sau. 1.2. GIAO THỨC GỬI MAIL (MAIL TRANSPORT PROTOCOL) Để gửi mail đến máy chủ, trình khách phải sử dụng một giao thức trò chuyện với mail server. Tương tự trình duyệt dùng giao thức HTTP để trò chuyện với trình chủ Web server. Các trình khách muốn bắt tay với trình chủ mail server và gửi mail lên máy chủ sẽ sử dụng giao thức SMTP (Simple Mail Transport Protocol). SMTP được hầu hết các mail server trên thế gới sử dụng. Địa chỉ IP của máy chủ nhận mail gửi đi thường được gọi là outgoing mail address. Trình chủ thực hiện chức năng tiếp nhận mail theo giao thức SMTP gọi là SMTP Server, trình khách dùng giao thức SMTP để gửi mail đến trình chủ mail server gọi là SMTP Client. 1.3.GIỚI THIỆU KIẾN TRÚC DỊCH VỤ THƯ ĐIỆN TỬ 1.3.1. Kin trĩc vµ c¸c dÞch vơ C¸c hƯ thng th­ ®iƯn tư th­ng bao gm hai hƯ thng con: c¸c t¸c nh©n ng­i sư dơng (the user agents ­ gi 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 ­ gi t¾t lµ MTA), n lµm nhiƯm vơ chuyĨn c¸c th«ng ®iƯp t ngun ®n ®Ých. C¸c UAs lµ c¸c ch­¬ng tr×nh cơc b hç trỵ da trªn ®iỊu khiĨn b»ng lƯnh, tr×nh ®¬n menu hay dng ph­¬ng ph¸p ® ho¹ ®Ĩ t­¬ng t¸c víi hƯ thng th­ ®iƯn tư. C¸c MTAs lµ c¸c tr×nh tiƯn Ých ho¹t ®ng ch ® nỊn (background) thc hiƯn c¸c nhiƯm vơ cÇn thit nh­ tip nhn th­ ®iƯn tư vµ chuyĨn th­ qua c¸c hƯ thng. §Ỉc biƯt, c¸c hƯ thng th­ ®iƯn tư hç trỵ n¨m chc 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¶ li. Cho phÐp bt 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Ư thng 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 cng víi mçi th«ng ®iƯp. VÝ dơ nh­, khi tr¶ li mt th«ng ®iƯp , hƯ thng 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 hi ©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 nhn. Trong phÇn nµy, viƯc chuyĨn c¸c th«ng ®iƯp yªu cÇu ph¶i thit lp mt kt ni ®n ®Ých (ng­i nhn) hay mt s thao t¸c cđa thit bÞ nh­ xut th«ng ®iƯp vµ kt thĩc viƯc kt ni. HƯ thng th­ ®iƯn tư lµm viƯc nµy mt c¸ch t ®ng mµ kh«ng cÇn c mt s can thiƯp nµo cđa ng­i sư dơng. 3. Reporting: Buc ph¶i thc hiƯn ®Ĩ b¸o cho ng­i gưi nh÷ng g× x¶y ra ®i víi th«ng ®iƯp va gưi lµ t×nh hun ®· gưi ®n ®Ých ch­a? hoỈc viƯc gưi ®· bÞ hủ 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 ®Ĩ mi 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 mt tr×nh hiĨn thÞ ®Ỉc biƯt ®Ĩ hç trỵ, vÝ dơ nh­, nu th«ng ®iƯp c d¹ng mt tƯp PostScript hay ting ni ®­ỵc s ha kÌm theo trong th«ng ®iƯp gưi ®n. 5. Disposition: Lµ b­íc cui cng liªn quan ®n nh÷ng g× ng­i nhn thc hiƯn ®i víi th«ng ®iƯp sau khi ®· nhn 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 nhn ®Ĩ ®c l¹i víi c¸c th«ng ®iƯp ®· ®­ỵc l­u l¹i, chuyĨn tip 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. Thªm vµo ® c¸c dÞch vơ nµy, hÇu ht c¸c hƯ thng th­ ®iƯn tư cung cp nhiỊu ®Ỉc tÝnh n©ng cao kh¸c nhau. Mt s ®Ỉc tÝnh tiªu biĨu nh­, khi ng­i ta mun chuyĨn th­ hay khi h ngh xa h¬n vỊ c¸c chi tit vỊ thi gian , c l h mun th­ cđa h ®­ỵc chuyĨn tip, chÝnh v× th mµ hƯ thng thc hiƯn ®iỊu nµy mt c¸ch t ®ng. HÇu ht c¸c hƯ thng cho phÐp ng­i sư dơng t¹o c¸c hp 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 hp th­, kiĨm tra c¸c ni dung hp th­, chÌn vµ xa c¸c th«ng ®iƯp khi hp th­, v..v. Nh÷ng ng­i gi¸m ®c c«ng ty th­ng cÇn gưi mt th«ng ®iƯp ®n mçi ng­i trong s nh÷ng ng­i cp d­íi, nh÷ng kh¸ch hµng, hay ®n c¸c nhµ cung cp. Th× ®iỊu nµy ®­a ra mt ý t­ng vỊ danh s¸ch th­ (mailing list), n lµ mt danh s¸ch c¸c ®Þa ch th­ ®iƯn tư. Khi mt th«ng ®iƯp ®­ỵc gưi ®n mailing list, c¸c b¶n sao ging hƯt ®­ỵc ph¸t ®n mi ng­i c ®Þa ch trªn danh s¸ch. Mt ý t­ng quan trng kh¸c lµ th­ ®iƯn tư ®­ỵc ®¨ng ký, ®Ĩ cho phÐp ng­i gưi (sender or originator) bit th­ cđa h ®· ®n. ViƯc th«ng b¸o t ®ng cđa c¸c th­ kh«ng ®­ỵc ph¸t ®i mt c¸ch lu©n phiªn ®Ĩ ng­i ta c thĨ bit. Trong bt k tr­ng hỵp nµo, ng­i gưi nªn c mt 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 mc ­u tiªn cao (high­priority email), b¶o mt th­ (secret email) c ngha lµ th«ng ®iƯp ®­ỵc m· ha tr­íc khi gưi ®i, thay ®ỉi ng­i nhn th­ (alternative recipients) nu ng­i ®Çu tiªn kh«ng c kh¶ (a (b) Envelope Messag e B od y Mr. Daniel Dumkopf 18 Willow Lane White Plains, NY 10604 United Gizmo 180 Main St Boston, MA 02120 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 $0.00 promptly.  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 $0.00 promptly. Yous truly United Gizmo En ve lo pe H ea de r Phong th­ vµ th«ng ®iƯp (a) Th­ b­u ®iƯn. (b) Th­ ®iƯn n¨ng nhn ®­ỵc, vµ c¸c kh¶ n¨ng cho c¸c c« th­ ký vn dơng th­ cđa c¸c «ng chđ cđa m×nh. HiƯn nay th­ ®iƯn tư ®­ỵc sư dơng rng 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 phc t¹p, ngay c¶ nh÷ng n¬i ph¶i mt nhiỊu thi gian míi ®n ®­ỵc. Mt s c«ng ty ®· ®¸nh gi¸ r»ng th­ ®iƯn tư ®· lµm t¨ng n¨ng sut s¶n xut cđa h lªn 30 phÇn tr¨m (Perry and Adam 1992). Mt kh¸i niƯm quan trng trong tt c¶ c¸c hƯ thng th­ ®iƯn tư hiƯn ®¹i lµ s ph©n biƯt gi÷a phong b× (envelope) vµ c¸c ni dung bªn trong cđa n. Phong b× bao bc (encapsulate) c¶ th«ng ®iƯp. N cha tt c¶ c¸c th«ng tin cÇn thit cho viƯc truyỊn t¶i th«ng ®iƯp, nh­ lµ ®Þa ch ®Ých, ® ­u tiªn, vµ mc ® b¶o mt , tt 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 tuyn ®­ng truyỊn, ®iỊu nµy cịng ging nh­ c«ng viƯc cđa b­u ®iƯn lµm. Th«ng ®iƯp bªn trong phong b× cha hai phÇn: phÇn ®Çu th­ (header) vµ phÇn th©n th­ (body). PhÇn header cha 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 nhn th­. C¸c phong b× vµ c¸c th«ng ®iƯp ®­ỵc m« t¶ trong h×nh bªn d­íi. 1.3.2. T¸c nh©n ng­i sư dơng (The User Agent) C¸c hƯ thng th­ ®iƯn tư c hai phÇn c¬ b¶n, nh­ chĩng ta ®· thy gm: phÇn UA vµ phÇn MTA. Trong phÇn nµy chĩng ta s xÐt ®n phÇn UA. Mt UA th­ng lµ mt ch­¬ng tr×nh (®«i khi ®­ỵc gi lµ b phn ®c th­) n nhn mt trong nh÷ng lƯnh kh¸c nhau nh­ lµ cho mơc ®Ých so¹n th­, nhn th­, vµ hi ®¸p c¸c th«ng ®iƯp, cịng nh­ viƯc thao t¸c trªn c¸c hp th­ (mailboxes). Mt s UA (User Agent) c giao diƯn tr×nh ®¬n (menu) hay biĨu t­ỵng (icon) kh¸ hp dn mµ n yªu cÇu sư dơng chut hoỈc chp nhn c¸c lƯnh 1 ký t t bµn phÝm c cng chc n¨ng víi menu vµ c¸c icon. 1.3.2.1.Gửi thư (Sending Email) §Ĩ gưi ®i mt th«ng ®iƯp, ng­i sư dơng ph¶i cung cp th«ng ®iƯp, ®Þa ch ®Ých vµ mt s tham s kh¸c nu c (vÝ dơ nh­ lµ mc ­u tiªn hay b¶o mt). Ng­i sư dơng c thĨ t¹o th«ng ®iƯp víi mt tr×nh so¹n th¶o v¨n b¶n kh¸c nhau, mt ch­¬ng tr×nh sư lý t hay víi b so¹n th¶o ®­ỵc x©y dng trªn UA. §Þa ch ®Ých ph¶i c mt ®Þnh d¹ng mµ lµm sao cho UA c thĨ hiĨu ®­ỵc. NhiỊu UA tip nhn c¸c ®Þa ch DNS (Domain Name System) c d¹ng mailbox@location. 1.3.2.2. Đọc thư (Reading Email) Khi UA ®­ỵc khi ®ng n kiĨm tra xem trong hp 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 mt s c¸c th«ng ®iƯp trong hp th­ hay hiĨn thÞ mt dßng v¾n t¾t cđa mçi th«ng ®iƯp vµ ch nhn lƯnh ®Ĩ xư lý. Mt vÝ dơ h×nh bªn d­íi cho thy mt viƠn c¶nh sau khi UA khi ®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 hp th­ (mailbox) gm c t¸m th«ng ®iƯp. Mçi dßng hiĨn thÞ cha mt s tr­ng ®­ỵc trÝch ra t phong th­ hay phÇn ®Çu (header) cđa tng th«ng ®iƯp ®­ỵc ®Þnh vÞ trong hp th­. Trong mt hƯ thng th­ ®iƯn tư ®¬n gi¶n, s la chn cđa c¸c tr­ng hiĨn thÞ ®­ỵc ng­i ta x©y dng thµnh mt ch­¬ng tr×nh. Trong c¸c hƯ thng phc t¹p h¬n, ng­i sư dơng c thĨ x¸c ®Þnh cho c¸c tr­ng nµo ®­ỵc hiĨn thÞ b»ng c¸ch cung cp mt hiƯn tr¹ng ng­i sư dơng (User Profile), hay mt 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 hp th­. Tr­ng th hai, lµ c¸c c c thĨ cha mt kÝ t K, c ngha lµ th«ng ®iƯp cị ®· ®­ỵc ®c k tr­íc ri vµ ®­ỵc l­u l¹i trong hp th­; kÝ t A c ngha lµ th­ nµy ®· ®­ỵc hi ©m ri; ký t F (c thĨ c), c ngha lµ th­ nµy ®­ỵc chuyĨn tip ®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. # Flags Bytes Sender Subject 1 K 1030 Asw Changes to MINIX 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 8 1204 Dmr Re: My student’s visit HiĨn thÞ c¸c ni dung cđa hp th­. Tr­ng th ba cho bit chiỊu dµi cđa th«ng ®iƯp vµ tr­ng th t­ cho bit 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 rt ®¬n gi¶n nªn tr­ng nµy c thĨ cha c¸c tªn, h tªn ®Çy ®đ, c¸c tªn vit t¾t, c¸c tªn ®¨ng nhp, hay bt c th g× mµ ng­i gưi c thĨ ®Ỉt vµo trong tr­ng nµy. Cui cng lµ tr­ng chđ ®Ị th­ (Subject) cho bit mt c©u v¾n t¾t vỊ nh÷ng g× trong ni 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¶ li cho th­ cđa h lµ kh«ng chĩ ý ®n mc ­u tiªn cao nht. Sau khi c¸c phÇn ®Çu ®· ®­ỵc hiĨn thÞ, ng­i sư dơng c thĨ thc hiƯn bt c lƯnh nµo c thĨ. Mt chn la tiªu biĨu ®­ỵc liƯt kª b¶ng bªn d­íi (h×nh bªn d­íi) lµ mt vÝ dơ khi mt ng­i sư dơng b»ng hƯ thng Mmdf cđa hƯ ®iỊu hµnh UNIX. C mt s lƯnh yªu cÇu c tham s. Ký hiƯu # c ngha lµ ch s cđa mt th«ng ®iƯp (hay c thĨ c nhiỊu th«ng ®iƯp) ®­ỵc chp nhn. T­¬ng t, mu t a c thĨ ®­ỵc sư dơng c ngha cho tt c¶ c¸c th«ng ®iƯp. 1.3.2.3.Định dạng thông điệp (Message Formats) 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ư da trªn b¶n m· ASCII sư dơng chun RFC 822 (Request for Comments). Sau ® xÐt ®n c¸c m rng ®a ph­¬ng tiƯn cho chun RFC 822. 1.3.2.4.Chuẩn RFC 822 C¸c th«ng ®iƯp bao gm mt phong b× gc (®­ỵc m« t¶ trong chun RFC 821), mt s c¸c tr­ng cho phÇn ®Çu (header), mt dßng ®Ĩ trng vµ sau ® lµ phÇn th©n (body). Mçi tr­ng header bao gm c¸c dßng v¨n b¶n ASCII cha tªn tr­ng, du hai chm, vµ cho hÇu ht c¸c tr­ng ®Ịu c mt gi¸ trÞ. RFC 822 lµ mt chun cị vµ gi÷a c¸c tr­ng header cđa phong b× (envelope) kh«ng ph©n biƯt r rµng nh­ mt chun míi kh¸c. Khi sư dơng, th«ng th­ng UA x©y dng mt th«ng ®iƯp vµ ®­a n qua b phn t¸c nh©n truyỊn th«ng ®iƯp (message transfer agents ­ MTA), ®©y n dng mt s c¸c tr­ng header ®Ĩ x©y dng mt envelope thc s, th«ng ®iƯp ®­ỵc thay ®ỉi bi c¸i cị ®i mt chĩt cng víi envelope. Command Parameter Description H # Display header(s) on the screen C Display current header only T # Type message(s) on the screen S Address Send a message F # Forward message(s) A # Answer message(s) D # Delete message(s) U # Undelete previously deleted message(s) M # Move message(s) to another mailbox K # Keep message(s) after exiting R Mailbox Read a new mailbox N Go to the next message and display it 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đ yu 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 bit ®Þa ch DNS cđa ng­i nhn ®Çu tiªn. Tr­ng hỵp nhiỊu ng­i nhn cịng c thĨ cho phÐp. Tr­ng Cc: cho bit ®Þa ch cđa nh÷ng ng­i nhn k tip (cßn gi lµ ®Þa ch ®ng gưi). Trong c¸c thut ng÷ cđa viƯc ph¸t th­, kh«ng c s ph©n biƯt gi÷a nh÷ng ng­i nhn th nht vµ ng­i nhn th hai. Thut ng÷ Cc (Carbon copy) lµ mt mu ®· ®­ỵc x¸c ®Þnh, v× m¸y tÝnh kh«ng sư dơng c¸c trang giy b¶n sao. Tr­ng Bcc: (Blind carbon copy) ging nh­ tr­ng Cc: ch tr lµ dßng nµy ®­ỵc xa khi tt c¶ c¸c b¶n sao ®­ỵc gưi ®n nh÷ng ng­i nhn ®Çu tiªn vµ ng­i nhn 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 nhm th ba mµ trong ® kh«ng c ng­i th nht vµ ng­i th hai bit. 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 C¸c tr­ng header RFC 822 liªn quan trong viƯc truyỊn th«ng ®iƯp Hai tr­ng k tip, From: vµ Sender: cho bit ®Ĩ ph©n biƯt ng­i vit vµ ng­i gưi th«ng ®iƯp. Hai tr­ng nµy hoµn toµn kh«ng ging nhau. VÝ dơ mt nhµ qu¶n trÞ doanh nghiƯp c thĨ vit mt th«ng ®iƯp nh­ng c« th­ ký lµ ng­i tht 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 Mt 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 nu viƯc vit vµ gưi cng mt ng­i. C¸c tr­ng nµy cÇn thit 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 cha tr­ng Received: ®­ỵc ®­a vµo bi c¸c MTAs dc theo ®­ng truyỊn. Dßng nµy cha ®Þnh danh cđa agent, ngµy th¸ng vµ thi gian th«ng ®iƯp ®­ỵc nhn, vµ c¸c th«ng tin kh¸c c thĨ ®­ỵc sư dơng cho viƯc t×m kim c¸c lçi trong hƯ thng ®Þnh tuyn. Tr­ng Return-Path: ®­ỵc ®­a vµo bi MTAs cui cng vµ ®­ỵc dng cho viƯc gưi tr l¹i ng­i gưi. Theo lý thuyt, th«ng tin nµy c thĨ ®­ỵc tp hỵp l¹i t c¸c header Received: (lo¹i tr tªn cđa hp th­ ng­i gưi), nh­ng n Ýt khi ®­ỵc ®iỊn ®Çy ®đ nh­ th vµ ch ®Ỉc biƯt cha ®Þ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Ĩ cha mt trong s c¸c tr­ng kh¸c ®­ỵc sư dơng bi c¸c UA hay nh÷ng ng­i nhn th­. Nh÷ng tr­ng th«ng th­ng nht ®­ỵc liƯt kª trong h×nh bªn d­íi. HÇu ht 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 tng chi tit. 1.4.PHÂN TÍCH CẤU TRÚC THƯ ĐIỆN TỬ, CÁC GIAO THỨC SMTP VÀ POP3 1.4.1.Phân tích cấu trúc thư điện tử (RFC 822) 1.4.1.1. Giíi thiƯu §Ĩ c thĨ chuyĨn giao th­ gi÷a c¸c m¸y tÝnh trªn m¹ng, th­ cÇn ph¶i ®­ỵc cu trĩc theo mt chun nµo ®. Th«ng th­ng, mt bc th­ ®­ỵc cu t¹o bi hai phÇn lµ phong b× (envelope) vµ ni dung (body). Kh¸i niƯm nµy hoµn toµn ging nh­ trong hƯ thng b­u chÝnh th«ng th­ng. Trong khi phÇn phong b× cha ®ng nh÷ng th«ng tin cÇn thit ®Ĩ c thĨ thit lp c¸c liªn kt truyỊn th«ng vµ ph©n ph¸t th­ ®i, th× phÇn ni dung l¹i cha ®ng nh÷ng th«ng tin vỊ ng­i gưi, ngµy gưi,... Th­ th­ng bao gm nhiỊu dßng v¨n b¶n. N kh«ng cung cp nh÷ng tÝnh n¨ng riªng biƯt nh­: m· ho¸ c¸c h×nh v, c¸c b¶n sao, ting ni hoỈc nh÷ng v¨n b¶n c cu trĩc. H¬n n÷a, n cịng kh«ng c s quan t©m ®Ỉc biƯt ®i víi viƯc nÐn d÷ liƯu, viƯc truyỊn th«ng hoỈc viƯc l­u tr÷ c hiƯu qu¶. Cu trĩc th­ bao gm mt s tr­ng th«ng tin tu©n theo c¸c cĩ ph¸p nghiªm ngỈt. VÝ dơ nh­ gi÷a phÇn tiªu ®Ị th­ (header) vµ phÇn ni dung th­ (content) ph¶i c mt dßng trng ng¨n c¸ch,... 1.4.1.2. Mô tả về cấu trúc thư Mt bc th­ bao gm c¸c tr­ng header vµ phÇn body. PhÇn body lµ c¸c dßng v¨n b¶n kÝ t theo b¶ng m· ASCII. N ®­ỵc ph©n c¸ch víi phÇn header bi mt dßng trng. 1.4.1.2.1. C¸c tr­ng header dµi Mçi tr­ng header c thĨ ®­ỵc xem nh­ mt dßng v¨n b¶n c¸c kÝ t theo b¶ng m· ASCII, cu thµnh bi tªn tr­ng (field­name) vµ ni dung cđa tr­ng (field­body). §Ĩ thun tiƯn cho viƯc so s¸nh, phÇn field­body c thĨ ®­ỵc chia ra lµm nhiỊu dßng. Qu¸ tr×nh chia nµy ®­ỵc gi lµ ”folding”. VÝ dơ: To: "Joe & J. Harvey" , JJV @ BBN c thĨ ®­ỵc thay th b»ng: To: "Joe & J. Harvey" , JJV@BBN vµ: To: "Joe & J. Harvey" , JJV @BBN hay: To: "Joe & J. Harvey" , JJV @ BBN Qu¸ tr×nh thc hiƯn ng­ỵc l¹i ®Ĩ kt hỵp nhiỊu dßng header ®· ®­ỵc folding nh­ trªn ®­ỵc gi lµ: ”unfolding”. Unfolding ®­ỵc thc hiƯn b»ng c¸ch b cỈp kÝ t CRLF vµ thay b»ng mt du c¸ch trng. 1.4.1.2.2. C¸c tr­ng header c cu trĩc Mçi tr­ng c cu trĩc bao gm mt field­name, tip theo lµ du hai chm (”:”), sau ® field­body vµ cui cng lµ cỈp kÝ t CRLF. : PhÇn field­name lµ c¸c kÝ t in ®­ỵc trong b¶ng m· ASCII (c m· t 33 ®n 126, c¸c kÝ t s, ngo¹i tr du hai chm). PhÇn field­body c thĨ cha bt k× kÝ t ASCII nµo, ngo¹i tr cỈp kÝ t CRLF. C¸c tr­ng th«ng tin header thc t c thĨ ®­ỵc so s¸nh bi c¸c mt vµi hƯ thng th­ tÝn. C¸c tr­ng nµy ®­ỵc gi lµ tr­ng c cu trĩc. VÝ dơ nh­ c¸c tr­ng cha ®ng th«ng tin vỊ Date, Address,.v.v. Mt s tr­ng kh¸c nh­ ”Subject” vµ “Comments” ch ®­ỵc coi nh­ mt dßng v¨n b¶n b×nh th­ng. Chĩ ý, bt k tr­ng nµo mµ phÇn field­body ®­ỵc ®Þnh ngha kh¸c ®i kh«ng ph¶i lµ mt dßng v¨n b¶n ®¬n thuÇn th× ®­ỵc gi lµ tr­ng c cu trĩc. 1.4.1.2.3. C¸c tr­ng header kh«ng c cu trĩc Mt s tr­ng nh­ “Subject” vµ “Comments” kh«ng ®­ỵc coi lµ c¸c tr­ng c cu trĩc vµ chĩng ®­ỵc xem nh­ mt dßng v¨n b¶n ®¬n thuÇn cịng nh­ ni dung th­ trong phÇn body. 1.4.2. §Þnh ngha vỊ c¸c tr­ng Header C¸c lut ng÷ ngha ®©y ®­ỵc tr×nh bµy theo s so s¸nh mc cao. N kh«ng dµnh riªng cho tr­ng nµo. Mơc ®Ých cđa n lµ ®Ĩ trỵ giĩp viƯc so s¸nh vµ ph©n tÝch th«ng tin c¸c tr­ng. Cu trĩc chung c d¹ng: field = ”:” [field­body] CRLF field­name = 1* field­body = *text 1.4.3. C¸c tr­ng header ®iĨn h×nh a. Tr­ng RETURN­PATH = “Return­Path” “:” route­addr Tr­ng th«ng tin nµy ®­ỵc hƯ thng truyỊn t¶i th­ tÝn cui cng (lµ hƯ thng cui cng ph¸t th­ cho ng­i nhn cđa n) thªm vµo phÇn header cđa th­. N ®­ỵc dng ®Ĩ cha ®ng nh÷ng th«ng tin vỊ ®Þa ch tr¶ vỊ (return­address) cđa ng­i gưi ban ®Çu. b. Tr­ng RECEIVED = “Received­From” “:” domain Mt b¶n sao cđa tr­ng th«ng tin nµy s ®­ỵc thªm vµo bi mçi mt hƯ thng truyỊn t¶i th«ng ®iƯp mµ th­ ®­ỵc chuyĨn qua. Th«ng tin tr­ng nµy rt h÷u Ých trong tr­ng hỵp x¶y ra lçi trong truyỊn th«ng. Tr­ng th«ng tin nµy dng ®Ĩ x¸c ®Þnh tªn cđa m¸y chđ gưi (sending host), m¸y chđ nhn vµ thi gian nhn ®­ỵc. c. Tr­ng FORWARD = “Forward­Path” “:” route­addr Tr­ng th«ng tin nµy ®­ỵc hƯ thng truyỊn t¶i th­ tÝn cui cng (lµ hƯ thng cui cng ph¸t th­ cho ng­i nhn cđa n) thªm vµo phÇn header cđa th­. N ®­ỵc dng ®Ĩ cha ®ng nh÷ng th«ng tin vỊ ®Þa ch cđa ng­i nhn th­. d. Tr­ng FROM = “From” “:” mailbox Tr­ng th«ng tin nµy cha ®ng th«ng tin vỊ ng­i gưi th­ (sender). Qu¸ tr×nh gưi th­ cÇn ngÇm ®Þnh tr­ng nµy lµ ®¬n. N x¸c minh ®Þa ch m¸y tÝnh, x¸c nhn bªn gưi lµ mt ng­i, hƯ thng hay mt tin tr×nh. Nu c«ng viƯc nµy kh«ng ®­ỵc thc hiƯn th× ph¶i thay th b»ng tr­ng Sender e. Tr­ng DATE = “Date” “:” date­time Tr­ng nµy cha ®ng th«ng tin vỊ ngµy, gi gưi th­. f. Tr­ng TO = “To” “:” mailbox Tr­ng nµy cha ®ng th«ng tin vỊ ng­i nhn th­ (recipient) chÝnh thc. g. Tr­ng CC = “cc” “:” address Tr­ng nµy cha ®ng th«ng tin vỊ ng­i nhn th­ th hai, c ngha ®ng gưi (carbon copy­ cc). h. Tr­ng BCC = “bcc” “:” address Tr­ng nµy cha ®ng th«ng tin thªm vỊ ng­i nhn th­ (blind carbon copy­bcc). Ni dung cđa tr­ng nµy kh«ng cha ®ng trong b¶n sao th­ gưi cho ng­i nhn th ®Çu tiªn vµ ng­i nhn th­ hai. i. Tr­ng MESSAGE­ID = “Message­ID” “:” msg­id Tr­ng nµy cha ®ng th«ng tin ®Þnh danh duy nht vỊ bc th­ ®­ỵc gưi ®i. TÝnh duy nht cđa tr­ng nµy ®­ỵc b¶o ®¶m bi hƯ thng sinh ra n. Tr­ng nµy ®­ỵc dng ®Ĩ dµnh riªng cho m¸y tÝnh vµ kh«ng cÇn thit ®i víi ng­i sư dơng. j. Tr­ng SUBJECT = “Subject” “:” text Tr­ng nµy cha ®ng th«ng tin vỊ tiªu ®Ị th­ cÇn gưi. 1.4.4. VÝ dơ vỊ cu trĩc th­ Date: 26 Aug 76 1430 EDT From: George Jones Sender: Secy@SHOST To: ”Al Neuman”@Mad­Host, Sam.Irving@Other­Host Message­ID: Subject: Test ... 1.5. PHÂN TÍCH GIAO THỨC SMTP (RFC 821) 1.5.1. Giíi thiƯu chung Mơc ®Ých cđa giao thc SMTP (Simple Mail Transfer Protocol) lµ ®Ĩ truyỊn th­ ®¸ng tin cy vµ c hiƯu qu¶. SMTP ®c lp vỊ hƯ thng con truyỊn th«ng ®Ỉc biƯt vµ c¸c yªu cÇu ch tin cy theo kªnh lung d÷ liƯu tuÇn t. §Ỉc tÝnh quan trng cđa SMTP lµ kh¶ n¨ng chuyĨn tip 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 cp mt m«i tr­ng truyỊn th«ng liªn qu¸ tr×nh (interprocess communication environment ­ IPCE). IPCE c thĨ lµ mt m¹ng, nhiỊu m¹ng hay mt tp hỵp con cđa mt m¹ng. §iỊu quan trng ®Ĩ nhn thy r»ng c¸c hƯ thng truyỊn th«ng (IPCEs) kh«ng ph¶i lµ viƯc truyỊn th«ng t­¬ng ng mt tíi mt (one­to­one) víi c¸c m¹ng. Mt tin tr×nh c thĨ truyỊn th«ng qua l¹i trc tip víi mt tin tr×nh kh¸c th«ng qua bt k mt IPCE ®· ®­ỵc bit. Th­ tÝn lµ mt ng dơng hay lµ viƯc sư dơng truyỊn th«ng liªn tin tr×nh. Th­ tÝn c thĨ ®­ỵc truyỊn qua gi÷a c¸c tin tr×nh theo c¸c IPCEs kh¸c nhau b¾ng c¸ch chuyĨn tip qua mt tin tin tr×nh ®­ỵc kt ni tíi hai hay nhiỊu IPCEs. §Ỉc biƯt h¬n n÷a, th­ tÝn c thĨ ®­ỵc chuyĨn tip gi÷a c¸c m¸y chđ (hosts) trªn c¸c hƯ thng truyỊn th«ng kh¸c nhau bi mt m¸y chđ trªn c¶ hai hƯ thng truyỊn th«ng. Giao thc SMTP ®Þnh ngha c¸ch ®Ĩ chuyĨn giao th­ tÝn trc tip gi÷a c¸c m¸y tÝnh trªn m¹ng. N c hai vai trß lµ gưi (sender­SMTP) vµ nhn (receiver­SMTP) th­. Th«ng th­ng, bªn gưi thit lp mt liªn kt TCP víi bªn nhn, vµ bªn nhn sư dơng cỉng truyỊn th«ng s 25 ®Ĩ cung cp dÞch vơ th­ tÝn ®iƯn tư. Trong mt phiªn giao dÞch th­ tÝn, bªn gưi vµ bªn nhn trao ®ỉi tuÇn t c¸c lƯnh vµ c¸c th«ng tin ph¶n hi. 1.5.2. M« h×nh ho¹t ®ng phiªn giao dÞch SMTP ®­ỵc thit k da trªn m« h×nh truyỊn th«ng sau: khi ng­i sư dơng (user) gưi mt yªu cÇu dÞch vơ th­ tÝn, tr­íc tiªn Sender­SMTP thµnh lp mt kªnh truyỊn th«ng hai chiỊu tíi Receiver­SMTP. Receiver­SMTP c thĨ lµ ®Ých cui cng hoỈc lµ mt 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¶ kt qu¶ vỊ phÝa Sender­SMTP. SMTP cung cp c¬ ch chuyĨn th­ trc tip t m¸y chđ cđa ng­i gưi ®n m¸y chđ cđa ng­i nhn khi hai m¸y chđ ®­ỵc kt ni trªn cng mt dÞch vơ truyỊn th«ng hoỈc qua mt hoỈc nhiỊu Server­SMTP chuyĨn tip khi c¸c m¸y chđ ngun vµ m¸y chđ ®Ých kh«ng cng ®­ỵc kt ni tíi cng mt dÞch vơ truyỊn th«ng. §Ĩ thc hiƯn ®­ỵc kh¶ n¨ng chuyĨn tip th­ tÝn trªn m¹ng, cÇn ph¶i cung cp tªn cđa m¸y chđ cịng nh­ tªn cđa hp th­ (mailbox) cui cng cÇn gưi tíi cho SMTP Server. SMTP cung cp mt tp c¸c lƯnh cho phÐp c¸c m¸y tÝnh trªn m¹ng c thĨ trao ®ỉi thc tip c¸c th«ng tin theo mt chun qui ®Þnh. Nh vµo tp lƯnh nµy, c¸c hƯ thng th­ tÝn kh¸c nhau c thĨ trao ®ỉi d÷ liƯu th­ ®­ỵc víi nhau. Mçi lƯnh ®Ịu c cng chiỊu dµi bn kÝ t, hÇu ht ®Ịu c tham s kÌm theo. C¸c lƯnh sư dơng trong viƯc gưi/nhn th­ tÝn tu©n theo mt cĩ ph¸p kh¾t khe. § lµ c¸c th«ng tin ph¶n hi lu«n d¹ng m· s kÌm theo lµ c¸c m« t¶ vỊ kt qu¶ thc hiƯn lƯnh. C¸c lƯnh vµ m· ph¶n hi kh«ng ph©n biƯt ch÷ hoa vµ ch÷ th­ng. §iỊu nµy c ngha lµ File System SMTP Commands / Replies Sender SMTP Sender ­ SMTP M« h×nh tỉng qu¸t sư dơng giao thc SMTP Receiver SMTP Receiver ­ SMTP and Mail File System User mt lƯnh hoỈc mt th«ng b¸o ph¶n hi c thĨ d¹ng in hoa, in th­ng hoỈc trong bt k× mt kiĨu kt 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 mt s m¸y chđ, user name lµ ph©n biƯt ch÷ hoa, th­ng vµ viƯc thc hiƯn c¸c lƯnh SMTP cÇn ph¶i quan t©m ®Ĩ ®¶m b¶o s thc 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 hi ®­ỵc x©y dng bi c¸c kÝ t t b m· ASCII. Khi dÞch vơ giao vn cung cp kªnh truyỊn th«ng 8 bit, mçi kÝ t truyỊn ®i s ch sư dơng 7, bit cao nht s ®­ỵc xo¸ vỊ 0. Mçi phiªn giao dÞch SMTP ph¶i tr¶i qua mt s giai ®o¹n. C¸c giai ®o¹n ® ®­ỵc thc hiƯn th«ng qua c¸c thđ tơc SMTP, kÌm theo ® lµ c¸c th«ng tin ph¶n hi:  Thđ tơc MAIL.  Thđ tơc FORWARDING.  C¸c thđ tơc MAILING vµ SENDING.  C¸c thđ tơc OPENING vµ CLOSING.  C¸c m· tr¶ li cđa lƯnh SMTP. 1.5.3. Thđ tơc Mail §Ĩ b¾t ®Çu mt phiªn giao dÞch th­ tÝn th× cÇn ph¶i thc hiƯn thđ tơc MAIL. N bao gm 3 b­íc:  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 nhn th­. C thĨ thc hiƯn nhiỊu lÇn lƯnh nµy trong tr­ng hỵp mun gưi th­ cho nhiỊu ng­i.  LƯnh DATA ®­ỵc gưi ®i ®Ĩ x¸c nhn b¾t ®Çu gưi d÷ liƯu cđa th­. D­íi ®©y lµ phÇn chi tit vỊ 3 lƯnh trªn. a. LƯnh MAIL FROM  Tham s: lµ mt x©u ký t ®Þnh danh mailbox cđa ng­i gưi th­.  H¹n ch: Ch c thĨ thc hiƯn khi ch­a thc hiƯn chÝnh lƯnh nµy.  Chi tit: LƯnh nµy dng ®Ĩ x¸c nhn ng­i gưi th­ ®ng thi thit lp mt phiªn giao dÞch SMTP víi Receiver­SMTP (Server). N ®­a ra ®­ng dn ®Ĩ sư dơng trong tr­ng hỵp phiªn giao dÞch kh«ng thc 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 hi: 250 OK Tr­ng hỵp cßn l¹i bÞ lçi. VÝ dơ: S: MAIL FROM: R: 250 OK b. LƯnh RCPT TO  Tham s: lµ mt x©u ký t ®Þnh danh mailbox cđa ng­i nhn th­.  H¹n ch: Ch c thĨ thc hiƯn khi ®· ®Þnh danh ng­i gưi th­ b»ng lƯnh MAIL.  Chi tit: LƯnh nµy dng ®Ĩ x¸c nhn ng­i nhn th­ ®­ỵc ch ®Þnh trong tham s . Nu Receiver­SMTP chp nhn th× th«ng tin vỊ ng­i gưi s ®­ỵc l­u l¹i. LƯnh nµy c thĨ thc hiƯn nhiỊu lÇn ®Ĩ x¸c nhn nhiỊu ng­i nhn th­.  Th«ng tin ph¶n hi: 250 OK Tr­ng hỵp cßn l¹i bÞ lçi. VÝ dơ S: RCPT TO: R: 250 OK S: rcpt to: R: 550 No such user here c. LƯnh DATA  Tham s: kh«ng.  H¹n ch: Ch c thĨ thc hiƯn khi ®· thc hiƯn thµnh c«ng viƯc x¸c nhn ng­i gưi vµ ng­i nhn th­.  Chi tit: LƯnh nµy dng ®Ĩ x¸c nhn b¾t ®Çu viƯc gưi ni dung th­. Nu SMTP Receiver chp nhn, n s tin hµnh nhn vµ l­u tr÷ tt c¶ c¸c dßng v¨n b¶n ®­ỵc gưi ®n. §Ĩ kt thĩc viƯc gưi d÷ liƯu, SMTP Sender cÇn gưi mt dßng ch cha mt du chm ”.”. L­u ý r»ng phÇn d÷ liƯu sau lƯnh DATA bao gm toµn b phÇn header cđa th­ (nh­ c¸c tr­ng Date, Subject, CC, From, ...) cịng nh­ ni dung th­.  Th«ng tin ph¶n hi: 250 OK VÝ dơ: S: DATA R: 354 Start mail input; end with . S:. . . Sends body of mail message . . . S: . R: 250 OK S: QUIT S: 221 Beta.gov Service Closing Transmission Channel Sau ®©y lµ mt vÝ dơ minh ho¹ cho mt 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, tip sau lµ th«ng tin. PhÇn phÝa Client lµ c¸c lƯnh thc thi cđa SMTP b¾t ®Çu b»ng S:. Ta s sư dơng dÞch vơ Telnet ®Ĩ kÝch ho¹t dÞch vơ th­ tÝn trªn cỉng 25 (SMTP). d. VÝ dơ vỊ mt phiªn giao dÞch SMTP R: 220 BERKELEY.ARPA Simple Mail Transfer Service Ready S: HELO USC­ISIF.ARPA R: 250 BERKELEY.ARPA S: MAIL FROM: R: 250 OK S: RCPT TO: R: 250 OK S: RCPT TO: R: 552 Recipient storage full, try again in another transaction S: DATA R: 354 Start mail input; end with . S: Blah blah blah... S: ...etc. etc. etc. S: . R: 250 OK S: MAIL FROM: R: 250 OK S: RCPT TO: R: 250 OK S: DATA R: 354 Start mail input; end with . S: Blah blah blah... S: ...etc. etc. etc. S: . R: 250 OK S: QUIT R: 221 BERKELEY.ARPA Service closing transmission channel 1.5.4. Thđ tơc Forwarding Trong mt s tr­ng hỵp ®Þa ch trong tham s bÞ sai, nh­ng SMTP Receiver l¹i bit chÝnh x¸c ®Þa ch ®Ých th× c¸c th«ng tin ph¶n hi c thĨ ®­ỵc sư dơng ®Ĩ cho phÐp ng­i gưi x¸c nhn l¹i ®Þa ch ®ĩng. 251 User not local; will forward to Th«ng tin ph¶n hi nµy ch ra r»ng mailbox cđa ng­i nhn thuc mt m¸y chđ (host) kh¸c. Nh­ vy, SMTP Receiver s ch ra 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 Th«ng tin ph¶n hi nµy ch ra r»ng, SMTP Receiver bit ®­ỵc mailbox cđa ng­i nhn thuc mt 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 thc hiƯn viƯc gưi th­ ®i. ChÝnh v× vy, ng­i gưi cÇn ph¶i x¸c nhn l¹i c¸c th«ng tin cho chÝnh x¸c theo th«ng tin ph¶n hi 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: R: 251 User not local; will forward to or S: RCPT TO: R: 551 User not local; please try 1.5.5. C¸c thđ tơc Mailing vµ Sending SMTP chđ yu cung cp c¸c chc n¨ng ph¸t th­ ®n mailbox cđa ng­i sư dơng. Tuy nhiªn, n cịng c mt s c¸c chc n¨ng thc 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 gi lµ ”mailing”, cßn viƯc ph¸t th­ ®n terminal ®­ỵc gi lµ ”sending”. DÞch vơ sending lµ phÇn m rng cđa mt hƯ thng th­ tÝn ®iƯn tư. C ba d¹ng c©u lƯnh ®­ỵc ®Þnh ngha ®Ĩ hç trỵ cho c¸c ty chn sending. C¸c c©u lƯnh nµy ®­ỵc dng trong c¸c phiªn giao dÞch SMTP thay th cho c©u lƯnh MAIL vµ b¸o cho Receiver­SMTP bit ý ngha ®Ỉc biƯt cđa phiªn giao dÞch nµy. a. LƯnh SEND FROM  Tham s: ®Þa ch terminal cđa ng­i nhn.  Chi tit: 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. Nu ng­i sư dơng ch­a kÝch ho¹t (hoỈc kh«ng chp nhn 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 nu th­ ®­ỵc chuyĨn ®n terminal cđa ng­i sư dơng.  Th«ng tin ph¶n hi: 450 OK b. LƯnh SOML FROM  Tham s: ®Þa ch terminal cđa ng­i nhn.  Chi tit: LƯnh nµy (vit 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µ chp nhn kiĨu giao dÞch nµy). Trong tr­ng hỵp ng­ỵc l¹i, ngha 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 nhn. Phiªn giao dÞch thµnh c«ng nu th­ ®­ỵc chuyĨn ®n terminal cđa ng­i sư dơng. c. LƯnh SAML FROM  Tham s: ®Þa ch terminal cđa ng­i nhn.  Chi tit: LƯnh nµy (vit 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µ chp nhn kiĨu giao dÞch nµy). Trong bt 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 nhn. Phiªn giao dÞch thµnh c«ng nu th­ ®­ỵc chuyĨn ®n mailbox cđa ng­i sư dơng. 1.5.6. C¸c thđ tơc Opening vµ Closing Khi mt phiªn giao dÞch th­ tÝn ®­ỵc m, cÇn ph¶i c s trao ®ỉi th«ng tin gi÷a c¸c m¸y chđ (host) ®Ĩ ®¶m b¶o s chÝnh x¸c trong giao dÞch. C hai lƯnh ®Ĩ thc hiƯn viƯc ®ng/m mt phiªn giao dÞch. a. HELO  Tham s: tªn domain cđa m¸y chđ thc hiƯn viƯc gưi th­ (c thĨ kh«ng c).  Chi tit: LƯnh nµy dng ®Ĩ x¸c nhn domain m¸y chđ SMTP Sender.  Th«ng tin ph¶n hi: 250 VÝ dơ: R: 220 BBN­UNIX.ARPA Simple Mail Transfer Service Ready S: HELO USC­ISIF.ARPA R: 250 BBN­UNIX.ARPA b. QUIT  Tham s: kh«ng.  Chi tit: LƯnh nµy dng ®Ĩ kt thĩc phiªn giao dÞch SMTP.  Th«ng tin ph¶n hi: 250 CRLF VÝ dơ: S: QUIT R: 221 BBN­UNIX.ARPA Service closing transmission channel 1.5.7. M· tr¶ li cđa c¸c c©u lƯnh SMTP Trong mt phiªn giao dÞch SMTP, phÝa SMTP Sender gưi c¸c lƯnh yªu cÇu cßn phÝa SMTP Receiver s gưi tr¶ c¸c th«ng tin ph¶n hi vµ c¸c m· ph¶n hi. §Ĩ ®¶m b¶o tÝnh thng nht truyỊn th«ng trong qu¸ tr×nh truyỊn th­, ®ng thi ®Ĩ ®¶m b¶o phÝa SMTP Sender lu«n bit ®­ỵc chÝnh x¸c tr¹ng th¸i cđa SMTP Receiver, mi c©u lƯnh yªu cÇu ®Ịu ph¶i ®­ỵc tr¶ li b»ng c¸c m· th«ng tin ph¶n hi chÝnh x¸c. B¶ng M· th«ng tin ph¶n hi cđa SMTP M· th«ng tin ph¶n hi Th«ng tin kÌm theo 500 Syntax error or Command unregconized 501 Syntax error in parameters or arguments 503 Bad sequence of command 504 Command parameter not implement 211 System status or System help reply 214 Help message 220 Simple Mail Transfer Service ready 221 Service closing transmission channel 421 Service not available, closing transmission channel 250 OK 251 User not local; will forward to 450 Mailbox unavailable (not found or no access) 551 User not local; please try 452 Insufficent system storage 552 Request mail action aborted 553 Mailbox name not allow (mailbox syntax incorrect) 354 Start mail input, end with . 554 Transaction failed Mt m· th«ng tin ph¶n hi lµ mt s c 3 ch÷ s vµ tip theo lµ mt chuçi v¨n b¶n m« t¶ vỊ m· ®. B¶ng trªn ®©y s tr×nh bµy chi tit c¸c th«ng tin ph¶n hi: TruyỊn th«ng gi÷a Sender­SMTP vµ Receiver­SMTP ®­ỵc coi nh­ mt cuc hi tho¹i, ®­ỵc ®iỊu khiĨn bi Sender­SMTP. Nh­ vy, Sender­SMTP ®­a ra mt lƯnh yªu cÇu vµ Receiver­ SMTP s tr¶ l¹i mt m· th«ng tin ph¶n hi. Sau khi Sender­SMTP ®­a ra lƯnh yªu cÇu, n ph¶i ®ỵi th«ng tin ph¶n hi t Receiver­SMTP ri míi ®­a ra lƯnh tip theo. Trong c¸c m· th«ng tin ph¶n hi, m· ph¶n hi quan trng nht lµ 220. N ®Ỉc tr­ng cho viƯc thc hiƯn thµnh c«ng yªu cÇu. 1.6. PHÂN TÍCH GIAO THỨC POP3 (RFC 1081,1082) 1.6.1. Giíi thiƯu Giao thc POP3 cho phÐp mt m¸y tr¹m c thĨ truy nhp ®Ĩ ly th­ trªn m¸y chđ. N ®Þnh ngha c¸ch thc giao tip víi POP3 Server bi c¸c lƯnh chun ®­ỵc quy ®Þnh trong RFC 1081 ®Ĩ ly th­ vỊ. 1.6.2. M« h×nh ho¹t ®ng phiªn giao dÞch Vµo thi ®iĨm b¾t ®Çu, tin 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. Thut ng÷ ”l¾ng nghe” ®©y ®­ỵc hiĨu theo ngha lµ tin tr×nh phÝa Server lu«n lu«n tip nhn c¸c th«ng tin ®n cỉng dÞch vơ mµ n cung cp ­ trong tr­ng hỵp nµy lµ cỉng dÞch vơ 110 ­ xư lý vµ gưi kt qu¶ vỊ cho tin tr×nh yªu cÇu dÞch vơ phÝa Client. Khi mt tin tr×nh phÝa Client mun sư dơng dÞch vơ, n thit lp mt kt ni TCP tíi m¸y chđ phÝa Server. Khi kt ni ®­ỵc thit lp, POP3 Server gưi mt th«ng b¸o chp nhn vµ sau ® tin 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 hi cho ®n khi kt ni bÞ hđy b hoỈc phiªn giao dÞch kt thĩc. C¸c lƯnh trong POP3 bao gm t kha, c thĨ theo sau lµ mt hoỈc nhiỊu tham s. Tt c¶ c¸c lƯnh ®Ịu ®­ỵc kt thĩc bi cỈp ký t CRLF. T kha vµ c¸c tham s lµ c¸c kÝ t in ®­ỵc trong b¶ng m· kÝ t ASCII, gi÷a chĩng ®­ỵc ph©n c¸ch bi mt kÝ t du c¸ch trng. T kha c thĨ dµi ba hoỈc bn kÝ t, cßn c¸c tham s c thĨ dµi tíi bn m­¬i kÝ t. Th«ng tin ph¶n hi cđa POP3 bao gm mt th«ng b¸o tr¹ng th¸i vµ mt t kha c thĨ theo sau mt s th«ng tin thªm. Tt c¶ c¸c th«ng tin ph¶n hi ®Ịu ®­ỵc kt thĩc bi cỈp ký t CRLF. C hai th«ng b¸o tr¹ng th¸i lµ: X¸c ®Þnh (”+OK”) ®Ĩ x¸c nhn thµnh c«ng vµ phđ ®Þnh (”­ERR”) ®Ĩ x¸c nhn trong tr­ng hỵp c lçi. C¸c th«ng tin ph¶n hi cho c¸c lƯnh thc 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 hi vµ mt cỈp CRLF, bt c mt dßng thªm vµo nµo ®­ỵc gưi th× ®Ịu ph¶i kt thĩc b»ng cỈp CRLF. Khi tt c¶ c¸c th«ng tin ph¶n hi ®Ịu ®· ®­ỵc gưi, mt dßng cui cng ®­ỵc gưi, bao gm m· kt thĩc (m· thp ph©n 046, ”.”) vµ mt cỈp CRLF. Nu c mt dßng nµo trong th«ng tin ph¶n hi ®a dßng b¾t ®Çu víi mt m· ký t kt thĩc (du chm ”.”), th× dßng ® coi nh­ ch­a ®­ỵc xư lÝ xong ®i víi th«ng tin ph¶n hi . V× vy, mt th«ng tin ph¶n hi ®a dßng ®­ỵc kt thĩc bi b n¨m octets lµ ”CRLF. CRLF”. Mt phiªn giao dÞch POP3 ph¶i tr¶i qua mt s c¸c tr¹ng th¸i trong sut thi gian tn t¹i cđa phiªn lµm viƯc. Mçi lÇn kt ni TCP ®­ỵc m vµ POP3 Server gưi th«ng b¸o chp nhn, 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 thc hiƯn xong viƯc ®Þnh danh, Server nhn ®­ỵc tµi nguyªn t­¬ng ng víi hp 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 thc 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 phng mi tµi nguyªn thu ®­ỵc trong sut tr¹ng th¸i TRANSACTION vµ kt thĩc. §ng thi, kt ni TCP kt thĩc. Mt POP3 Server c thĨ c mt b x¸c ®Þnh thi gian. Nu sau mt kho¶ng thi gian x¸c ®Þnh tr­íc mµ phÝa Client kh«ng c t¸c ®ng g× th× POP3 Server c thĨ t ®ng kt thĩc phiªn lµm viƯc. Kho¶ng thi gian nµy Ýt nht lµ kho¶ng 10 phĩt. Nu trong kho¶ng thi gian nµy c bt k× mt lƯnh nµo t phÝa Client, b x¸c ®Þnh thi gian s ®­ỵc khi t¹o l¹i. Khi ht thi gian hiƯu lc, phiªn lµm viƯc kh«ng chuyĨn sang tr¹ng th¸i UPDATE. Server s ®ng kt ni TCP mµ kh«ng chuyĨn bt k× mt th­ nµo cịng nh­ c¸c th«ng tin ph¶n hi nµo vỊ phÝa Client. Nh­ vy, ta thy mt 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 tip theo s tr×nh bµy chi tit vỊ s ho¹t ®ng cđa POP3 Server trong tng tr¹ng th¸i cđa phiªn giao dÞch vµ c¸c lƯnh c thĨ thc hiƯn trong mçi tr¹ng th¸i ®. 1.6.3. Tr¹ng th¸i AUTHORIZATION Khi mt phiªn giao dÞch POP3 ®­ỵc kÝch ho¹t bi mt POP3 Client, POP3 Server s gưi mt th«ng b¸o cho phÝa Client. T­¬ng t nh­ phÇn tr×nh bµy vỊ giao thc SMTP, ta cịng sư dơng Telnet ®Ĩ kÝch ho¹t dÞch vơ nµy. Mt vÝ dơ c thĨ lµ: S: +OK dewey POP3 server ready Chĩ ý r»ng, ®©y lµ th«ng tin ph¶n hi t phÝa POP3 Server. Du ”+” c ngha lµ thµnh c«ng, ng­ỵc l¹i, du ”­” 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 nhn th­ cho POP3 Server. §Ĩ thc 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 nhn. Nu th«ng tin ph¶n hi t phÝa POP3 Server b¾t ®Çu b»ng du ”+” (+OK) th× phÝa Client c thĨ gưi tip lƯnh PASS víi tham s lµ mt khu cđa ng­i nhn ®Ĩ kt thĩc viƯc ®Þnh danh hoỈc cịng c thĨ gưi lƯnh QUIT ®Ĩ kt thĩc phiªn giao dÞch. Trong tr­ng hỵp ng­ỵc l¹i, nu th«ng tin ph¶n hi b¾t ®Çu b»ng du ”­” (­ERR) cho lƯnh USER th× phÝa Client c thĨ thc hiƯn l¹i viƯc ®Þnh danh hoỈc kt 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 kt hỵp hai ®i s ®­a vµo bi hai lƯnh USER vµ PASS ®Ĩ x¸c ®Þnh xem ng­i sư dơng nµy c tn t¹i hay kh«ng, c ®­ỵc quyỊn truy nhp vµo mailbox hay kh«ng,.v.v Sau khi ®· x¸c ®Þnh phÝa Client ®­ỵc quyỊn truy nhp, POP3 Server s thc hiƯn viƯc kho¸ mailbox ®Ĩ chng 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. Nu 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 thi ®iĨm nµy, ch­a c mt th­ nµo bÞ ®¸nh du xo¸. Trong tr­ng hỵp ng­ỵc l¹i, nu nh­ v× mt lý do nµo ® kh«ng thĨ kho¸ ®­ỵc mailbox (vÝ dơ nh­ kh«ng ®­ỵc quyỊn truy nhp hoỈc mailbox ®· bÞ kho¸,.v.v) th× POP3 Server s gưi mt th«ng tin ph¶n hi ”­ERR” vµ kt 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 mt bc th­ vµ tÝnh lu«n kÝch th­íc tng bc 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 hi, tt c¶ c¸c ch s vµ kÝch th­íc th­ ®Ịu d¹ng c¬ s 10. Sau ®©y lµ mt s lƯnh c thĨ thc hiƯn trong tr¹ng th¸i AUTHORIZATION: a. LƯnh USER [name]  Tham s: lµ mt x©u ký t ®Þnh danh cđa mailbox, duy nht ®i víi Server.  H¹n ch: Ch c thĨ thc hiƯn trong tr¹ng th¸i AUTHORIZATION vµo thi ®iĨm ban ®Çu hoỈc sau khi viƯc ®Þnh danh USER vµ PASS kh«ng thµnh c«ng.  Chi tit: LƯnh nµy dng ®Ĩ ®Þnh danh ng­i sư dơng.  Th«ng tin ph¶n hi: +OK name is welcome here ­ERR Never heard of name VÝ dơ: C: USER mrose S: +OK mrose is a real hoopy frood ... C: USER frated S: ­ERR sorry, frated doesn't get his mail here b. LƯnh PASS [string]  Tham s: lµ mt x©u ký t ®Þnh danh cđa mt khu t­¬ng ng víi mailbox.  H¹n ch: Ch c thĨ thc hiƯn trong tr¹ng th¸i AUTHORIZATION vµo thi ®iĨm ban ®Çu hoỈc sau khi viƯc ®Þnh danh USER thµnh c«ng.  Chi tit: LƯnh nµy dng ®Ĩ x¸c ®Þnh mt khu t­¬ng ng víi ng­i sư dơng ®· ®Þnh danh b»ng lƯnh USER.  Th«ng tin ph¶n hi: +OK maildrop locked and ready ­ERR invalid password ­ERR unable to lock maildrop VÝ dơ: C: USER mrose S: +OK mrose is a real hoopy frood C: PASS secret S: +OK mrose’s maildrop has 2 messages (320 octets) ... C: USER mrose S: +OK mrose is a real hoopy frood C: PASS secret S: ­ERR unable to lock mrose’s maildrop, file already locked c. LƯnh QUIT  Tham s: kh«ng.  H¹n ch: kh«ng  Chi tit: LƯnh nµy dng ®Ĩ kt thĩc phiªn giao dÞch.  Th«ng tin ph¶n hi: +OK VÝ dơ: C: QUIT S: +OK dewey POP3 server signing off 1.6.4. Tr¹ng th¸i TRANSACTION Mçi lÇn phÝa Client thc hiƯn thµnh c«ng viƯc ®Þnh danh víi POP3 Server, mailbox t­¬ng ng s ®­ỵc kho¸ vµ phiªn lµm viƯc b©y gi s tr¹ng th¸i TRANSACTION. PhÝa Client c thĨ sư dơng bt c mt lƯnh POP3 nµo ®Ĩ thc hiƯn giao dÞch víi POP3 Server. C¸c lƯnh nµy c thĨ lỈp l¹i mµ kh«ng bÞ h¹n ch g× c¶. Sau mçi lƯnh, phÝa POP3 Server s gưi tr¶ mt th«ng tin ph¶n hi vµ kt qu¶ thc hiƯn. Cui cng, phÝa Client thc hiƯn lƯnh QUIT ®Ĩ chuyĨn phiªn giao dÞch sang tr¹ng th¸i UPDATE. Sau ®©y lµ mt s lƯnh c thĨ thc hiƯn trong tr¹ng th¸i TRANSACTION: a. LƯnh STAT  Tham s: kh«ng.  H¹n ch: Ch c thĨ thc hiƯn trong tr¹ng th¸i TRANSACTION.  Chi tit: LƯnh nµy dng ®Ĩ ly 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. Cu trĩc cđa dßng th«ng tin ph¶n hi nµy lµ: “+OK”, tip theo lµ mt du c¸ch trng, s l­ỵng th­ trong mailbox vµ kÝch th­íc cđa mailbox t­¬ng ng víi ng­i dng ®· x¸c ®Þnh.  Th«ng tin ph¶n hi: +OK nn mm VÝ dơ: C: STAT S: +OK 2 320 b. LƯnh LIST [msg]  Tham s: (c thĨ c hoỈc kh«ng) lµ mt s hiƯu cđa th­ trong s nh÷ng th­ hiƯn c trong mailbox cđa ng­i dng. L­u ý, nh÷ng th­ bÞ ®¸nh du xo¸ s bÞ b qua.  H¹n ch: Ch c thĨ thc hiƯn trong tr¹ng th¸i TRANSACTION.  Chi tit: LƯnh nµy dng ®Ĩ liƯt kª danh s¸ch c¸c th­ c trong mailbox vµ kÝch th­íc t­¬ng ng hoỈc ly th«ng tin vỊ mt 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µ mt danh s¸ch c¸c th­ vµ s hiƯu t­¬ng ng trong mailbox cđa ng­i dng. Trong tr­ng hỵp ng­ỵc l¹i, c tham s, nu 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 hi: +OK scan listing follows ­ERR no such message VÝ dơ: C: LIST S: +OK 2 messages (320 octets) S: 1 120 S: 2 200 S: . ... C: LIST 2 S: +OK 2 200 ... C: LIST 3 S: ­ERR no such message, only 2 messages in maildrop c. LƯnh RETR [msg]  Tham s: S hiƯu cđa th­ cÇn ly.  H¹n ch: Ch c thĨ thc hiƯn trong tr¹ng th¸i TRANSACTION.  Chi tit: LƯnh nµy dng ®Ĩ hiƯn thÞ ni dung th­ t­¬ng ng víi s hiƯu ®­a vµo. Nu thc hiƯn ®­ỵc POP3 Server s gưi tr¶ mt th«ng tin ph¶n hi ®a dßng, b¾t ®Çu b»ng ”+OK”, tip theo lµ c¸c dßng cha ®ng th«ng tin vỊ ni dung th­ cịng nh­ tiªu ®Ị cđa th­ ®­ỵc chn. Trong tr­ng hỵp c lçi, POP3 Server s gưi tr¶ ”­ ERR”  Th«ng tin ph¶n hi: +OK message follows ­ERR no such message VÝ dơ: C: RETR 1 S: +OK 120 octets S: S: . d. LƯnh DELE [msg]  Tham s: s hiƯu cđa th­ cÇn xo¸.  H¹n ch: ch c thĨ thc hiƯn trong tr¹ng th¸i TRANSACTION.  Chi tit: lƯnh nµy dng ®Ĩ xo¸ mt th­ t­¬ng ng víi s hiƯu ®­a vµo. Nu thc hiƯn ®­ỵc, POP3 Server s gưi tr¶ mt th«ng tin ph¶n hi b¾t ®Çu b»ng ”+OK”, tip theo lµ th«ng tin vỊ th­ ®· bÞ xa. Trong tr­ng hỵp c lçi, POP3 Server s gưi tr¶ ”­ERR”. L­u ý, POP3 Server ch thc hiƯn viƯc ®¸nh du xo¸ trªn bc th­ ®. N ch bÞ xo¸ thc s sau khi phiªn giao dÞch chuyĨn sang tr¹ng th¸i UPDATE.  Th«ng tin ph¶n hi: +OK message deleted ­ERR no such message VÝ dơ: C: DELE 1 S: +OK message 1 deleted ... C: DELE 2 S: ­ERR message 2 already deleted e. LƯnh NOOP  Tham s: kh«ng.  H¹n ch: ch c thĨ thc hiƯn trong tr¹ng th¸i TRANSACTION.  Chi tit: lƯnh nµy dng ®Ĩ x¸c nhn kt ni 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 hi: +OK VÝ dơ: C: NOOP S: +OK f. LƯnh LAST  Tham s: kh«ng.  H¹n ch: ch ®­ỵc thc hiƯn trong tr¹ng th¸i TRANSACTION.  Chi tit: POP3 server ®Ỉt mt tr¶ li x¸c ®Þnh víi dßng cha s th«ng ®iƯp cao nht hiƯn t¹i mµ n ®­ỵc truy cp trong maildrop. Trong tr­ng hỵp cßn ®ang trong tr¹ng th¸i TRANSACTION mµ c¸c th­ ®· bÞ ®¸nh du xa ch­a c lƯnh RSET th× s th­ hiƯn c trong maildrop vn kh«ng thay ®ỉi tÝnh lu«n c¶ c¸c th­ ®· ®­ỵc ®¸nh du xo¸.  Th«ng tin ph¶n hi: +OK nn VÝ dơ: C: STAT S: +OK 4 320 C: LAST S: +OK 1 C: RETR 3 S: +OK 120 octets S: S: . C: LAST S: +OK 3 C: DELE 2 S: +OK message 2 deleted C: LAST S: +OK 3 C: RSET S: +OK C: LAST S: +OK 1 g. LƯnh RSET  Tham s: kh«ng.  H¹n ch: ch c thĨ thc hiƯn trong tr¹ng th¸i TRANSACTION.  Chi tit: lƯnh nµy dng ®Ĩ kh«i phơc l¹i nh÷ng th­ ®· bÞ ®¸nh du xa. Nu thc hiƯn ®­ỵc POP3 Server s gưi tr¶ th«ng tin ph¶n hi ”+OK” ®Ĩ x¸c nhn ®· b ®¸nh du ®i víi nh÷ng th­ ®· bÞ ®¸nh du xa. Trong tr­ng hỵp c lçi, POP3 Server s gưi tr¶ li ”­ERR”  Th«ng tin ph¶n hi: +OK VÝ dơ: C: RSET S: +OK maildrop has 2 messages (320 octets) 1.6.5. Tr¹ng th¸i UPDATE Khi phÝa Client thc hiƯn lƯnh QUIT ®ang trong tr¹ng th¸i TRANSACTION. phiªn giao dÞch POP3 s chuyĨn sang tr¹ng th¸i UPDATE. L­u ý r»ng nu lƯnh QUIT ®­ỵc thc hiƯn trong tr¹ng th¸i AUTHORIZATION th× phiªn giao dÞch POP3 kh«ng chuyĨn sang tr¹ng th¸i UPDATE. Nu mt phiªn giao dÞch bÞ kt thĩc v× mt lý do nµo ® mµ kh«ng ph¶i do phÝa Client thc hiƯn lƯnh QUIT th× phiªn giao dÞch POP3 cịng kh«ng chuyĨn sang tr¹ng th¸i UPDATE vµ cịng kh«ng thc hiƯn viƯc xa bt k mt th­ nµo t mailbox.  LƯnh QUIT  Tham s: kh«ng.  H¹n ch: kh«ng.  Chi tit: LƯnh nµy dng ®Ĩ kt thĩc phiªn giao dÞch mt c¸ch hỵp lƯ. POP3 Server s xa vt lý tt c¶ th­ ®· bÞ ®¸nh du xa trong mailbox. Sau ®, n s gì b kha ®i víi mailbox ® vµ c mt th«ng tin ph¶n hi ®Ĩ x¸c nhn thao t¸c nµy. Kt ni TCP s kt thĩc.  Th«ng tin ph¶n hi: +OK  VÝ dơ: C: QUIT S: +OK dewey POP3 server signing off (maildrop empty) ... C: QUIT S: +OK dewey POP3 server signing off (2 messages left) ... 1.6.6. VÝ dơ vỊ mt phiªn giao dÞch POP3 S: ... C: S: +OK dewey POP3 server ready(Comments to: PostMaster@UDEL.EDU) C: USER mrose S: +OK mrose is a real hoopy frood C: PASS secret S: +OK mrose's maildrop has 2 messages (320 octets) C: STAT S: +OK 2 320 C: LIST S: +OK 2 messages (320 octets) S: 1 120 S: 2 200 S: . C: RETR 1 S: +OK 120 octets S: S: . C: DELE 1 S: +OK message 1 deleted C: RETR 2 S: +OK 200 octets S: S: . C: DELE 2 S: +OK message 2 deleted C: QUIT S: +OK dewey POP3 server signing off (maildrop empty) C: S: 1.7. MIME (MULTIPURPOSE INTERNET MAIL EXTENSIONS) Là các quy định về định kiểu và cấu trúc dữ liệu do nội dung mail để nó có thể chứa được các loại tài liệu phức hợp khác nhau như: hình ảnh, âm thanh, file nhị phân…MIME còn được biết đến như mt giao thc Internet míi mỴ ®­ỵc ph¸t triĨn ®Ĩ cho phÐp trao ®ỉi c¸c th«ng ®iƯp th­ ®iƯn tư c ni dung phong phĩ th«ng qua m¹ng kh«ng ®ng nht (heterogeneous network), m¸y mc, vµ c¸c m«i tr­ng th­ ®iƯn tư. Trong thc t, MIME cịng ®· ®­ỵc sư dơng vµ m rng bi c¸c ng dơng kh«ng ph¶i th­ ®iƯn tư. HiƯn nay, trªn m¹ng diƯn rng Internet, ®i víi RFC 822 ch lµm nh÷ng c«ng viƯc ®Þnh ngha c¸c header nh­ng cßn ni dung bªn trong th× vn cßn lçi thi, chÝnh v× th mµ vn ®Ị nµy kh«ng cßn thÝch hỵp n÷a. C¸c vn ®Ị bao gm viƯc gưi vµ nhn th­ nh­ sau: 1. Nh÷ng th«ng ®iƯp sư dơng c¸c ng«n ng÷ c du. vÝ dơ: Ting Ph¸p vµ ting §c. 2. Nh÷ng th«ng ®iƯp sư dơng c¸c ng«n ng÷ kh«ng ph¶i ch÷ c¸i Latin. vÝ dơ: Ting Do th¸i, ting Nga. . . 3. Nh÷ng th«ng ®iƯp sư dơng c¸c ng«n ng÷ kh«ng c trong c¸c b¶ng ch÷ c¸i. vÝ dơ: Ting Trung Quc, ting Nht. . . 4. Nh÷ng th«ng ®iƯp sư kh«ng cha v¨n b¶n. vÝ dơ: C ©m thanh vµ h×nh ¶nh. Mt gi¶i ph¸p ®· ®­ỵc ®­a ra trong RFC 1341 vµ ®­ỵc cp nht míi nht trong RFC 1521. Gi¶i ph¸p nµy ®­ỵc gi lµ MIME, hiƯn nay ®­ỵc sư dơng rng r·i. Kh¸i niƯm c¬ b¶n cđa MIME lµ tip tơc sư dơng ®Þnh d¹ng RFC 822, nh­ng thªm cu trĩc vµo phÇn th©n cđa th«ng ®iƯp vµ ®Þnh ngha c¸c nguyªn t¾c m· ha c¸c th«ng ®iƯp kh«ng ph¶i c¸c b¶ng m· ASCII. §Ĩ khi bÞ lƯch h­íng cđa RFC 822, c¸c th«ng ®iƯp MIME c thĨ ®­ỵc gưi ®i ®­ỵc sư dơng c¸c giao thc vµ ch­¬ng tr×nh th­ hiƯn c. Tt c¶ c¸c ch­¬ng tr×nh nµy ph¶i ®­ỵc thay ®ỉi thµnh c¸c ch­¬ng tr×nh gưi vµ nhn sao cho ng­i dng c thĨ dng ®­ỵc. MIME ®Þnh ngha n¨m header th«ng ®iƯp míi ®­ỵc tr×nh bµy trong h×nh bªn d­íi. C¸c header nµy tr­íc tiªn b¸o cho UA nhn th«ng ®iƯp mµ n ®ang dng b»ng th«ng ®iƯp MIME vµ phiªn b¶n cđa MIME ®ang dng. Bt c th«ng ®iƯp nµo kh«ng cha header MIME­Version: ®­ỵc gi¶ ®Þnh lµ mt th«ng ®iƯp h×nh thc ®­ỵc m· ha b»ng ting Anh vµ n ®­ỵc xư lý nh­ th. Header Meaning MIME­Version: Indentifies the MIME version Content­Description: Human­readable string telling what is in the message Content­Id: Unique identifier Content­Transfer­Encoding: How the body is wrapped for transmission Content­Type: Nature of the message C¸c header RFC 822 ®­ỵc MIME thªm vµo. B¶y kiĨu chÝnh m« t¶ MIME ®­ỵc ®Þnh ngha trong RFC 1521, mçi kiĨu cđa n l¹i c mt hay nhiỊu kiĨu phơ. KiĨu chÝnh vµ kiĨu phơ (xem h×nh bªn d­íi) ®­ỵc ph©n biƯt bi mt du v¹ch chÐo, nh­ c d¹ng sau: Content­Type: video/mpeg Type Subtype Description Text Plain Unformatted text Richtext Text including simple formatting commands Image Gif Still picture in GIF format Jpeg Still picture in JPEG format Audio Basic Audible sound Video Mpeg Movie in MPEG format Applicatio n Octel­stream An uninterpreted byte sequence Postscript A printable document in Postscript Message Rfc 822 A MIME RFC 822 message Partial Message has been split for transmission External­body Message itself must be fetched over the net Multipart Mixed Independent parts in the specified order Alternative Same message in different formats Parallel Parts must be viewed simultaneously Digest Each part is a complete RFC 822 message C¸c kiĨu chÝnh vµ kiĨu phơ ®­ỵc ®Þnh ngha trong RFC 1521 1.8.POP BEFORE SMTP(CHỨNG THỰC QUYỀN TRUY CẬP THEO GIAO THỨC POP TRƯỚC KHI SỬ DỤNG SMTP) Để tránh tình trạng các máy chủ mail server bị lạm dụng gửi mail ồ ạt hay còn gọi là “bom thư”, cơ chế POP before SMTP yêu cầu máy khách muốn sử dụng dịch vụ mai của máy chủ trước hết phải đăng nhập vào tài khoản(account) theo giao thức POP. Nếu quá trình đăng nhập thành công, cơ chế gởi mail bằng SMTP mới có thể diễn ra tiếp theo. 1.9.MAIL CLIENT, WEB MAIL Đây là các chương trình thường được dùng nhất trong quá trình gửi, nhận, đọc mail. Những chương trình ứng dụng thuộc dạng mail client có rất nhiều ví dụ như :Outlook Express, Netscap Communicator…nếu chương trình mail client được viết dưới dạng giao diện Web sẽ được gọi là Web mail. Thật ra Web mail tương tác khó khăn hơn các ứng dụng mail client thông thường vì phải dựa voà trình chủ Web Server. Tuy nhiên ưu điểm của Web mail là bạn có thể truy cập mail được ở mọi lúc mọi nơi, bất cứ khi nào kết nối được vào Internet. CHƯƠNG 4 : GIỚI THIỆU VỀ CÁC CÔNG NGHỆ LIÊN QUAN 2.1.GIỚI THIỆU VỀ JRUN WEBSERVER 3.1 JRun là ứng dụng trình chủ Java (Java Web Server) nhằm phực vụ những công nghệ mới nhất của Java như Servlet/JSP và ẸB. Mặc dù hiện nay có rất nhiều trình chủ Web dành cho Java như Java Web Server, Web Logic, Apache,…Trong đề tài này tôi sẽ ứng dụng JRun Web Server chạy trên môi trường Windows NT/2000, do JRun được viết bằng Java nên ta có thể sử dụng và cài đặt JRun cả trên môi trường Linux lẫn Unix. JRun không chỉ đơn thuần là một trình chủ Web mà còn có các tính năng kết hợp với các trình chủ Web khác như IIS của Windows hay Apache 2.2.GIỚI THIỆU VỀ SQL SERVER 7.0 2.2.1. Lý thuyết hệ quản trị cơ sở dữ liệu sql server 7.0 và Cấu trúc cơ sở dữ liệu của sql server 7.0 SQL Server tổ chức dữ liệu lưu trong Cơ sở dữ liệu(CSDL) thành những thành phần logic. User làm việc trên những thành phần logic này như bảng (table), view, procedure… Thành phần vật lý của những file thì trong suốt (transparent), chỉ có người quản lý Cơ sở dữ liệu mới được làm việc trên đó. SQL Server có 4 cơ sở dữ liệu hệ thống ( master, msdb, model, temdb database ) và các cơ sở dữ liệu của user. Hình minh họẵ  Master database: Ghi lại cấu hình hệ thống của SQL Server. Nó ghi lại tất cả tài khoản đăng ký của user và cấu hình hệ thống, những file primary chứa thông tin khởi động của Cơ sở dữ liệu của user, chứa thông tin khởi động của SQL Server. Những thao tác sau gây ra những thay đổi trong master database:Tạo , thay đổi, xóa cơ sở dữ liệu,thay đổi transaction log. Thêm hay xóa của những sever sử dụng thủ tục hệ thống như sp­addserver (thêm server) and sp­dropserver (bỏ server).  Temdb database: chứa những bảng tạm và những stored procedure tạm. Những bảng tạm và những stored procedure của user khi nối kết vào hệ thống được lưu trong temdb database. Khi SQL khởi động thì tất cả các bảng tạm và các stored procedure trong temdb database đều mất.  Stored procedure: là 1 tập hợp biên dịch trước của những câu lệnh của Transact­ SQL được lưu và xử lý như 1 đơn vị (unit). Stored procedure sẵn sàng cho việc quản lý SQL Server và hiển thị thông tin của cơ sở dữ liệu, của những người sử dụng. SQL Server cung cấp những stored procedure gọi là stored procedure hệ thống.  Model database: được dùng như 1 khuôn mẫu của CSDL trong hệ thống. Khi tạo ra 1 CSDL thì phần đầu của CSDL là bản sao của model database, phần còn lại là những trang trống.  Msdb database: SQL Server Agent dùng msdb database để lập kế hoạch alert, job. Alert là 1 định nghĩa của người sử dụng đáp ứng 1 sự kiện của SQL Server. Alert có thể thực thi cả nhiệm vụ định nghĩa hoặc gởi e­mail đến 1 người chỉ định. Job là sự thực hiện 1 hành động quản lý chứa 1 hoặc nhiều bước, thay thế cho thuật ngữ task của SQL Server 6.5. 2.2.2. Cấu trúc cơ sở dữ liệu vật lý: 2.2.2.1. Trang (page): Đơn vị cơ bản lưu trữ dữ liệu là trang (page). Trong SQL Server 7.0 , 1 trang có kích thước 8MB, ta sẽ có 128 trang/1MB. 96 byte đầu của mỗi trang chứa header của trang gồm thông tin hệ thống như loại trang, số vùng trống của trang. Cấu trúc trang dữ liệu: Các hàng dữ liệu (data row) được đưa vào tuần tự ngay sau page header, row offset được bắt đầu từ cuối trang, chỉ đến data row và cho biết byte bắt đầu của data row, kích thước hàng tối đa là 8060 byte. 2.2.2.2 .Extent: Extent là đơn vị cơ bản chỉ vùng lưu bảng và index. Mỗi extent gồm 8 trang liên tục nhau. Có 2 loại extent: Mixed extent có thể lưu những đối tượng khác nhau. Uniform extent chỉ có thể lưu 1 đối tượng duy nhất. 2.2.2.3 Những loại file trong CSDL:SQL Server có 3 loại file:  Primary file: là file bắt đầu của cơ sở dữ liệu. Mỗi cơ sở dữ liệu chỉ có 1 file primary, tên file có phần mở rộng là .mdf  Secondary file: là file lưu những gì còn lại của cơ sở dữ liệu mà không chứa trong primary file, có thể có nhiều file secondary, tên file có phần mở rộng là .ndf.  Log file: chứa những thông tin transaction log, được dùng để khôi phục cơ sở dữ liệu, mỗi cơ sở dữ liệu có ít nhất 1 log file, tên file có phần mở rộng là .ldf.  File của SQL Server có 2 tên:  Logical_file_name: là tên dùng trong những câu lệnh Transact_SQL.  Os_file _name: là tên file vật lý, chỉ rõ đường dẫn của file MyDB_primary là tên logical_file_name, c:\Mssql7\Data\MyData1.mdf là tên os_file_name. Những trang trong file được đánh số bắt đầu từ 0. Mỗi file có 1 số ID. Mỗi trang trong file gồm cả ID file và số thứ tự trang trong file. Ví dụ: file primary có kích thước 4MB, và secondary có kích thứơc 1 MB. Trang đầu tiên trong mỗi file là trang header file chứa thông tin về thuộc tính của file. Trang thứ 9 trong primary file là trang khởi động cơ sở dữ liệu chứa thông tin về thuộc tính của cơ sở dữ liệu. 2.3. LÝ THUYẾT MÔ HÌNH QUAN HỆ 2. 3.1. Các khái niệm cơ bản  Thực thể: là một đối tượng cụ thể nào đó  Thuộc tính thực thể: Tính chất xác định thực thể  Lớp thực thể : Các thực thể có cùng thuộc tính  Lược đồ quan hệ:  Thuộc tính: Tên thuộc tính, miền xác định của thuộc tính  Lược đồ quan hệ gồm các thuộc tính của thực thể (tên, miền xác định) cùng với các mệnh đề ràng buộc Lược đồ của một quan hệ: R== (A1: D1’ A2 : D2 ,……,An :Dn , M) trong đó: AI :Tên thuộc tính, DI :Miền xác định của thuộc tính,M: Mệnh đề ràng buộc 2.3.2. Khái Niệm phụ thuộc dữ liệu và các dạng chuẩn  Một thuộc tính gọi là phụ thuộc vào các thuộc tính khác khi giá trị của thuộc tính này phụ thuộc vào giá trị của thuộc tính kia. Sự phụ thuộc có thể là trực tiếp hay gián tiếp.  Một quan hệ bao giờ cũng có một nhóm thuộc tính mà giá trị của chúng qui định giá trị của các thuộc tính khác, nhóm thuộc tính đó gọi là khóa.  Với một quan hệ tùy vào các phụ thuộc của các thuộc tính vào khóa trong đó mà ta phân chia các quan hệ đó thành các dạng chuẩn khác nhau. Các dạng chuẩn cơ bản: Dạng chuẩn 1 Dạng chuẩn 2 Dạng chuẩn 3 Các dữ liệu lưu giữ dưới dạng chuẩn 3 tránh được hiện tượng dư thừa dữ liệu, tạo cho dữ liệu có tính độc lập cao. Các quan hệ nếu chưa ở dạng chuẩn 3 sẽ được phân rã thành các quan hệ nhỏ hơn ở dạng chuẩn 3. 2.3.3 Khái niệm chỉ dẫn và khóa chỉ dẫn Để có thể tìm kiếm thông tin nhanh theo một tiêu chuẩn nào đó chúng ta tạo ra các thông tin chỉ dẫn theo tiêu chuẩn đó. Các thông tin chỉ dẫn là các thông tin giúp ta tìm kiếm dữ liệu nhanh. Các thông tin này gọi là khóa chỉ dẫn . Khóa chỉ dẫn có thể là một trường, hoặc nhiều trường . Với cách tạo ra khóa chỉ dẫn theo tiêu chuẩn nào đó ta có thể tìm kiếm nhanh dữ liệu theo tiêu chuấn đó. 2.4.GIỚI THIỆU VỀ JAVA SERVLET 2.4.1.Khái niệm về JAVA SERVLET Mã nguồn của Servlet dược biên dịch ra mã byte – code của Java. Servlet dễ sử dụng và phát triển những ứng dụng Web nhanh hơn CGI. Servlet chạy tự động khi chúng được gọi từ trình chủ (Web server) . Servlet chạy toàn bộ trên máy ảo Java, xử lý và sinh mã HTML trả về trình khách. Bằng cách này Servlet có thể chạy trên rất nhiều trình chủ hiểu Java và chúng không phụ thuộc và trình duyệt (browser). 2.4.2.Những ứng dụng thực tế của JAVA SERVLET và kiến trúc của JAVA SERVLET Servlet có thể được sử dụng trong bất kỳ một ứng dụng nào liên quan đến Web. Hai gói tạo nên kiến trúc của Java Servlet là : javax.servlet và javax.servlet.http. Gói javax.servlet chứa đựng phần giao diện tổng quát phục vụ cho Servlet. javax.servlet.http chứa đựng các lớp phục vụ cho giao thức triệu gọi HTTP. Bộ khung hình thành nên Servlet bao gồm các phương thức sau: init() Phương thức khởi tạo servlet. service() Phương thức nhận và trả lời từ phía người sử dụng. destroy() Phương thức thực hiện việc huỷ servlet. Các tập tin Servlet đều được đặt trong giao diện bao gồm các phương thức trên. Chúng rất rõ ràng trong giải pháp lập trình đối tượng và dễ dàng mở rộng. 2.5.GIỚI THIỆU VỀ JAVA SERVER PAGES(JSP) 2.5.1.Khái niệm về JSP JSP là công nghệ rất mạnh để tạo trang HTML động về phía trình chủ. JSP là phần mở rộng trực tiếp của Java Servlet, bộ diễn dịch JSP sẽ ánh xạ trực tiếp mã JSP thành Servlet. Viết trang JSP ta không cần phải thông qua quá trình biên dịch tập tin thực thi .class như trong Servlet. JSP cung cấp mô hình lập trình Web dễ dàng và tiện dụng hơn Servlet. Công việc biên dịch trang JSP được thực hiện tự động bởi trình chủ. 2.5.2.Quan hệ giữa Servlet và JSP 2.5.2.1.Cách trình chủ biên dịch trang JSP thành servlet Thật sự các trang JSP được trình chủ dịch ra thành servlet trước khi cho thực thi. Khi trình khách triệu gọi trình chủ Web server sẽ thực hiện các bước sau: Bước 1: Kiểm tra trang JSP đã được dịch ra thàn mã nguồn tương đương của servlet chưa. Bước 2 : Nếu chưa biên dịch trang JSP thành file nguồn thành file nguồn .java theo cấu trúc của servlet. Gọi trình biên dịch javac biên dịch file nguồn .java thành file thực thi của servlet .class. Bước 3 : Nạp servlet đã biên dịch ở bước 2, thực thi kết quả trả về cho trình khách. Bước 4 :Nếu file JSP đã được biên dịch trước đó : thực hiện việc kiểm tra xem nội dung file JSP có thay đổi hay không. Nếu có, quay lại bước 2 biên dịch lại trang. Nếu không thực hiện lại bước 3. 2.5.2.2. So sánh giữa Servlet và JSP Do mã trang JSP thi thực thi đều được biên dịch ra servlet cho nên tất cả những gì servlet làm được cũng đồng nghĩa với trang JSP làm được. Viết trang JSP đôi khi đơn giản hơn trang servlet vì không cần phải qua bước đăng ký và biên dịch thủ công. JSP có thể trộn lẫn mã java với các thẻ HTML nên việc thiết kế trang JSP thường đơn giản và dễ bổ sung hơn so với servlet. Tuy nhiên đây cũng là yếu tố không nên lạm dụng đối với JSP. Nếu tập trung tất cả mã Java vào cùng với mã HTML thì một khi dự án mở rộng và trở nên phức tạp tất nhiên việc bảo trì và nâng cấp ứng dụng Web với hàng trăm trang JSP sẽ rất khó khăn. Trong quá trình phát triển ứng dụng Web theo nhóm, việc trộn lẫn mã Java và HTML trong trang JSP cho thấy không hiệu quả. Khó có thể tách rời giữa công việc viết mã cho ứng dụng (thường là vai trò của lập trình viên – programmer) và nhóm xây dựng giao diện (nhóm thiết kế Web – Web designer). Mã trang JSP ở dạng thuần văn bản nên thường không che được mã nguồn của logic chương trình. Với servlet tuy phải biên dịch và đăng ký thủ công với trình chủ nhưng bù lại tính bảo mật cao hơn. Ta chỉ cần cung cấp cho trình chủ Web Server bản servlet nhị phân ( file .class ) đã qua bước biên dịch mà không cần đến mã nguồn của servlet ban đầu. Mặt khác, các servlet có thể tương tác liên hoàn với nhau để tạo nên những kết xuất tuỳ biến và đa dạng trước khi trả kết quả về cho trình khách. Servlet có thể phân rã các đơn thể của dự án và phát triển độc lập nhau như các thành phần riêng biệt để ráp lại trong một tổng thể chung. Mặc dù vậy, việc kết xuất trong servlet thường dựa vào phương thức print() hoặc println() nên việc kết xuất phụ thuộc vào lập trình viên với hàng loạt các lệnh print() và println() rất khó quản lý. Việc quyết định sử dụng trang JSP, Servlet hay kết hợp cả hai là tùy vào từng dự án và mục đích của chương trình cần phát triển. Thông thường đối với những dự án nhỏ, yêu cầu thời gian nhanh, JSP là lựa chọn thích hợp nhất. Đối với những dự án cần sự độc lập và chỉ thiên về xử lý ta nên sử dụng servlet. Trường hợp dự án lớn ta nên kết hợp cả servlet và JSP. Mô hình kết hợp tốt nhất giữa servlet và JSP thường được gọi là MCV (Model – View – Controler) trong đó servlet đóng vai trò trung tâm điều khiển (controler) đưa ra quyết định xử lý, JSP đóng vai trò thể hiện giao diện hay hiển thị dữ liệu đã xử lý (View). Quy trình tính toán logic của ứng dụng được giao lại cho các thành phần JavaBean hay EJB. 2.6. GIỚI THIỆU VỀ JAVABEANS 2.6.1.Khái niệm về JAVABEANS JavaBeans là một thành phần đối tượng được xây dựng từ ngôn ngữ Java. JavaBeans có thể là việc và chạy trên mọi máy ảo Java. Yêu cầu tối thiểu nhất để tạo nên thành phần JavaBeans là : công cụ và trình biên dịch JDK 1.1 trở lên. JavaBeans có thể sử dụng các phương thức get/set để láy về và đặt thuộc tính cho đối tượng Bean mà nó thể hiện. 2.6.2.Các thẻ chuẩn của JAVABEANS trong trang JSP 2.6.2.1. Thẻ dùng để khai báo phạm vi và định danh id(identify) nhận dạng Bean. Nó tương tự như khai báo biến đối tượng trong mã java. Thẻ có cú pháp như sau: <jsp:useBean id=”name” scope=”page | request | session | application” class=”packagename.classname”> Thuộc tính Diễn giải Id Thuộc tính này là định danh nhận dạng của đối tượng Bean trong một phạm vi cho trước. “name” là tên của Bean có phân biệt chữ hoa, thường. Scope Thuộc tính phạm vi cho biết môi trường sống của đối tượng. Phạm vi của khai báo mà thành phần Bean có hiệu lực bao gồm page (Bean chỉ có hiệu lực và phạm vi truy xuất trong khai báo nó). Request (Bean có hiệu lực trong một lần yêu cầu từ máy khách). Session (hiệu lực của bean tương tự hiệu lực của các biến session). Application (hiệu lực của bean tương tự hiệu lực của các biến application) Class Tên đầy đủ của lớp Bean. Đây là tên tập tin .class sua khi đã biên dịch từ mã nguồn .java. tên này cũng phân biệt chữ hoa và chữ thường BeanName Này để tham chiếu đến tên của Bean Type Thuộc tính chỉ ra loại biến kịch bản. Nếu biến này không chỉ rõ giá trị của nó sẽ là giá trị của thuộc tính lớp 2.6.2.2. Thẻ dùng để gán giá trị vào thuộc tính Bean. Thuộc tính tên của Bean chỉ định cho đối tượng phải được định nghĩa và nằm trong phạm vi cho phép. Cú pháp của Trong cú pháp trên, name cho biết tên Bean mà thuộc tính của nó đã được cài đặt. prop_expr có thể có các khai báo sau: property =”*” | property = “propertyName” | property = “propertyName” param=”parameterName”| property = “propertyName” value=” propertyValue” Thuộc tính Diễn giải Name Thuộc tính trình bày tên của Bean, tên này đã được định nghĩa bởi thẻ Property Thuộc tính của Bean cần lấy giá trị Param Tham số cần dùng cho thuộc tính của Bean Value Giá trị được gán vào cho thuộc tính của Bean 2.6.2.3. Thẻ dùng để lấy giá trị thuộc tính Bean và chuyển giá trị thành kiểu chuỗi. Cú pháp cho thẻ như sau: Thuộc tính Diễn giải Name Thuộc tính trình bày tên của Bean, tên này đã được khai báo và định nghĩa bởi thẻ Property Thuộc tính của Bean cần lấy giá trị 2.6.3.Thêm JAVABEANS vào JSP Để sử dụng JavaBeans trong trang JSP, bạn cần khai báo Bean với thẻ: PHẦN 2 : XÂY DỰNG ỨNG DỤNG CHƯƠNG 1 PHÂN TÍCH BÀI TOÁN 1.1.TÊN ĐỀ TÀI Tìm hiểu xây dựng ứng dụng thư điện tử 1.2.DỀ CƯƠNG CHI TIẾT 1.2.1.Khảo sát Trong thời gian thực tập tốt nghiệp tôi đã khảo sát, tìm hiểu hệ thống thư tín điện tử. Quá trình xây dựng một ứng dụng thư điện tử (Email) rất đa dạng nhưng chủ yếu tập trung vào hai phần: ­ Xây dựng mail server : là chương trình hoạt động phía máy chủ nhận, lưu trữ mail, phân phối, gởi mail đến các trình chủ khác. Các chương trình như Mail Deamon, SendMail, Mail Exchange… là những mail server. ­ Xây dựng mail client : là chương trình hoạt động phía máy khách thực hiện chức năng cho phép người dùng nhập vào nội dung mail, gởi mail đến máy chủ mail server xác định. Nhận mail từ máy chủ về và hiển thị cho người dùng xem nội dung mail. Ví dụ như Outlook Express của Windows hay Web mail trên Internet là những trình đóng vai trò mail client. 1.2.2.Yêu cầu của bài toán Yêu cầu chính của bài toán ­ Phần mail client: thực hiện được cơ bản nhất những chức năng của một mail client như việc gởi, nhận, hiển thị nội dung mail thông qua trình duyệt Web với giao thức HTTP của Internet. ­ Phần mail server : thực hiện được chức năng tiếp nhận mail do trình khách (mail client) gửi lên (SMTP Server), lưu trữ mail trong thư mục nhất định cho phép người dùng sử dụng giao thức POP3 đọc mail (POP3 Server), chuyển mail đến máy chủ khác (Forward Server) hoặc phân giải địa chỉ mail gửi thẳng đến đích (Relay Server). 1.2.3.Dữ liệu vào, dữ liệu ra và các chức năng xử lý của hệ thống * Dữ liệu vào : ­ Phần mail client : + Thông tin đăng ký của người dùng ­ Phần mail server : + Mail do trình khách

Các file đính kèm theo tài liệu này:

  • pdfĐồ án tốt nghiệp - Phân tích thiết kế hệ thống - Dịch vụ thư tín điện tử và cài đặt một chương trình mang tính thử nghiệm do dịch vụ thư tín điện tử.pdf