lỜi mỞ ĐẦu - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · web...

43
ĐỒ ÁN CƠ SỞ 4 ĐỀ TÀI: NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG MAIL CLIENT Sinh viên thực hiện : Đặng Xuân Long – 18IT079 Lê Đức Nam – 18IT085 1

Upload: others

Post on 20-Jul-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

ĐỒ ÁN CƠ SỞ 4

ĐỀ TÀI: NGHIÊN CỨU VÀ XÂY DỰNG

ỨNG DỤNG MAIL CLIENT

Sinh viên thực hiện : Đặng Xuân Long –

18IT079

Lê Đức Nam – 18IT085

Lớp : 18IT2

Giảng viên hướng dẫn : TS.Trần Thế Sơn

1

Page 2: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

Đà Nẵng , ngày tháng năm 2020

ĐAI HOC ĐÀ NĂNG

TRƯỜNG ĐAI HOC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

VIỆT-HÀN

ĐỒ ÁN CƠ SỞ 4

Đề tài : Nghiên cứu và xây dựng ứng dụng Mail Client

Đà Nẵng, ngày tháng năm 2020

2

Page 3: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

LỜI MỞ ĐẦUNgày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong

những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức, cũng như của

các công ty, nó đóng vai trò hết sức quan trọng, có thể tạo ra những bước đột phá mạnh mẽ.

Do sự phát triển bùng nổ của công nghê thông tin và truyền thông đã tác động tích cực

đến mọi mặt của đời sống chính trị, kinh tế, văn hóa, xã hội của loài người, tạo ra sự phát

triển vượt bậc chưa từng có trong lịch sử.

Không phải lúc nào một cuộc họp truyền thống tại văn phòng cũng là giải pháp tối ưu và

hữu hiệu nhất cho các tổ chức, doanh nghiệp. Sẽ có những trường hợp bắt buộc bạn không

thể đến trực tiếp để tham gia các cuộc gặp mặt như những trường hợp bị hạn chế ra ngoài,

tiếp xúc trực tiếp với người khác như bản thân đau ốm, dịch bệnh… đặc biêt là trong đại dịch

COVID-19 lần này. Lúc này, hình thức gửi mail giúp bạn kết nối nhanh, không bỏ lỡ những

thông tin quan trọng, xử lý kịp thời các vấn đề đang cần giải quyết gấp rút.

Do trình độ và thời gian có hạn nên đồ án tốt nghiệp không thể tránh khỏi các thiếu

sót. Em rất mong nhận được sự hướng dẫn và đóng góp ý kiến của các thầy cô và các bạn để

tốt đồ án tốt nghiệp của em hoàn thiện hơn.

Em xin chân thành cảm ơn các thầy cô giáo, các bạn đã tận tình giúp đỡ trong quá

trình học tập.

1

Page 4: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

LỜI CẢM ƠN

Để đồ án này đạt kết quả tốt đẹp, chúng em đã nhận được sự hỗ trợ, giúp đỡ của thầy

cô. Với tình cảm sâu sắc, chân thành, cho phép chúng em được bày tỏ lòng biết ơn sâu sắc

đến tất cả quý thầy cô đã tạo điều kiện giúp đỡ trong quá trình học tập, nghiên cứu và phát

triển đề tài.

Trước hết chúng em xin gửi tới quý thầy cô Trường Đại Học Công Nghệ Thông Tin và

Truyền Thông Việt - Hàn lời chào trân trọng, lời chúc sức khỏe và lời cảm ơn sâu sắc nhất.

Với sự quan tâm, chỉ bảo tận tình và truyền đạt những kiến thức bổ ích cho chúng em suốt

thời gian học kỳ vừa rồi, giúp em có thêm nhiều kiến thức và hiểu rõ hơn các vấn đề mình

nghiên cứu, đến nay chúng em đã có thể hoàn thành đề tài Đồ án môn học

Đặc biệt chúng em xin gửi lời cảm ơn chân thành nhất đến giảng viên TS. Trần Thế

Sơn đã quan tâm giúp đỡ tận tình chúng em hoàn thành tốt đồ án này trong thời gian qua.

Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế, đồ án này sẽ không thể

tránh được những thiếu sót. Chúng em rất mong nhận được sự chỉ bảo, đóng góp ý kiến

của các thầy cô, để chúng em có thể bổ sung, nâng cao kinh nghiệm và kỹ năng của bản

thân để phục vụ cho công việc thực tế sau này.

Chúng em xin chân thành cảm ơn!

2

Page 5: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

NHẬN XÉT

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

Đà Nẵng, ngày… tháng…năm 2020

Giảng viên hướng dẫn

TS.Trần Thế Sơn

3

Page 6: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

MỤC LỤCLỜI MỞ ĐẦU..........................................................................................................................1

NHẬN XÉT.............................................................................................................................3

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT......................................................................................6

1. Tổng quan về đề tài...................................................................................................6

2. Một số ứng dụng Mail Client phổ biến....................................................................6

2.1. Thunderbird..........................................................................................................6

2.2. Inky.......................................................................................................................7

2.3. eM Client..............................................................................................................8

3. Giới thiệu về giao thức lập trình............................................................................10

3.1. Giao thức POP3(RFC1081, RFC1082)..............................................................10

3.2. Giao thức IMAP4(RFC2060, RFC2193)...........................................................12

4. Ngôn ngữ và công cụ lập trình...............................................................................16

4.1. Ngôn ngữ lập trình Java.....................................................................................16

- Thư viện thường dùng trong Java.............................................................................17

4.2. Công cụ lập trình Netbeans................................................................................17

CHƯƠNG 2:PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG.................................................19

1. Nội dung bài toán....................................................................................................19

2. Nguyên lý hoạt động................................................................................................19

2.1. Mô hình Client/Server........................................................................................20

3. Xây dựng chức năng...............................................................................................21

3.1. Chức năng đăng nhập.........................................................................................21

3.2. Chức năng Quản lý Mail....................................................................................21

3.3. Chức năng Gửi Mail...........................................................................................21

3.4. Chức năng Trả lời Mail......................................................................................214

Page 7: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

3.5. Chức năng Chuyển tiếp Mail..............................................................................22

3.6. Chức năng Lưu mật khẩu...................................................................................22

3.7. Chức năng Thoát................................................................................................22

4. Thiết kế hệ thống.....................................................................................................22

4.1. Sơ đồ Use-case tổng quát...................................................................................22

4.2. Đặc tả Đăng nhập...............................................................................................23

4.3. Đặc tả Đăng xuất................................................................................................24

4.4. Đặc tả Trả lời Mail.............................................................................................25

CHƯƠNG 3: DEMO CHƯƠNG TRÌNH...........................................................................27

1 Giao diện chương trình................................................................................................27

CHƯƠNG 4: KẾT LUẬN....................................................................................................29

4.1. Kết quả đạt được.....................................................................................................29

4.2. Hạn chế.....................................................................................................................29

4.3. Hướng phát triển.....................................................................................................29

TÀI LIỆU THAM KHẢO....................................................................................................30

5

Page 8: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT1. Tổng quan về đề tài

Là dịch vụ rất phổ biến và thông dụng trong mạng Internet/Intranet và hầu như không

thể thiếu được trong Internet/Intranet hiện nay.

Tuy nhiên không phải là dịch vụ “từ đầu - đến cuối” (end to end). Nghĩa là dịch vụ này

không đòi hỏi hai máy tính gởi và nhận thư phải nối trực tiếp với nhau để thực hiện việc

chuyển thư. Nó là dịch vụ kiểu lưu và chuyển tiếp (store and forward) thư được chuyển từ

máy này sang máy khác cho tới khi máy đích nhận được. Người nhận cũng chỉ thực hiện

một số thao tác đơn giản để lấy thư, đọc thư và nếu cần thì cho in ra.

Cách liên lạc này thuận tiện hơn nhiều so với gửi thư thông thường qua bức điện hoặc

Fax, lại rẻ và nhanh hơn. Cách thực hiện việc chuyển thư không cần phải kết nối trực tiếp

với nhau để chuyển thư, thư có thể được chuyển từ máy này đến máy khác cho tới máy

đích..

Giao thức truyền thống sử dụng cho hệ thống thư điện tử của Internet là SMTP(Simple

Mail Transfer Protocol).

2. Một số ứng dụng Mail Client phổ biến

2.1. Thunderbird

Thunderbird là ứng dụng email client miễn phí được phát triển bởi Mozilla Foundation.

Nhờ vào những tính năng tiện dụng và nổi bật mà phần mềm này là một trong những email

client được yêu thích và sử dụng phổ biến nhất hiện nay.

6

Page 9: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

Hình 1: Mail Client Thunderbird

- Ưu điểm của Thunderbird:

Có khả năng vừa chặn thư rác vừa chống được virus.

Duyệt và thao tác với các thư theo tab riêng lẻ, tạo cảm giác thuận tiện, dễ quan sát và

tăng cường trải nghiệm.

Tính năng cảnh báo người dùng mỗi khi định click vào một trang web không rõ ràng,

dính đến mã độc, trojan...

Khả năng cá nhân hóa các địa chỉ email cho từng hoàn cảnh để sử dụng.

Tự động lưu các tab hiện thời (các tab đang thao tác) khi Thunderbird được đóng lại.

Thêm nhanh (add) một người bất kỳ vào danh sách bạn bè nhờ tính năng One-click

Address Book.

Thunderbird hỗ trợ bảo vệ dữ liệu cá nhân của người sử dụng và ngăn chặn hình ảnh

từ xa

- Nhược điểm của Thunderbird:

Thỉnh thoảng vẫn xảy ra lỗi "crash" Thunderbird.

Không gửi được nhóm tin trong Newsgroups.

Không hiển thị văn bản mã hóa GB2312 cho ký tự Trung Quốc.

Thanh trạng thái hiển thị nhưng không hoạt động.

Chỉ đính kèm được file với dung lượng giới hạn.

2.2. Inky

Nếu đang sử dụng cùng lúc nhiều tài khoản email thì Inky chính là người trợ lý tốt nhất

mà bạn cần. Ứng dụng này có khả năng tập trung tất cả các thư đến từ các tài khoản vào

một nơi cố định. Không những thế, hệ thống lọc mail thông minh cũng giúp chúng ta tiết

kiệm được rất nhiều thời gian mỗi lần "check mail".

Ứng dụng đa tiện ích này chỉ yêu cầu một tài khoản (tài khoản Inky) để liên kết với tất

cả các tài khoản khác và có thể sử dụng tại bất kỳ đâu, trên bất kỳ thiết bị nào.

7

Page 10: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

Hình 2: Mail Client Inky

- Ưu điểm của Inky:

Có phiên bản miễn phí dành cho cả Windows, Mac và Android.

Tính năng lọc thông minh sẽ "show" ra những mail quan trọng trước giúp người dùng

tiết kiệm thời gian.

Giao diện đơn giản, dễ sử dụng.

Không giới hạn số lượng tài khoản.

Lưu giữ toàn bộ thư trong các email cũ và đồng bộ chúng với máy chủ Inky.

2.3. eM Client

Đây từng được coi là ứng dụng có thể thay thế hoàn hảo cho Microsoft Outlook. eM

Client cũng đã cho ra mắt phiên bản đặc biệt dành riêng cho hệ điều hành Windows XP và

Windows 7 cách đây vài năm và nhận được rất nhiều phản hồi tích cực.

Phần mềm gửi email đa chức năng này hỗ trợ tất cả các dịch vụ email miễn phí phổ

biến như Hotmail, Yahoo và Gmail hay thậm chí cả Exchange, iCloud... Ngoài ra, nó còn

có thêm những tính năng tiện dụng khác như: lên lịch, công việc hàng ngày, thông tin liên

lạc...

8

Page 11: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

Hình 3: Mail Client eM Client

- Ưu điểm của eM Client:

Giao diện trực quan, dễ nhìn.

Dễ sử dụng, cho dù người mới, không có kinh nghiệm cũng có thể sử dụng được.

Tốc độ xử lý nhanh.

Có thể sao lưu, khôi phục và nhập dữ liệu từ các ứng dụng khác.

Xuất thông tin và di chuyển tệp trong thư mục.

Khả năng tìm kiếm mạnh mẽ.

Có thể chat thông qua tài khoản Facebook.

Hỗ trợ tính năng biên dịch trực tiếp, tích hợp ngay trong Hộp thư đến, giúp việc đọc

các email được viết bằng ngôn ngữ nước ngoài trở nên dễ dàng hơn.

- Nhược điểm của eM Client:

Tốn tài nguyên máy.

Phiên bản dành cho doanh nghiệp yêu cầu trả phí để sử dụng.

Bản miễn phí cũng chỉ đăng nhập được tối đa hai tài khoản email cùng lúc.

Không hỗ trợ lưu tin nhắn cũ trên Gmail.

Máy tính bắt buộc phải được cài đặt Net Framework.

9

Page 12: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

3. Giới thiệu về giao thức lập trình

3.1. Giao thức POP3(RFC1081, RFC1082)

- Post Office Protocol Version 3 (Pop3) là một giao thức chuẩn trên internet cho phép

một một workstation có thể truy xuất động đến một maildrop trên một server từ xa. Có nghĩa

là Pop3 được dùng để cho phép workstation lấy mail mà server đang giữ nó.

- Port chuẩn dành cho dịch vụ Pop3 đươc qui ước là TCP port 110. Pop3 server sẽ khởi

động và lắng nghe trên port này. Một client muốn sử dụng các dịch vụ của Pop3 thì nó phải

thiết lập một kết nối tới Pop3 server. Khi kết nối được thiết lập thì Pop3 server sẽ gởi tới

client một lời chào. Sau đó, Pop3 Client và Pop3 Server sau đó trao đổi các request và reply

cho đến khi kết nối được đóng hay loại bỏ.

- Các lệnh trong Pop3 không phân biệt chữ thường và chữ hoa, bao gồm một tập từ

khoá (chiều dài từ 3 đến 4 ký tự), có thể có hoặc không có đối số theo sau (chiều dài của đối

số có thể lên đến 40 ký tự). Các từ khoá và đối số phân cách nhau bởi một ký tự trắng đơn,

và không phải là các ký tự đặc biệt.

- Các reply trong Pop3 bao gồm phần chỉ định trạng thái và từ khoá có thể có các thông

tin hỗ trợ theo sau. Chiều dài của reply có thể lên tới 512 ký tự, kết thúc bằng cặp CRLF. Có

hai loại chỉ định trạng thái là: “+OK” và “-ERR”. Server phải gởi các chỉ định trạng thái ở

dạng chữ hoa.

Hình 4: Giao thức POP3

10

Page 13: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

- Các lệnh của POP3:

USER username:

+ Đối số username là một chuỗi định danh một mailbox, chỉ có ý nghĩa đối với server.

+ Trả lời: +OK tên mailbox có hiệu lực.

- ERR không chấp nhận tên mailbox.

PASS string:

+ Đối số là một password cho mailbox hay server.

+ Trả lời: +OK khoá maildrop và sẵn sàng.

- ERR password không hiệu lực.

- ERR không được phép khoá maildrop.

Các lệnh có tác dụng trong quá trình giao dịch (transaction):

STAT:

+ Không có đối số.

+ Trả lời: +OK nn mm. “+OK” theo sau là khoảng trắng đơn, tiếp theo là nn:số message,

khoảng trắng đơn, mm: kích thước của maildrop tính theo byte.

+ Các message được đánh dấu xoá không được đếm trong tổng số.

LIST [msg]:

+ Đối số: số thứ tự của message, có thể không tham khảo tới các message đã được đánh

dấu xoá.

+ Trả lời: +OK scan listing follow.

- ERR nosuch message.

Một scan listing bao gồm số thứ tự message (message number) của message đó, theo sau

là khoảng trắng đơn, và kích thước chính xác của message đó tính theobyte.

RETR msg:

+ Đối số: số thứ tự của message, có thể không tham khảo tới các message đã được đánh

dấu xoá.

+ Trả lời: +OK message follows

- ERR no such message

Trả lời của lệnh RETR là multi-line.

11

Page 14: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

DELE msg:

+ Đối số: số thứ tự của message, có thể không tham khảo tới các message đã được đánh

dấu xoá.

+ Trả lời: +OK message deleted

- ERR no such message

Pop3 server sẽ đánh dấu xoá các message này. Tuy nhiên, quá trình xoá thật sự sẽ diễn ra

ở trạng thái cập nhật (Update).

NOOP:

+ Không có đối số.

+ Trả lời: +OK

Pop3 server không làm gì hết, chỉ hồi âm lại cho client với trả lời: “+OK”.

RSET:

+ Không có đối số.

+ Trả lời: +OK.

Phục hồi lại các message đã bị đánh dấu xoá bởi Pop3 server.

QUIT:

+ Không có đối số.

+ Trả lời: +OK.

Chú ý rằng các message bị đánh dấu để xoá bằng lệnh DELE thực sự chưa bị xoá

ngay để nếu sau đó ta có thể dùng lệnh phục hồi không xoá bằng lệnh RSET, chúng chỉ thực

sự bị xoá bỏ khỏi maildrop khi bước vào giai đoạn Update ( khi gửi lệnh QUIT).

3.2. Giao thức IMAP4(RFC2060, RFC2193)

- Internet Message Access Protocol (IMAP) cung cấp lệnh để phần mềm thư điện tử

trên máy khách và máy chủ dùng trong trao đổi thông tin phiên bản4( IMAP4rev1). Đó là

phương pháp để người dùng cuối truy cập thông điệp thư điện tử hay bản tin điện tử từ máy

chủ về thư trong môi trường cộng tác. Nó cho phép chương trình thư điện tử dùng cho máy

khách - như Netscape Mail, Eudora của Qualcomm, Lotus Notes hay Microsoft Outlook -

lấy thông điệp từ xa trên máy chủ một cách dễ dàng như trên đĩa cứng cục bộ.

12

Page 15: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

- IMAP khác với giao thức truy cập thư điện tử Post Office Protocol (POP). POP lưu

trữ toàn bộ thông điệp trên máy chủ. Người dùng kết nối bằng đường điện thoại vào máy chủ

và POP sẽ đưa các thông điệp vào in-box của người dùng, sau đó xoá thư trên máy chủ. Hai

giao thức này đã được dùng từ hơn 10 năm nay. Theo một nhà phân tích thì khác biệt chính

giữa POP (phiên bản hiện hành 3.0) và IMAP (phiên bản hiện hành 4.0) là POP3 cho người

dùng ít quyền điều khiển hơn trên thông điệp.

Hình 5: Giao thức IMAP4

- Các lệnh của IMAP4:

CAPABILITY

- Arguments: none

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

BAD - command unknown or arguments invalid

- Đây là lệnh thực hiện trước tiên của bất kỳ một trình mail Client nào muốn lấy mail từ

trình chủ bằng giao thức IMAP, mục đích là kiểm tra version giao thức có đáp ứng được

yêu cầu không. Version hiện nay đang dùng là IMAP4(IMAP4rev1).

LOGIN

- Arguments: [user name] [password ]

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

NO - login failure: user name or password rejected

BAD - command unknown or arguments invalid

- Lệnh này để xác nhận người sử dụng có hợp pháp không? Nếu thành công thì người 13

Page 16: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

dùng sẽ thực hiện các thao tác lệnh tiếp theo.

CHECK

- Arguments: none

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

BAD - command unknown or arguments invalid

- Lệnh này dùng để kiểm tra tại thời điểm này lệnh SELECT đã thực hiện hay chưa, nếu

thực hiện rồi trả về OK.

SELECT

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

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

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

BAD - command unknown or arguments invalid

- Lệnh Select dùng để nhận biết được hòm thư có bao nhiêu thư bao gồm thư mới, thư đọc

rồi và thư đã xoá. Lệnh này cho phép ta thay đổi thuộc tính của hòm thư cũng như nhưng

lá thư mà chúng lưu trữ bởi các lệnh khác trong IMAP.

CLOSE

- Arguments: none

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

NO - close failure: no mailbox selected

BAD - command unknown or arguments invalid

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

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

FETCH

- Arguments: message set message data item names

- Kết quả: OK - fetch completed

NO - fetch error: can't fetch that data

BAD - command unknown or arguments invalid

- Lệnh dùng để hiển thị nội dung của một lá thư. Thông số theo sau gồm có hai thông số:

đầu tiên là số thứ tự của lá thư và thông số thư hai là message data item names nhưng

thông số này phải tuân theo RFC822 được trình bày ở trên.14

Page 17: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

UID

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

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

NO - UID command error

BAD - command unknown or arguments invalid

EXAMINE

- Arguments: mailbox name

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

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

BAD - command unknown or arguments invalid

- Lệnh này tương tự như lệnh SELECT cùng một kết quả trả về nhưng khi dùng lệnh này

chúng ta chỉ xem thông tin không thay đổi được trạng thái của hòm thư

CREATE

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

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

NO - create failure: can't create mailbox with that name

BAD - command unknown or arguments invalid

- Lệnh tạo ra một hòm thư mới với tên đã chọn và trả lại là OK nếu quá trình tạo ra hòm

thư trên Server không gặp lỗi.

DELETE

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

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

NO - delete failure: can't delete mailbox with that name

BAD - command unknown or arguments invalid

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

RENAME

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

- Kết quả: OK - rename completed

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

15

Page 18: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

BAD - command unknown or arguments invalid

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

COPY

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

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

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

BAD - command unknown or arguments invalid

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

4. Ngôn ngữ và công cụ lập trình

4.1.Ngôn ngữ lập trình Java

Java là một ngôn ngữ lập trình có chức năng sản xuất phần mềm cho nhiều nền tảng.

Một ứng dụng bằng ngôn ngữ Java có thể chạy trên hầu hết các hệ điều hành như Windows,

Linux, Solaris và Mac OS. Java được phát hành vào năm 1995 bởi James A. Gosling, một

nhà khoa học máy tính trước đây của Sun microsystems. Bạn hoàn toàn có thể tải miễn phí

Java bản mới nhất tại java.com.

Điều khác biệt nhất giữa Java và các ngôn ngữ lập trình khác chính là Java có thể thực

hiện nhiều tác vụ mà bạn chỉ cần thiết lập chúng chạy một lần duy nhất. Chúng nhanh chóng,

chính xác, an toàn khi thiết lập và sử dụng.

Sau khi tải về, bạn dùng để viết và chạy code Java ngay trên máy tính của mình. Và lúc

này bạn sẽ thấy được sự khác biệt của nó ở việc những lệnh bạn vừa viết và chạy kia nó sẽ

hoạt động được trên hầu hết các máy tính để bàn, laptop, điện thoại di động, máy tính bảng

và các thiết bị khác mà bạn không cần phải viết lại hay sửa đổi code ban đầu.

Hình 6: Ngôn ngữ lập trình Java

16

Page 19: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

- Thư viện thường dùng trong Java

Logging libraries

JSON Parsing libraries

Unit testing

General Purpose Libraries

HTTP Libraries

XML parsing libraries

Excel Reading Libraries

Bytecode Libraries

Database Connection Pool Libraries

Messaging Libraries

PDF Libraries

Date and Time Libraries

4.2.Công cụ lập trình Netbeans

NetBeans là một môi trường phát triển tích hợp (IDE) cho Java. NetBeans cho phép

các ứng dụng được phát triển từ một tập hợp các thành phần phần mềm được gọi

là modules. NetBeans chạy trên Windows, macOS, Linux và Solaris. Ngoài việc phát triển

Java, nó còn có các phần mở rộng cho các ngôn ngữ khác như PHP, C, C++, HTML5,[4] và JavaScript. Các ứng dụng dựa trên NetBeans, bao gồm NetBeans IDE, có thể được

mở rộng bởi các nhà phát triển bên thứ ba.

NetBeans Platform là một nền tảng để đơn giản hóa việc phát triển các ứng dụng

desktop Java Swing. NetBeans IDE bundle for Java SE chứa những gì cần thiết để bắt đầu

phát triển các plugin NetBeans và các ứng dụng dựa trên NetBeans Platform; không yêu

cầu SDK bổ sung.

Các ứng dụng có thể cài đặt các module động. Bất kỳ ứng dụng nào cũng có thể bao

gồm module Update Center cho phép người dùng download các bản nâng cấp chữ ký số và

các tính năng mới trực tiếp vào ứng dụng đang chạy. Cài đặt lại bản nâng cấp hoặc bản

phát hành mới không buộc người dùng phải tải lại toàn bộ ứng dụng.

17

Page 20: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

Nền tảng cung cấp các dịch vụ có thể tái sử dụng phổ biến cho các ứng dụng desktop,

cho phép các nhà phát triển tập trung vào logic cụ thể cho ứng dụng của họ. Trong số các

tính năng của nền tảng là:

Quản lý giao diện người dùng (ví dụ. menu và thanh công cụ)

Quản lý cài đặt người dùng

Quản lý kho lưu trữ (Thực hiện lưu trữ hiệu quả)

Quản lý của sổ

Wizard framework (hỗ trợ các hộp thoại từng bước)

NetBeans Visual Library

Công cụ phát triển tích hợp

NetBeans IDE là một IDE nguồn mở. NetBeans IDE hỗ trợ phát triển tất cả các loại

ứng dụng Java (Java SE (bao gồm JavaFX), Java ME, web, EJB và ứng dụng mobile).

Trong số các tính năng khác là hệ thống dự án dựa trên Ant, hỗ trợ Maven, cải tiến mã

nguồn, quản lý phiên bản (hỗ trợ CVS, Subversion, Git, Mercurial và Clearcase).

- Ưu điểm của Netbeans IDE:

Hỗ trợ soạn thảo chương trình với nhiều ngôn ngữ khác nhau như: C, C++, C#, Java,

PHP,...

Giao diện vô cùng đơn giản, dễ dàng sử dụng cho người mới bắt đầu.

Tự động báo lỗi trong quá trình viết chương trình.

- Nhược điểm của Netbeans IDE:

Tốc độ chạy chương trình hơi chậm.

CHƯƠNG 2:PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG1. Nội dung bài toán

Ngày nay thời đại công nghệ thông tin, các giao dịch thương mại, liên hệ đối tác và

thăm hỏi người thân sử dụng thư diện tử rất nhiều.

Hiện tại số người dùng ứng dụng Gmail đã đạt ngưỡng 1,5 tỉ người ,tăng thêm 33% từ

con số 1 tỉ mà Gmail đã thông báo vào thời điểm tháng 2/2016. Với dân số thế giới khoảng

7,53 tỉ người thì con số Gmail đạt được cho thấy dịch vụ điện tử của Google đã rất phổ biến.

18

Page 21: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

Do đó các phần mềm Mail client thường cung cấp cho người dùng các công cụ cho

phép quản lý địa chỉ thư điện tử một cách hiệu quả nhất. Thay vì viết thư bằng giấy mực và

bút thì người gửi chỉ cần gõ chữ từ bàn phím của máy tính và biết dùng một phần mềm thư

điện tử

Vận tốc truyền thư điện tử chỉ vài giây đến vài phút và chi phí rất nhỏ không đáng kể

so với gửi qua đường bưu điện. Khối lượng gửi và nhận thư điện tử có thể nhiều hơn thư bưu

điện rất nhiều lần. Đối với các dịch vụ thư điện tử mới thì dung lượng có thể lên đến hàng

Gbyte như dịch vụ của Gmail chẳng hạn, hay nhiều hơn. Số thư có thể dự trữ trong dung

lượng này tương đương với vài bộ tự điển bách khoa.

2. Nguyên lý hoạt động

Cho phép bạn xem danh sách các message trong hòm thư của bạn với những header

ngắn gọn bao gồm người gửi, chủ đề của mail và có thể là cả ngày, giờ và dung lượng của

message đó

Cho phép bạn lựa chọn một tiêu đề và đọc nội dung của e-mail message

Cho phép bạn tạo message mới và gửi chúng. Bạn điền vao đó địa chỉ e-mail người nhận

và chủ đề của message, sau đó là nội dung.

Cho phép bạn đính kèm file vào message hoặc là lưu trữ file trong message bạn nhận.

Hình 7 : Sơ đồ nguyên lý hoạt động

19

Page 22: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

Trong TCP, có một sự khác biệt rõ ràng giữa quá trình máy chủ và quá trình máy

khách.

Quá trình máy chủ với một IP bắt đầu trên một cổng được biết đến (mà khách hàng

biết) và lắng nghe các yêu cầu kết nối đến.

Máy khách có thể chạy cùng máy với server hoặc từ một máy khác. Quá trình client bắt

đầu trên bất kỳ cổng nào và yêu cầu kết nối.

2.1.Mô hình Client/Server

Hình 8: Sơ đồ Client – Server

- Ứng dụng phía máy chủ (Server App)

Tạo một System.Net.Sockets.TcpListener với một cổng địa phương (local port) cho

trước và bắt đầu nó để lắng nghe kết nối từ khách hàng.

Chờ cho yêu cầu kết nối đến và chấp nhận một đối

tượng System.Net.Sockets.Socket từ người nghe bất cứ khi nào yêu cầu xuất hiện.

Giao tiếp với khách hàng bằng cách sử dụng giao thức được xác định trước.

Đóng Stream & Socket

- Ứng dụng phía máy khách (Client App)

Tạo System.Net.Sockets.TcpClient

Kết nối với máy chủ thông qua IPAddress và Port

20

Page 23: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

Có được stream từ trên TCPClient

Giao tiếp với máy chủ bằng cách sử dụng giao thức được xác định trước.

Đóng Stream và kết nối.

3. Xây dựng chức năng

3.1. Chức năng đăng nhập

Mô tả: Người dùng nhập thông tin email cá nhân để đăng nhập hệ thống

Quy Định: Thông tin email cá nhân đã được đăng ký và kích hoạt trên server như :

Gmail,Yahoo….

3.2. Chức năng Quản lý Mail

Mô tả: Người dùng có thể xem thông tin các email mình đã nhận hoặc đã gửi.

Quy Định: Đã bật chức năng gửi nhận thư qua SMTP và POP3 trên server cho email

của cá nhân

3.3. Chức năng Gửi Mail

Mô Tả: Người dùng có thể tiến hành gửi 1 email tới một email khác bất kỳ.

Quy Định: Email cá nhân đã bật chức năng Gửi email qua SMTP trên server.

3.4. Chức năng Trả lời Mail

Mô tả: Người dùng có thể trả lời email với người nhận là cá nhân đã gửi email cho

mình.

3.5. Chức năng Chuyển tiếp Mail

Mô Tả: Người dùng có thể chuyển toàn bộ nội dung email đang xem, hoặc đã gửi cho

một email cá nhân khác

3.6. Chức năng Lưu mật khẩu

Mô tả: Lưu thông tin tài khoản cá nhân cho lần sử dụng kế tiếp

Quy Định: Phải tích vào ô Lưu mật khẩu

3.7. Chức năng Thoát

Mô tả: Thoát khỏi ứng dụng. Xóa toàn bộ thông tin cá nhân.

Quy Định: chọn chức năng xóa thông tin cá nhân cho lần đăng nhập kế tiếp.

21

Page 24: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

4. Thiết kế hệ thống

4.1. Sơ đồ Use-case tổng quát

Hình 9: Sơ đồ Use-case tổng quát

4.2. Đặc tả Đăng nhập

- Sơ đồ activity diagram:

22

Page 25: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

Hình 10: Sơ đồ Activity đăng nhập

- Đặc tả:

Tên USer case Đăng Nhập

Actor Người sử dụng

Mô tả Người sử dụng muốn dùng tài khoản email cá nhân

để đăng nhập vào phần mềm quản lý email

Mục Đích Đăng Nhập Phần mềm quản lý emal

Yêu cầu đặc biệt Tài khoản phải đúng với quy định không có chứa ký

tự đắc biệt.

Mật khẩu có số và chữ không có dấu,không chứa ký

tự đắc biệt

Tài khoản đã được đăng ký và kích hoạt trên sever

email như:Gmail,Yahoo!...

Điều kiện tiên quyết Tài khoản không bị khóa.

23

Page 26: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

Điều kiện phát sinh Nhấn Enter để đăng nhập.

Hoắc click vào nút đăng nhập

Điều kiện hậu quyết Không có.

Dòng sự kiện chính 1. Hệ thống yêu cầu nhập tên user và password

2. Khách hàng nhập đầy đủ thông tin gồm pass word

và tên user.

3. Đăng nhập thành công chuyển Giao diện quản lý

email của tài khoản.

Dòng sự kiện phụ/rẽ nhánh 3.1 Đăng nhập thất bại ra

3.1.1 Thông báo nhập sai user,password . yêu

cầu nhập lại hoặc có thể đăng ký tài khoản trên

sever.

Dòng sự kiện ngoại lệ Không có.

Khác Không có.

4.3. Đặc tả Đăng xuất

Tên USer case Đăng Xuất

Actor Người sử dụng

Mô tả Người sử dụng muốn đăng xuất khỏi hệ thống

website.

Mục đích Đăng xuất khỏi tài khoản hiện tại đang đăng nhập.

Yêu cầu đặc biệt Không có

Điều kiện tiên quyết Người sử dụng đã đăng nhập thành công.

Điều kiện phát sinh Không có.

Điều kiện hậu quyết Không có.

Dòng sự kiện chính Đăng xuất khỏi Phần mền. hệ thống chuyển Form

đăng nhập.

Dòng sự kiện phụ/rẽ nhánh Không có.

Dòng sự kiện ngoại lệ Không có.

Khác Không có.

24

Page 27: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

4.4. Đặc tả Trả lời Mail

- Sơ đồ Activity diagram

Hình 11 : Sơ đồ Activity trả lời mail

- Đặc tả :

Tên USer case Trả lời Email

Actor Người sử dụng

Mô tả Người sử dụng muốn Trả lời một email mà người

dùng đang đọc.

Mục đích Trả lời lại email cho người gửi.

Yêu cầu đặc biệt Không có

Điều kiện tiên quyết Người sử dụng đã đăng nhập thành công.Và nội

dung email không được trống

Điều kiện phát sinh Không có.

Điều kiện hậu quyết Không có.

Dòng sự kiện chính Không có .

Dòng sự kiện phụ/rẽ nhánh Không có.

Dòng sự kiện ngoại lệ Không có.

25

Page 28: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

Khác Không có.

26

Page 29: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

CHƯƠNG 3: DEMO CHƯƠNG TRÌNH

1 Giao diện chương trình

Hình 12: Giao diện đăng nhập

Hình 13: Giao diện mail client

27

Page 30: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

Hình 14: Giao diện khi nhận mail

28

Page 31: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

CHƯƠNG 4: KẾT LUẬN4.1. Kết quả đạt được

Hiểu được cấu trúc và phương thức hoạt động của TCP/IP, POP3, IMAP4

Tìm hiểu được ngôn ngữ lập trình Java và các thư viện sử dụng trong quá trình lập

trình

Xây dựng được chương trình Mail Client

Chạy demo chương trình

4.2. Hạn chế

Chỉ thực hiện được các chức năng cơ bản của Mail Client

Chương trình chưa có nhiều chức năng khác

Quá trình chạy còn xảy ra một số sự cố khác

Do thời gian gấp rút cùng với kiến thức có hạn của bản thân nên em chưa thể tìm hiểu sâu

hơn về các kiến thức liên quan tới môn lập trình mạng nói chung và phương tức lập trình đối

tượng phân tán nói riêng dẫn tới việc ứng dụng demo vẫn còn nhiều hạn chế, chưa thực sự

thể hiện được các kĩ thuật nâng cao. Em sẽ cố gắng tìm hiểu sâu hơn trong thời gian sắp tới.

4.3. Hướng phát triển

Xây dựng hoàn thiện các chức năng của Mail Client Phát triển thêm một số chức năng mới Hạn chế các sự cố xảy ra trong quá trình chạy chương trình

29

Page 32: LỜI MỞ ĐẦU - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d…  · Web view2020. 12. 30. · [msg]:+ Đối số: số thứ tự của message, có thể không

TÀI LIỆU THAM KHẢO Giới thiệu về giao thức POP3:

https://tinomail.com/pop3-la-gi/

Giới thiệu về giao thức IMAP4:

http://vinahost.info/Giao-Thuc-IMAP

Giới thiệu về Java:

https://viblo.asia/p/gioi-thieu-ve-java-63vKjD8Vl2R

30