Tải bản đầy đủ (.doc) (132 trang)

PHÁT TRIỂN CHƯƠNG TRÌNH gửi NHẬN THƯ tín điện tử QUA MẠNG INTERNET BẰNG JAVA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.23 MB, 132 trang )

Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
-------o0o------NGUYỄN THỊ THANH HẢI
ĐỀ TÀI:

PHÁT TRIỂN CHƯƠNG TRÌNH
GỬI/ NHẬN THƯ TÍN ĐIỆN TỬ QUA MẠNG
INTERNET BẰNG JAVA
LUẬN VĂN CỬ NHÂN TIN HỌC

HÀ NỘI - 2007

1
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
-------o0o------NGUYỄN THỊ THANH HẢI – 0 3 0 3 0 1 9 0
ĐỀ TÀI:

PHÁT TRIỂN CHƯƠNG TRÌNH
GỬI/ NHẬN THƯ TÍN ĐIỆN TỬ QUA MẠNG
INTERNET BẰNG JAVA
LUẬN VĂN CỬ NHÂN TIN HỌC

GIÁO VIÊN HƯỚNG DẪN


Ths. HÀ MẠNH ĐÀO

NIÊN KHOÁ 2002 - 2007

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
2
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
....................................................................................................................
....................................................................................................................
....................................................................................................................
....................................................................................................................
....................................................................................................................
....................................................................................................................

....................................................................................................................
....................................................................................................................
....................................................................................................................
....................................................................................................................

3
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.

LỜI CẢM ƠN

Trước tiên, em xin bày tỏ lòng biết ơn chân thành tới Thạc sĩ
Hà Mạnh Đào, người thầy đã tận tâm hướng dẫn, giúp đỡ em trong
suốt thời gian thực hiện đề tài.
Em xin chân thành cảm ơn các Thầy cô trong Khoa CNTT,
trường Đại học CNTT, Đại học Quốc Gia TP Hồ Chí Minh nói
chung và các thầy cô trong Trung tâm đào tạo kỹ thuật và nghiệp
vụ cao nói riêng đã tận tình giảng dạy, hướng dẫn và tạo điều kiện
tốt cho em thực hiện luận văn.
Cuối cùng, xin chân thành cảm ơn sự giúp đỡ, động viên của
gia đình và bạn bè - những người thân luôn bên cạnh tôi trong suốt
thời gian vừa qua.

4
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.

Hà nội, ngày 04 tháng 10 năm2007.
Sinh viên thực hiện

Nguyễn Thị Thanh Hải

LỜI NÓI ĐẦU
Hiện nay ngành CNTT đang là ngành được đầu tư và quan tâm nhiều nhất
và tại đó môi trường Internet đang là tâm điểm của nhiều mối đầu tư, một trong
những dịch vụ đạt được nhiều thành công cũng như lợi ích của người sử dụng đó
chính là dịch vụ thư tín điện tử nó giúp cho quá trình trao đổi thông tin được dễ
dàng và nhanh chóng. Để sử dụng dịch vụ này một cách có hiệu quả cao nhất
chúng ta phải tìm hiểu và nghiên cứu chúng.
Đồ án này được tôi viết ra với mục đích chính là vì lý do như vậy. Sau
thời gian nghiên cứu và tìm hiểu với sự giúp đỡ nhiệt tình của Thầy giáo Ths. Hà
Mạnh Đào, tôi đã hoàn thành đề tài này.
Đồ án này đã trình bày và phân tích khá sâu về dịch vụ thư tín điện tử,
phương pháp lập trình Java (tôi sử dụng Java làm ngôn ngữ lập trình để xây
dựng chương trình chạy Demo). Mặc dù rất cố gắng nhưng chắc chắn chương
trình này không thể tránh khỏi những thiếu sót, vì thế tôi rất mong được mọi
người đọc, tìm hiểu và đưa ra những ý kiến nhận xét, về nội dung, chương trình
của đề tài để đề tài này được hoàn thiện hơn nữa.

5
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
Tôi xin chân thành cảm ơn sự giúp đỡ nhiệt tình của các thầy cô giáo tại
Trung tâm Đào tạo kỹ thuật và nghiệp vụ cao, các ý kiến đóng góp của mọi
người và đặc biệt là sự giúp đỡ nhiệt tình của Thầy giáo Ths. Hà Mạnh Đào.

Hà nội, ngày 04 tháng 10 năm
2007.
Sinh viên thực hiện

Nguyễn Thị Thanh Hải

ĐỀ CƯƠNG CHI TIẾT LUẬN VĂN TỐT NGHIỆP
Tên đề tài:
PHÁT TRIỂN CHƯƠNG TRÌNH GỬI/ NHẬN THƯ TÍN ĐIỆN
TỬ QUA MẠNG INTERNET BẰNG JAVA.
1. Tổng quan về đề tài
Dịch vụ thư tín điện tử là dịch vụ phổ biến trên mạng Internet, là dịch vụ
được tổ chức theo mô hình Client/Server và làm việc theo cơ chế "lưu và chuyển
tiếp".
Hiện có rất nhiều chương trình gửi/nhận thư tín điện tử trong thực tế như
Express, OutLook, các chương trình được phát triển tích hợp trong các trình
duyệt Web... và hiện vẫn có nhiều chương trình đang được phát triển khác.
Dịch vụ thư tín điện tử qua mạng Internet sử dụng giao thức gửi thư
SMTP cùng với MIME, và các giao thức truy cập thư phổ biển như POP3,

6
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
IMAP4, trong đó IMAP4 đang được quan tâm nhiều do những ưu điểm của
chúng so với POP3.
Đề tài này cũng như nhiều nhà phát triển dịch vụ thư tín điện tử, mong
muốn xây dựng một chương trình gửi/ nhận thư tín điện tử trên cơ sở các giao
thức SMTP, POP3/IMAP4 bằng ngôn ngữ Java.

2. Mục tiêu của đề tài
* Khảo sát mô hình dịch vụ thư tín điện tử qua mạng Internet:
- Mô hình.
- Cơ chế chuyển thư, MTA, MUA, MIME,...
- Khảo sát tập lệnh và đáp ứng của giao thức SMTP.
- Khảo sát tập lệnh và đáp ứng của các giao thức truy cập thư POP3 và
IMAP4.
* Xây dựng được chương trình gửi nhận thư bằng ngôn ngữ lập trình Java:
- Phân tích và thiết kế bài toán.
- Phát triển các modul chương trình.
- Xây dựng giao diện chương trình.
* Thử nghiệm chương trình và đánh giá khả năng ứng dụng trong thực tế:
- Cấu hình máy chủ Email (mDaemon hoặc Exchange Server).
- Thử nghiệm chương trình trong mạng LAN.
- Thử nghiệm chương trình trên mạng Internet.
* An toàn và bảo mật cho dịch vụ thư tín điện tử bằng Java.
3. Các nội dung cần đạt
- Tìm hiểu kỹ dịch vụ thư tín điện tử.

7
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
- Tìm hiểu kỹ các đặc điểm, đặc trưng của giao thức SMTP cũng như
MIME và khảo sát tập lệnh, đáp ứng của giao thức.
- Tìm hiểu kỹ các đặc điểm, đặc trưng của giao thức truy cập thư POP3/
IMAP4 và khảo sát tập lệnh, đáp ứng của các giao thức.
- Thành thạo kỹ thuật lập trình mạng bằng Java, các gói và lớp của Java
hỗ trợ lập trình cho dịch vụ thư tín điện tử.

- Biết cách phân tích và thiết kế giải quyết một bài toán thực tế.
- Xây dựng được phần mềm gửi/nhận thư tín điện tử có khả năng ứng
dụng được trong thực tế.
- Thử nghiệm được chương trình.
- Hoàn thành được luận văn đồ án.

4. Các yêu cầu cài đặt
- Cài đặt, cấu hình máy chủ thư tín điện tử bằng phần mềm mDaemon
trên hệ điều hành Windows 2000 Server/ Windows2003 Server.
- Cài đặt, cấu hình chương trình gửi/nhận thư tín điện tử trên máy trạm.
- Thử nghiệm gửi, nhận thư trên mạng LAN, Internet.
5. Thời gian thực hiện: 5 tháng
6. Tài liệu tham khảo
[1] Lập trình mạng bằng java; giáo trình đào tạo của ĐHCNTT- ĐHQG
TPHCM.
[2] Giáo trình lý thuyết và bài tập Java; Trần Dũng Tiến; NXB Lao động xã
hội.
[3] Java2, lập trình và ứng dụng; Nguyễn Tiến...; NXB Thống kê.

8
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
[4] Bảo mật lập trình mạng trong Java 2; Trần Thế Bảo; NXB Thống kê.
[5] Programming the Internet with Java; Darel Ince & Adam Freeman; NXB
Addison- Wesley.
[6] MSDN library.
[7] Internet: www.java.sun.com;....
GIÁO VIÊN HƯỚNG DẪN


SINH VIÊN THỰC HIỆN

Ths. Hà Mạnh Đào

Nguyễn Thị Thanh Hải

MỤC LỤC
* * *
Lời cảm ơn ...........................................................................................................1
Lời nói đầu ..........................................................................................................2
Đề cương chi tiết luận văn tốt nghiệp ...............................................................3
1. Tổng quan về đề tài .......................................................................................3
2. Mục tiêu của đề tài ........................................................................................3
3. Các nội dung cần đạt .....................................................................................4
4. Các yêu cầu cài đặt minh hoạ ........................................................................5
5. Thời gian thực hiện ........................................................................................5
6. Tài liệu tham khảo .........................................................................................5
Mục lục ................................................................................................................6
Danh mục các hình vẽ........................................................................................13
9
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
Danh mục các bảng vẽ ......................................................................................15
Chương 1: TỔNG QUAN VỀ DỊCH VỤ THƯ TÍN ĐIỆN TỬ ....................16
1.1 Giới thiệu về dịch vụ Email .....................................................................16
1.2 Các thành phần của SMTP .....................................................................17
1.3 Tác tử người sử dụng ...............................................................................18

1.3.1 Gửi thư .................................................................................................18
1.3.2 Nhận thư ...............................................................................................19
1.4 Địa chỉ Email ............................................................................................19
1.5 Sự trễ pha trong quá trình gửi thư tới người nhận ..............................19
1.5.1 Phía bên người gửi trễ ..........................................................................19
1.5.2 Sự trễ pha phía người nhận ..................................................................20
1.5.3 Sự trễ trung gian ...................................................................................20
1.6 Sử dụng bí danh (Alias) ...........................................................................21
1.6.1 Sự mở rộng một - nhiều .......................................................................21
1.6.2 Sự mở rộng nhiều - một .......................................................................22
1.7 Tác tử chuyển mail (MTA) ......................................................................22
1.8 Các lệnh và các đáp ứng (Command and Response) ............................23
1.8.1 Các lệnh ...............................................................................................23
1.8.2 Các đáp ứng (Response) ......................................................................26
1.9 Các giai đoạn truyền thư .........................................................................27
1.9.1 Giai đoạn thiết lập kết nối ....................................................................28
1.9.2 Giai đoạn chuyển thông điệp thư .........................................................28
1.9.3 Kết thúc kết nối ....................................................................................29
1.10 Sự mở rộng thư điện tử qua mạng Internet đa mục đích (MIME)....29
Chương 2: CÁC GIAO THỨC TRUY CẬP THƯ TÍN ĐIỆN TỬ ...............31

10
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
2.1 Đặt vấn đề .................................................................................................31
2.2 Giao thức IMAP4 .....................................................................................31
2.2.1 Giới thiệu chung .................................................................................31
2.2.1.1 Định nghĩa ......................................................................................31

2.2.1.2 Chuẩn về thư điện tử được hỗ trợ ..................................................31
2.2.1.3 Khả năng truy cập là chìa khoá ......................................................32
2.2.2 Tổng quan về Protocol .......................................................................33
2.2.2.1 Mức độ kết nối ...............................................................................33
2.2.2.2 Commands and responses ..............................................................33
2.2.2.2.1 Giao thức gửi của máy khách và giao thức nhận của máy chủ 33
2.2.2.2.2 Giao thức gửi của máy chủ và giao thức nhận của máy khách 34
2.2.3 State và sơ đồ tràn .............................................................................35
2.2.3.1 Trạng thái không xác thực ..............................................................35
2.2.3.2 Trạng thái đã được xác thực ...........................................................36
2.2.3.3 Trạng thái đã lựa chọn ....................................................................36
2.2.3.4 Trạng thái logout .............................................................................36
2.2.4 Định dạng dữ liệu ...............................................................................36
2.2.4.1 Atom ...............................................................................................37
2.2.4.2 Number ...........................................................................................37
2.2.4.3 String ...............................................................................................37
2.2.4.3.1 Chuỗi 8 – bit and Binary ...........................................................38
2.2.4.4 Parenthesized List ...........................................................................38
2.2.4.5 NIL ..................................................................................................38
2.2.5 Cân nhắc trong thao tác ....................................................................38
2.2.5.1 Đặt tên cho hộp thư .........................................................................39

11
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
2.2.5.2 Kích cỡ hộp thư và cập nhật trạng thái của thông điệp ...................39
2.2.5.3 Trả lời khi không có mệnh lệnh nào được tiến hành ......................39
2.2.5.4 Hẹn giờ tự động logout ...................................................................40

2.2.5.5 Nhiều mệnh lệnh trong quá trình tiến hành ....................................40
2.2.6 Mệnh lệnh từ máy khách ...................................................................40
2.2.6.1 Mệnh lệnh từ máy khách - bất cứ trạng thái nào ............................41
2.2.6.1.1 Lệnh CAPABILITY (khả năng) ...............................................41
2.2.6.1.2 Lệnh NOOP ..............................................................................41
2.2.6.1.3 Lệnh LOGOUT .........................................................................42
2.2.6.1.4 Lệnh AUTHENTICATE ...........................................................42
2.2.6.1.5 Lệnh LOGIN .............................................................................42
2.2.6.2 Lệnh máy khách - trạng thái đã xác thực ........................................43
2.2.6.2.1 Lệnh SELECT ...........................................................................43
2.2.6.2.2 Lệnh EXAMINE .......................................................................45
2.2.6.2.3 Lệnh CREATE ..........................................................................46
2.2.6.2.4 Lệnh DELETE ..........................................................................47
2.2.6.2.5 Lệnh RENAME ........................................................................47
2.2.6.2.6 Lệnh SUBSCRIBE ...................................................................48
2.2.6.2.7 Lệnh UNSUBSCRIBE ..............................................................48
2.2.6.2.8 Lệnh LIST .................................................................................48
2.2.6.2.9 Lệnh LSUB ...............................................................................49
2.2.6.2.10 Lệnh APPEND ........................................................................50
2.2.6.3 Lệnh máy khách - trạng thái đã lựa chọn ........................................51
2.2.6.3.1 Lệnh CHECK ............................................................................51
2.2.6.3.2 Lệnh CLOSE .............................................................................51

12
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
2.2.6.3.3 Lệnh EXPUNGE .......................................................................52
2.2.6.3.4 Lệnh SEARCH .........................................................................52

2.2.6.3.5 Lệnh FETCH .............................................................................53
2.2.6.3.6 Lệnh PARTIAL ........................................................................53
2.2.6.3.7 Lệnh STORE .............................................................................54
2.2.6.3.8 Lệnh COPY ...............................................................................54
2.2.6.3.9 Lệnh UID ..................................................................................55
2.2.6.4 Lệnh máy khách - thực nghiệm/ phát triển .....................................55
2.2.6.4.1 Lệnh X<atom> ..........................................................................55
2.2.7 Trả lời từ máy chủ .............................................................................56
2.2.7.1 Trả lời từ máy chủ - trả lời trạng thái .............................................57
2.2.7.1.1 Trả lời OK ................................................................................58
2.2.7.1.2 Trả lời NO ................................................................................58
2.2.7.1.3 Trả lời BAD .............................................................................59
2.2.7.1.4 Trả lời PREAUTH ...................................................................60
2.2.7.1.5 Trả lời BYE ..............................................................................60
2.2.7.2 Trả lời từ máy chủ - trả lời trạng thái của máy chủ và hộp thư .....60
2.2.7.2.1 Trả lời CAPABILITY ..............................................................61
2.2.7.2.2 LIST Response .........................................................................61
2.2.7.2.3 Trả lời LSUB ...........................................................................62
2.2.7.2.4 Trả lời SEARCH ......................................................................62
2.2.7.2.5 Trả lời FLAGS .........................................................................62
2.2.7.3 Trả lời máy chủ - thông điệp trạng thái .........................................62
2.2.7.3.1 EXITS Response ......................................................................63

13
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
2.2.7.3.2 Trả lời RECENT ......................................................................63
2.2.7.3.3 Trả lời EXPUNGE ...................................................................63

2.2.7.3.4 Trả lời FETCH .........................................................................63
2.2.7.3.5 Các trả lời cũ ............................................................................64
2.2.7.4 Trả lời máy chủ - yêu cầu mệnh lệnh nối tiếp ...............................64
2.3 Giao thức POP3 (Post Office Protocol version 3) ................................64
Chương 3: XÂY DỰNG CHƯƠNG TRÌNH GỬI/ NHẬN THƯ .................66
3.1. Phân tích và thiết kế hệ thống ................................................................66
3.1.1. Hệ thống gửi/nhận thư tín điện tử ...................................................66
3.1.2 Các biểu đồ phân tích hệ thống ........................................................67
3.1.2.1. Biểu đồ Use-case hệ thống ............................................................67
3.1.2.2. Đặc tả các Use-case ......................................................................67
3.1.2.2.1. Use-case Soạn thư ...................................................................67
3.1.2.2.2. Use-case Gửi thư .....................................................................68
3.1.2.2.3. Use-case Nhận thư ..................................................................69
3.1.2.2.4. Use-case Cài đặt ......................................................................70
3.1.2.3. Biểu đồ hoạt động cho các Use-case ............................................70
3.2. Thiết kế xây dựng chương trình ............................................................74
3.2.1. Xây dựng các lớp giao thức gửi/ nhận thư ....................................74
3.2.1.1. Lớp SMTP Server .........................................................................74
3.2.1.1.1. Thuộc tính ..............................................................................75
3.2.1.1.2. Phương thức ...........................................................................75
3.2.1.2. Lớp POP3Folder ...........................................................................76
3.2.1.2.1. Thuộc tính .................................................................................76

14
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
3.2.1.2.2. Phương thức ..............................................................................76
3.2.1.3. Lớp IMAPFolder .............................................................................77

3.2.1.3.1. Thuộc tính .................................................................................77
3.2.1.3.2. Phương thức ..............................................................................77
Chương 4: CÀI ĐẶT VÀ THỬ NGHIỆM CHƯƠNG TRÌNH GỬI/NHẬN
THƯ ....................................................................................................................78
4.1. Mô hình thử nghiệm chương trình ........................................................78
4.1.1. Mô hình thử nghiệm trong mạng LAN ...........................................78
4.1.1.1. Yêu cầu cấu hình .........................................................................78
4.1.1.2. Cài đặt mDaemon ......................................................................79
4.1.1.3. Thiết lập thông số Domain .........................................................87
4.1.1.4. Thiết lập các thông số cho POP .................................................88
4.1.1.5. Tạo tài khoản, chỉnh sửa và xoá thư ..........................................88
4.1.1.6. Định thời gian xử lý, chuyển thư ...............................................91
4.1.2. Mô hình thử nghiệm qua mạng Internet ....................................110
4.2 Một số hình ảnh giao diện chương trình ..............................................111
4.2.1 Giao diện chương trình lúc khởi động..............................................111
4.2.2 Giao diện chính ................................................................................111
4.2.3 Giao diện thông tin chương trình .....................................................112
4.2.4 Giao diện soạn thư ...........................................................................113
4.2.5 Giao diện thư mục ............................................................................113
4.2.6 Giao diện cài đặt POP3 ....................................................................114
4.2.7 Giao diện sổ địa chỉ .........................................................................115

15
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
4.2.8 Giao diện bộ lọc trình diễn ..............................................................115
Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .................................116
Tài liệu tham khảo ..........................................................................................118

Phụ lục .............................................................................................................119

DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Mô hình thư điện tử .............................................................................16
Hình 1.2 Mô hình cơ bản của SMTP ..................................................................17
Hình 1.3 Tác tử người sử dụng............................................................................17
Hình 1.4 Tác tử truyền thư ..................................................................................18
Hình 1.5 Trễ phía bên người gửi .........................................................................20
Hình 1.6 Sự trễ trung gian....................................................................................20
Hình 1.7 Sử dụng bí danh nhiều - một ................................................................21
Hình 1.8 Qúa trình gửi/ nhận thư ........................................................................23
Hình 1.9 Các đáp ứng .........................................................................................26
Hình 3.1. Hệ thống gửi/ nhận thư tín điện tử ......................................................66

16
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
Hình 3.2. Biểu đồ Use-case hệ thống ..................................................................67
Hình 3.3. Biểu đồ hoạt động của Use-case Soạn thư ..........................................71
Hình 3.4. Biểu đồ hoạt động của Use-case Gửi thư ...........................................72
Hình 3.5. Biểu đồ hoạt động của Use-case Nhận thư ........................................73
Hình 3.6. Biểu đồ hoạt động của Use-case Cài đặt.............................................74
Hình 4.1. Mô hình mạng LAN ............................................................................78
Hình 4.2 Cửa sổ Welcome to MDaemon ............................................................79
Hình 4.3 Cửa sổ License Agreement .................................................................80
Hình 4.4 Cửa sổ Select Destination Directory ...................................................80
Hình 4.5 Cửa sổ Registration Information ..........................................................81
Hình 4.6 Cửa sổ Ready to Install ........................................................................82

Hình 4.7 Hộp thoại Intalling ...............................................................................82
Hình 4.8 Cửa sổ What Is Your Domain Name? .................................................83
Hình 4.9 Cửa sổ Please Set Up Your First Acount .............................................83
Hình 4.10 Cửa sổ Please Set Up Your DNS .......................................................84
Hình 4.11 Cửa sổ Please Set Up Your Operating Mode .....................................85
Hình 4.12 Cửa sổ Please Set Up Your Service Settings .....................................86
Hình 4.13 Cửa sổ Finish .....................................................................................86
Hình 4.14 Cửa sổ Primary Domain .....................................................................87
Hình 4.15 Cửa sổ DomainPOP ...........................................................................88
Hình 4.16 Cửa sổ Account Editor .......................................................................90
Hình 4.17 Hộp thoại Please Confirm ..................................................................91
Hình 4.18 Hộp thoại New Schedule ...................................................................91
Hình 4.19 Hộp thoại Event Scheduting ..............................................................92
Hình 4.20 Cửa sổ Remote Access service ..........................................................93

17
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
Hình 4.21 Chương trình lúc khởi động .............................................................111
Hình 4.22 Giao diện chính ................................................................................112
Hình 4.23 Thông tin chương trình ....................................................................112
Hình 4.24 Soạn thư ...........................................................................................113
Hình 4.25 Thư mục ...........................................................................................114
Hình 4.26 Cài đặt POP3.....................................................................................114
Hình 4.27 Sổ địa chỉ .........................................................................................115
Hình 4.28 Bộ lọc trình diễn ..............................................................................115

DANH MỤC CÁC BẢNG VẼ


Bảng 1.1 Mã số đáp ứng .....................................................................................27
Bảng 3.1. Các thuộc tính của lớp SMTPServer ..................................................75
Bảng 3.2. Các phương thức của lớp SMTPServer ..............................................75
Bảng 3.3. Các thuộc tính của lớp POP3Folder ...................................................76
Bảng 3.4. Các phương thức của lớp POP3Folder ...............................................76
Bảng 3.5. Các thuộc tính của lớp IMAPFolder ..................................................77
Bảng 3.6 Các phương thức của lớp IMAPFolder ...............................................77

18
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.

Chương 1
TỔNG QUAN VỀ DỊCH VỤ THƯ TÍN ĐIỆN TỬ
1.1 Giới thiệu về dịch vụ Email

19
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
Hình 1.1 Mô hình thư tín điện tử
Email là một phương tiện thông tin rất nhanh. Một mẫu thông tin (thư từ)
có thể được gửi đi ở dạng mã hoá hay dạng thông thường và được chuyển qua
các mạng máy tính đặc biệt là mạng Internet. Nó có thể chuyển mẫu thông tin từ
một máy nguồn tới một hay rất nhiều máy nhận trong cùng lúc.
Dịch vụ này được tổ chức theo mô hình Client Server và làm việc theo cơ

chế lưu và chuyển tiếp. Ở đây tôi muốn nói đến dịch vụ SMTP (Simple Mail
Transfer Protocol). Giao thức SMTP cung cấp một cơ chế trao đổi thư giữa
những người sử dụng trên cùng máy tính hoặc giữa các máy tính khác nhau
thông qua mạng nó tích hợp hỗ trợ các vấn đề sau:
+ Cho phép gửi thông điệp tới một hay nhiều người nhận
+ Cho phép gửi các thông điệp bao gồm cả văn bản, tiếng nói, hình ảnh.
+ SMTP Server sử dụng cổng mặc định số 25 còn Client có thể sử dụng
bất kỳ cổng nào còn rỗi.
- Mô hình cơ bản của SMTP như sau:
+ Ở phía Client cũng giao tiếp với
User

User

SMTP Client

SMTP Server

Port:?

TCP/IP

Port: 25

Hình 1.2 Mô hình cơ bản của SMTP
1.2 Các thành phần của SMTP (2 thành phần)
* Tác tử người sử dụng (UA = User Agent)
20
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.



Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
- Tác tử người sử dụng là một Modul phần mềm được sử dụng để thực
hiện các thao tác chuẩn bị cụ thể.
Ví dụ: Tạo ra phong bì thư, đặt thông điệp cổng, đặt thông điệp vào phong bì
v.v...
* Tác tử truyền thư (MTA = Mail Transfer Agent)
- Dùng để chuyển thư qua mạng Internet, vị trí của các thành phần này
được mô tả:

User

User

SMTP Client

SMTP Server
TCP/IP

Hình 1.3 Tác tử người sử dụng
Đối với hệ thống phức tạp SMTP sử dụng khái niệm chuyển tiếp Relay.
Khi đó cả bên gửi và bên nhận sẽ được bổ sung thêm một MTA mới đóng vai trò
là nhiệm vụ chuyển tiếp, sự chuyển tiếp được thực hiện khi gửi một bức thư từ
một mạng không sử dụng giao thức SMTP qua mạng Internet để tới một mạng
khác cũng không sử dụng giao thức SMTP. Khi đó MTA phía trên mạng gửi sẽ
chuyển thư về dạng SMTP để truyền qua Internet đến mạng nhận. Tại nơi mạng
nhận MTA sẽ chuyển tiếp, chuyển từ dạng SMTP sang dạng giao thức mà phía
bên mạng nhận sử dụng.
Use
r


User
UA

UA

MTA Server

MTA Client
Relay

Relay
21
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.

TCP/IP

MTA

MTA

Hình 1.4 Tác tử truyền thư
1.3 Tác tử người sử dụng
Thường là một phần mềm được sử dụng để gửi và nhận thư. Một số tác tử
người sử dụng có sử dụng giao diện.
1.3.1 Gửi thư
Để gửi thư người sử dụng thông qua UA để tạo thư

Hộp thư có hai phần:
+ Phong bì thư (Envelop): Chứa địa chỉ người gửi, địa chỉ người nhận và các
thông tin bổ sung.
+ Thông điệp Message: Là nội dung bức thư gồm phần đầu và phần thân.
Phần đầu (Header) gồm tên người sử dụng, tên người nhận và một số thông tin
khác, phần thân (Body) là phần chứa nội dung thông điệp gửi đi.
1.3.2 Nhận thư
Trong quá trình nhận thư UA sẽ thực hiện kiểm tra hộp thư, nếu có thư lập
tức UA sẽ gửi một thông điệp thông báo, nếu người sử dụng sẵn sàng đọc thư thì
nó sẽ hiển thị một danh sách và mỗi dòng chứa một thông tin tóm tắt về thư (địa
chỉ thư, chủ đề thư, thời gian ...).
1.4 Địa chỉ Email
Để gửi thư hệ thống điều khiển thư điện tử cần phải có một hệ thống địa
chỉ. Hệ thống địa chỉ được sử dụng trong SMTP gồm 2 phần: Local Part và
Domain Name.

22
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.
+ Local Part: Là địa chỉ của hộp thư cục bộ, thực chất là một file đặc biệt
chứa tất cả các thư nhận được của người sử dụng và được truy cập lấy bởi UA.
+ Domain Name: Đây là phần tên miền được gắn với mỗi bộ trao đổi thư,
một bộ trao đổi thư đó là các trạm để nhận và gửi thư điện tử thường được gọi là
Mail Exchain. Tên miền thường nhận được từ cơ sở dữ liệu của DNS.
1.5 Sự trễ pha trong quá trình gửi thư tới người nhận
1.5.1 Trễ phía bên người gửi
Phía người gửi thông điệp có thể bị trễ, SMTP quy định phía người gửi
phải cung cấp một hệ thống Spool là một bộ đệm có tính chất tạm thời trong hệ

thống này thông điệp sẽ được lưu trữ trước khi gửi, sau khi UA tạo ra được thư,
thư đó sẽ được gửi tới hệ thống Spool. Hệ thống chuyển thư sẽ kiểm tra định kỳ
các thư sẽ được chuyển cho Spool để biết thư nào có thể được gửi đi. Nếu một
thông điệp không thể gửi được thì nó sẽ được giữ trong Spool và kiểm tra trong
chu kỳ tiếp theo, nếu thông điệp gửi đi trong khoảng thời gian nào đó mà không
nhận được thì nó sẽ được trả về người gửi, thường từ 3 đến 5 ngày.
User

UA

Spool

MTA
Client

Interne
t

Hình 1.5 Trễ phía bên người gửi
1.5.2 Sự trễ pha phía người nhận
Sau khi thông điệp được nhận tại Mail Server phía người nhận, thông
điệp sẽ cất vào hộp thư của người nhận nằm ở trên Mail Server, chỉ đến
khi người nhận đọc thư thì UA mới lấy thư về hiển thị.
1.5.3 Sự trễ trung gian

23
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.

Khi SMTP cho phép các MTA trung gian phục vụ như một Client và
Server, chúng có thể nhận thư, giữ thông điệp của thư và trong các Spool của
chúng. Vì vậy có thể gây ra sự trễ do việc phát gửi thư chỉ được thực hiện khi
chúng thấy thích hợp.
Kết luận: Sự trễ của thư do cả ba nguyên nhân đó, đây là thuộc tính cơ bản
của Email.
Interne
t

MTA
Server

Mail
Box

UA

User

Hình 1.6 Sự trễ trung gian

1.6 Sử dụng bí danh (Alias)
SMTP cho phép sử dụng một tên đại diện cho một vài địa chỉ Email khác
nhau. Tên đó được gọi là bí danh và trong trường hợp này nó được gọi là sự mở
rộng một - nhiều. Đồng thời nó cho phép một người định nghĩa các địa chỉ Mail
khác nhau.
* Sự mở rộng bí danh nhiều - một:
Để thực hiện điều này hệ thống bao gồm nhiều các bộ phận để mở rộng bí
danh ở cả hai phía nhận và gửi, nó được thể hiện như sau:
User

User

Data
base

UA

UA

Spool

Mail boxes

Alias EXP

Alias EXP

MTA Client
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.

24

Internet

MTA

Data
base



Phát triển chương trình gửi/ nhận thư tín điện tử qua mạng Internet bằng Java.

Hình 1.7 Sử dụng bí danh nhiều - một
1.6.1 Sự mở rộng một - nhiều
Trong trường hợp này cùng một thông điệp được gửi tới nhiều người
nhận, người dùng phải sử dụng bí danh để ánh xạ tới một danh sách của nhiều
người nhận. Mỗi lần một thông điệp được gửi đi hệ thống sẽ kiểm tra tên của
người nhận dựa vào cơ sở dữ liệu mở rộng bí danh nếu có một sự mở rộng.
Đối với tên được kiểm tra thì chúng sẽ được gắn thông điệp với tất cả địa
chỉ người nhận. Nếu không có sự mở rộng với tên người nhận thì thư chỉ được
gửi tới người nhận một thông điệp duy nhất tới chính địa chỉ mà người sử dụng
chỉ ra.
1.6.2 Sự mở rộng nhiều - một
Trong trường hợp này người sử dụng có thể có nhiều Email khác nhau
nhưng UA của người nhận thư chỉ nhận dạng một hộp, thường thì phần Local
Part ở trong các địa chỉ là khác nhau. Trong hệ thống này khi nhận được một thư
nó kiểm tra cơ sở dữ liệu mở rộng nhiều - một, nếu có một tên hộp thư tương
ứng với phần Local Part của địa chỉ được nhận tìm thấy thì thư sẽ được gửi tới
hộp thư, còn ngược lại thì bị loại bỏ.
1.7 Tác tử chuyển Mail (MTA)

25
Sinh viên thực hiện: Nguyễn Thị Thanh Hải.


×