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...
151 trang |
Chia sẻ: haohao | Lượt xem: 1145 | Lượt tải: 0
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 ngi 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 trng Header ......................................................... 39
1.4.3. C¸c trng 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 ngi 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 trng ®¹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 trng 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, ngi ta Ýt khi sư dơng víi c¸i tªn ®Çy ®đ cđa
hai giao thc nµy. Thng 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 thng ®ỵ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
HosttoHost
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 thng
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 thng
T = 1 th«ng lỵng cao
R (Reliability) (1 bit): ch ® tin cy yªu cÇu
R = 0 ® tin cy b×nh thng
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 cha 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 (thng 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 thng 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 ngi 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, ngi 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 trng 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 lu ý 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 ®Ĩ lu 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 TimetoLive. 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 TimetoLive,
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 trng 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 ngi 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 ®Ĩ ngi 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 ngi 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ư thng bao gm hai hƯ thng con: c¸c t¸c nh©n ngi 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 trng 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 ngi gưi t c¸c th
®ỵc gưi ®n vµ t ®ng chÌn n vµo c¸c trng 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 ngi gưi ®n n¬i ngi
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 (ngi 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 ngi sư dơng.
3. Reporting: Buc ph¶i thc hiƯn ®Ĩ b¸o cho ngi 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 cha? 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 ngi c
thĨ ®c ®ỵc th cđa h. §«i khi ngi 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× ngi 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, lu n, v ..v. N cịng s c thĨ thu nhn ®Ĩ ®c l¹i
víi c¸c th«ng ®iƯp ®· ®ỵc lu 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 ngi 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 ngi 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 ngi sư dơng t¹o c¸c hp th (mailboxes) ®Ĩ lu tr÷
c¸c th chuyĨn ®n (incoming email). C¸c lƯnh ®ỵc ngi 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 ngi gi¸m ®c c«ng ty thng cÇn gưi mt th«ng ®iƯp ®n mçi ngi trong s
nh÷ng ngi cp díi, nh÷ng kh¸ch hµng, hay ®n c¸c nhµ cung cp. Th× ®iỊu nµy ®a ra
mt ý tng 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
ngi c ®Þa ch trªn danh s¸ch.
Mt ý tng quan trng kh¸c lµ th ®iƯn tư ®ỵc ®¨ng ký, ®Ĩ cho phÐp ngi 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 ®Ĩ ngi ta c thĨ bit. Trong bt k trng hỵp nµo, ngi 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
(highpriority 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 ngi nhn th (alternative recipients) nu ngi ®Ç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 bu ®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 bu ®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 ngi 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 ngi 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 thng 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, ngi 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). Ngi 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 ngi 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 trng ®ỵ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 trng hiĨn thÞ ®ỵc ngi ta x©y dng thµnh mt ch¬ng
tr×nh. Trong c¸c hƯ thng phc t¹p h¬n, ngi sư dơng c thĨ x¸c ®Þnh cho c¸c trng nµo
®ỵc hiĨn thÞ b»ng c¸ch cung cp mt hiƯn tr¹ng ngi sư dơng (User Profile), hay mt
tƯp m« t¶ ®Þnh d¹ng hiĨn thÞ. Trong vÝ dơ nµy, trng ®Çu tiªn lµ s th«ng ®iƯp c
trong hp th. Trng 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 lu 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 ngi 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.
Trng th ba cho bit chiỊu dµi cđa th«ng ®iƯp vµ trng th t cho bit ai lµ ngi gưi
th«ng ®iƯp. V× trng nµy ®ỵc trÝch ra t c¸c th«ng ®iƯp rt ®¬n gi¶n nªn trng 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µ ngi
gưi c thĨ ®Ỉt vµo trong trng nµy. Cui cng lµ trng 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 ngi nµo quªn ®iỊn vµo trng
nµy th× thng ®ỵ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Þ, ngi 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 ngi 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 ngi 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 trng cho phÇn ®Çu (header), mt dßng ®Ĩ trng vµ sau ® lµ phÇn th©n (body).
Mçi trng header bao gm c¸c dßng v¨n b¶n ASCII cha tªn trng, du hai chm, vµ cho
hÇu ht c¸c trng ®Ịu c mt gi¸ trÞ. RFC 822 lµ mt chun cị vµ gi÷a c¸c trng 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 thng 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 trng 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 trng 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. Trng To: trng nµy cho bit ®Þa ch DNS cđa ngi nhn ®Çu tiªn. Trng
hỵp nhiỊu ngi nhn cịng c thĨ cho phÐp. Trng Cc: cho bit ®Þa ch cđa nh÷ng ngi 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 ngi nhn th nht vµ ngi 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. Trng
Bcc: (Blind carbon copy) ging nh trng Cc: ch tr lµ dßng nµy ®ỵc xa khi tt c¶ c¸c
b¶n sao ®ỵc gưi ®n nh÷ng ngi nhn ®Çu tiªn vµ ngi nhn th hai. §Ỉc tÝnh nµy cho
phÐp ngi ta gưi c¸c b¶n sao ®n nh÷ng ngi trong nhm th ba mµ trong ® kh«ng c ngi
th nht vµ ngi 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
ReturnPath: Can be used to identify a path back to the sender
C¸c trng header RFC 822 liªn quan trong viƯc truyỊn th«ng ®iƯp
Hai trng k tip, From: vµ Sender: cho bit ®Ĩ ph©n biƯt ngi vit vµ ngi gưi
th«ng ®iƯp. Hai trng 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 nhng c« th ký lµ ngi tht s truyỊn n ®i. Trong trng
hỵp nµy, ngi qu¶n trÞ ph¶i ®ỵc liƯt kª vµo trong trng From: vµ c« th ký trong
trng Sender:.
Header Meaning
Date: The date and time the message was sent
ReplyTo: Email address to which replies should be sent
MessageId: Unique number for referencing this message latter
InReplyTo: MessageId of the message to which this is a reply
References: Other relevant MessageIds
Keywords: User chosen keywords
Subject: Short summary of the message for the oneline display
Mt s trng ®ỵc sư dơng trong header th«ng ®iƯp RFC 822.
Trng From: yªu cÇu ph¶i c cßn trng Sender: c thĨ ®ỵc b qua nu viƯc vit vµ
gưi cng mt ngi. C¸c trng nµy cÇn thit khi trong trng hỵp th«ng ®iƯp kh«ng ®ỵc
ph¸t ®i vµ ph¶i ®ỵc tr¶ l¹i cho ngi gưi.
Dßng cha trng 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.
Trng Return-Path: ®ỵc ®a vµo bi MTAs cui cng vµ ®ỵc dng cho viƯc gưi
tr l¹i ngi 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 ngi gưi), nhng n Ýt khi ®ỵc ®iỊn ®Çy ®đ nh th vµ ch ®Ỉc
biƯt cha ®Þa ch cđa ngi gưi.
Thªm vµo c¸c trng 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 trng kh¸c ®ỵc sư dơng bi c¸c UA hay nh÷ng ngi nhn th. Nh÷ng trng
th«ng thng nht ®ỵc liƯt kª trong h×nh bªn díi. HÇu ht nh÷ng trng 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 thng, 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 bu
chÝnh th«ng thng.
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Ị ngi gưi, ngµy gưi,...
Th thng 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 lu tr÷ c hiƯu qu¶.
Cu trĩc th bao gm mt s trng 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 trng 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 trng header dµi
Mçi trng 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 trng (fieldname) vµ ni dung cđa trng (fieldbody).
§Ĩ thun tiƯn cho viƯc so s¸nh, phÇn fieldbody 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 trng header c cu trĩc
Mçi trng c cu trĩc bao gm mt fieldname, tip theo lµ du hai chm (”:”), sau ®
fieldbody vµ cui cng lµ cỈp kÝ t CRLF.
:
PhÇn fieldname 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 fieldbody c thĨ cha bt k× kÝ t ASCII nµo, ngo¹i tr cỈp kÝ t CRLF.
C¸c trng 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 trng nµy ®ỵc gi lµ trng c cu trĩc. VÝ dơ nh c¸c trng cha ®ng th«ng tin vỊ
Date, Address,.v.v. Mt s trng kh¸c nh ”Subject” vµ “Comments” ch ®ỵc coi nh mt
dßng v¨n b¶n b×nh thng.
Chĩ ý, bt k trng nµo mµ phÇn fieldbody ®ỵ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µ trng c cu trĩc.
1.4.1.2.3. C¸c trng header kh«ng c cu trĩc
Mt s trng nh “Subject” vµ “Comments” kh«ng ®ỵc coi lµ c¸c trng 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 trng 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 trng 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 trng.
Cu trĩc chung c d¹ng:
field = ”:” [fieldbody] CRLF
fieldname = 1*
fieldbody = *text
1.4.3. C¸c trng header ®iĨn h×nh
a. Trng RETURNPATH
= “ReturnPath” “:” routeaddr
Trng 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 ngi 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Ị (returnaddress) cđa ngi gưi ban ®Çu.
b. Trng RECEIVED
= “ReceivedFrom” “:” domain
Mt b¶n sao cđa trng 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 trng nµy rt h÷u Ých trong trng hỵp
x¶y ra lçi trong truyỊn th«ng.
Trng 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. Trng FORWARD
= “ForwardPath” “:” routeaddr
Trng 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 ngi 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 ngi nhn th.
d. Trng FROM
= “From” “:” mailbox
Trng th«ng tin nµy cha ®ng th«ng tin vỊ ngi gưi th (sender). Qu¸ tr×nh gưi th
cÇn ngÇm ®Þnh trng nµy lµ ®¬n. N x¸c minh ®Þa ch m¸y tÝnh, x¸c nhn bªn gưi lµ
mt ngi, 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 trng Sender
e. Trng DATE
= “Date” “:” datetime
Trng nµy cha ®ng th«ng tin vỊ ngµy, gi gưi th.
f. Trng TO
= “To” “:” mailbox
Trng nµy cha ®ng th«ng tin vỊ ngi nhn th (recipient) chÝnh thc.
g. Trng CC
= “cc” “:” address
Trng nµy cha ®ng th«ng tin vỊ ngi nhn th th hai, c ngha ®ng gưi (carbon copy
cc).
h. Trng BCC
= “bcc” “:” address
Trng nµy cha ®ng th«ng tin thªm vỊ ngi nhn th (blind carbon copybcc). Ni
dung cđa trng nµy kh«ng cha ®ng trong b¶n sao th gưi cho ngi nhn th ®Çu tiªn vµ
ngi nhn th hai.
i. Trng MESSAGEID
= “MessageID” “:” msgid
Trng nµy cha ®ng th«ng tin ®Þnh danh duy nht vỊ bc th ®ỵc gưi ®i. TÝnh
duy nht cđa trng nµy ®ỵc b¶o ®¶m bi hƯ thng sinh ra n. Trng nµy ®ỵc dng ®Ĩ
dµnh riªng cho m¸y tÝnh vµ kh«ng cÇn thit ®i víi ngi sư dơng.
j. Trng SUBJECT
= “Subject” “:” text
Trng 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”@MadHost,
Sam.Irving@OtherHost
MessageID:
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 trng
dÞch vơ truyỊn th«ng (transport service). DÞch vơ truyỊn th«ng cung cp mt m«i trng
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 (onetoone) 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 (senderSMTP) vµ nhn (receiverSMTP) th. Th«ng
thng, 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 ngi sư dơng (user) gưi
mt yªu cÇu dÞch vơ th tÝn, tríc tiªn SenderSMTP thµnh lp mt kªnh truyỊn th«ng hai
chiỊu tíi ReceiverSMTP. ReceiverSMTP 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 SenderSMTP vµ gưi tíi
ReceiverSMTP. ReceiverSMTP s thao t¸c trªn c¸c lƯnh ® vµ gưi tr¶ kt qu¶ vỊ phÝa
SenderSMTP.
SMTP cung cp c¬ ch chuyĨn th trc tip t m¸y chđ cđa ngi gưi ®n m¸y chđ cđa
ngi 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 ServerSMTP 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÷ thng. §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 thng hoỈc trong bt k× mt kiĨu
kt hỵp nµo gi÷a in hoa vµ in thng.
Lu ý 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, thng 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 trng hỵp nµy. Tªn cđa m¸y chđ
cịng kh«ng ph©n biƯt ch÷ hoa, thng.
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 ngi gưi th.
LƯnh RCPT ®ỵc gưi ®i kÌm theo lµ tham s vỊ ®Þa ch ngi nhn th. C thĨ thc
hiƯn nhiỊu lÇn lƯnh nµy trong trng hỵp mun gưi th cho nhiỊu ngi.
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 ngi gưi th.
H¹n ch: Ch c thĨ thc hiƯn khi cha thc hiƯn chÝnh lƯnh nµy.
Chi tit: LƯnh nµy dng ®Ĩ x¸c nhn ngi gưi th ®ng thi thit lp mt phiªn giao
dÞch SMTP víi ReceiverSMTP (Server). N ®a ra ®ng dn
®Ĩ sư dơng trong trng hỵp phiªn giao dÞch kh«ng thc hiƯn thµnh c«ng.
Ngỵc l¹i, th«ng tin vỊ ngi gưi s ®ỵc lu l¹i.
Th«ng tin ph¶n hi:
250 OK
Trng 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 ngi nhn th.
H¹n ch: Ch c thĨ thc hiƯn khi ®· ®Þnh danh ngi gưi th b»ng lƯnh MAIL.
Chi tit: LƯnh nµy dng ®Ĩ x¸c nhn ngi nhn th ®ỵc ch ®Þnh trong tham s
. Nu ReceiverSMTP chp nhn th× th«ng tin vỊ ngi gưi s ®ỵc
lu l¹i. LƯnh nµy c thĨ thc hiƯn nhiỊu lÇn ®Ĩ x¸c nhn nhiỊu ngi nhn th.
Th«ng tin ph¶n hi:
250 OK
Trng 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 ngi gưi
vµ ngi 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µ lu 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 ”.”. Lu ý 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 trng 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 USCISIF.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 trng hỵp ®Þa ch trong tham s bÞ sai, nhng 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 ngi 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 ngi 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 ngi
nhn thuc mt m¸y chđ kh¸c. N s ®a ra ®Þa ch chÝnh x¸c ®Ĩ sư dơng nhng trong trng
hỵp nµy n kh«ng thc hiƯn viƯc gưi th ®i. ChÝnh v× vy, ngi 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 ngi 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 ngi 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 ngi sư
dơng.
ViƯc ph¸t th ®n mailbox cđa ngi 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 ReceiverSMTP 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 ngi 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
ngi sư dơng. Nu ngi sư dơng cha kÝch ho¹t (hoỈc kh«ng chp nhn kiĨu giao
dÞch nµy) th× ReceiverSMTP 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 ngi sư dơng.
Th«ng tin ph¶n hi:
450 OK
b. LƯnh SOML FROM
Tham s: ®Þa ch terminal cđa ngi 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 ngi sư dơng trong trng hỵp ngi sư dơng
kÝch ho¹t (vµ chp nhn kiĨu giao dÞch nµy). Trong trng hỵp ngỵc l¹i, ngha lµ
ngi sư dơng cha kÝch ho¹t th× d÷ liƯu cđa th s ®ỵc chuyĨn ®n mailbox
cđa ngi nhn. Phiªn giao dÞch thµnh c«ng nu th ®ỵc chuyĨn ®n terminal cđa
ngi sư dơng.
c. LƯnh SAML FROM
Tham s: ®Þa ch terminal cđa ngi 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 ngi sư dơng trong trng hỵp ngi sư dơng
kÝch ho¹t (vµ chp nhn kiĨu giao dÞch nµy). Trong bt c trng hỵp nµo th× d÷
liƯu cđa th cịng s ®ỵc chuyĨn ®n mailbox cđa ngi nhn. Phiªn giao dÞch
thµnh c«ng nu th ®ỵc chuyĨn ®n mailbox cđa ngi 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 BBNUNIX.ARPA Simple Mail Transfer Service Ready
S: HELO USCISIF.ARPA
R: 250 BBNUNIX.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 BBNUNIX.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 SenderSMTP vµ ReceiverSMTP ®ỵc coi nh mt cuc hi
tho¹i, ®ỵc ®iỊu khiĨn bi SenderSMTP. Nh vy, SenderSMTP ®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 SenderSMTP ®a
ra lƯnh yªu cÇu, n ph¶i ®ỵi th«ng tin ph¶n hi t ReceiverSMTP 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 trng 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 trng 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 trng 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 trng 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 cha ®ỵ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 ngi 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 ngi 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 ngi 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 trng 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 ngi 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, cha c mt th nµo bÞ ®¸nh du xo¸.
Trong trng 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 ngi 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 ngi 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 ngi 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 ngi 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 ngi dng. Lu ý, 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 trng 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 ngi dng. Trong trng 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 trng 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 trng hỵp c lçi, POP3 Server s gưi tr¶
”ERR”. Lu ý, 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 trng hỵp cßn ®ang trong
tr¹ng th¸i TRANSACTION mµ c¸c th ®· bÞ ®¸nh du xa cha 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 trng 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.
Lu ý 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 trng 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 nhng 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, nhng
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 ngi 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 MIMEVersion: ®ỵ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
MIMEVersion: Indentifies the MIME version
ContentDescription: Humanreadable string telling what is in the message
ContentId: Unique identifier
ContentTransferEncoding: How the body is wrapped for transmission
ContentType: 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: ContentType: 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
Octelstream 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
Externalbody 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ư spaddserver (thêm server) and spdropserver (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 email đế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:
- Đồ á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