lỜi mỞ ĐẦu - udn.vndaotao.vku.udn.vn/uploads/2020/12/1609347409-do-an.d… · web...
TRANSCRIPT
ĐỒ Á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
Đà 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
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
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
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
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
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
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
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
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
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
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
- 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
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
- 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
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
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
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
- 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
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
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
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
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
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
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
Đ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
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
Khác Không có.
26
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
Hình 14: Giao diện khi nhận mail
28
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
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