BÁO CÁO ĐỒ ÁN CƠ SỞ - ĐỀ TÀI: NGHIÊN CỨU VÀ XÂY DỰNG CHƯƠNG TRÌNH MAIL SERVER

27 72 1
BÁO CÁO ĐỒ ÁN CƠ SỞ - ĐỀ TÀI: NGHIÊN CỨU VÀ XÂY DỰNG CHƯƠNG TRÌNH MAIL SERVER

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG VIỆT-HÀN - - BÁO CÁO ĐỒ ÁN CƠ SỞ ĐỀ TÀI: NGUYÊN CỨU VÀ XÂY DỰNG CHƯƠNG TRÌNH MAIL SERVER Sinh viên thực : NGUYỄN VĂN NAM Lớp : 18IT5 Giảng viên hướng dẫn: ThS NGUYỄN THANH TUẤN Đà Nẵng, tháng năm 2020 TRƯỜNG ĐẠI HỌC CNTT VÀ TT VIỆT – HÀN KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐỒ ÁN CƠ SỞ ĐỀ TÀI: NGUYÊN CỨU VÀ XÂY DỰNG CHƯƠNG TRÌNH MAIL SERVER Sinh viên thực : NGUYỄN VĂN NAM Lớp : 18IT5 Giảng viên hướng dẫn: ThS NGUYỄN THANH TUẤN Đà Nẵng, tháng năm 2020 MỤC LỤC LỜI MỞ ĐẦU .4 TỔNG QUAN VỀ ĐỀ TÀI CHƯƠNG 1: CƠ SỞ LÍ THUYẾT 1.1 Tìm hiểu giao thức sử 1.1.1 Giao thức SMTP( Simple Mail Transfer Protocol) 1.1.2 Giao thức SMTP hoạt động nào? 1.1.3 Giao thức POP3 Java: 1.2 Giới thiệu Javamail 1.2.1 Giới thiệu 1.2.2 Mơ hình Client/Server 11 1.3 Cách thức hoạt động tiến trình .13 CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 13 2.1 Giới thiệu toán 13 2.2 Phân tích tốn .14 2.3 Phân tích vè thiết kế hệ thống 15 2.3.1 Yêu cầu 15 2.3.2 Đặt tả yêu cầu 16 2.3.3 Biểu đồ Use-Case 18 2.3.4 Biểu đồ hoạt động 19 CHƯƠNG 3: DEMO CHƯƠNG TRÌNH 22 3.1 Kết đạt 22 3.1.1 Giao diện đăng nhập 22 3.1.2 Giao diện gửi mail 23 3.1.3 Giao diện Server quản lí Mail 24 CHƯƠNG KẾT LUẬN 25 4.1 Kết đạt được: 25 4.2 Hạn chế: 25 4.3 Hướng phát triển: 25 TÀI LIỆU THAM KHẢO 26 LỜI MỞ ĐẦU Hệ thống mail nhiều đơn vị cung cấp, theo nhiều hình thưc khác Ví dụ: hộp thư miễn phí Yahoo, Gmail Các cơng ty, doanh nghiệp lớn ưa chuộng việc sử dụng email theo tên miền cơng ty thường có dạng tenemail.tendomain.com Bởi tình trạng spam mail, email gửi kèm phần mềm độc hại làm ảnh hưởng đến tình hình an ninh mạng Việt Nam Vì thế, việc bảo mật an tồn ln vấn đề nhiều doanh nghiệp quan tâm Và điều khiến Mail Server đánh giá cao so với máy chủ mail khác Với mong muốn áp dụng kiến thức học kỹ thuật lập trình, mạng máy tính, đặc biệt lập trình mạng, em mong muốn tạo ứng dụng Mail Server theo mơ hình client-server Ứng dụng xây dựng với đầy đủ chức cần thiết, chạy tảng windows mở rộng phát triển để hoạt động tảng di động khác Sinh viên thực Nguyễn Văn Nam TỔNG QUAN VỀ ĐỀ TÀI Bối cảnh lý thực đề tài Hệ thống mail nhiều đơn vị cung cấp, theo nhiều hình thưc khác Ví dụ: hộp thư miễn phí Yahoo, Gmail Các cơng ty, doanh nghiệp lớn ưa chuộng việc sử dụng email theo tên miền cơng ty thường có dạng tenemail.tendomain.com Bởi tình trạng spam mail, email gửi kèm phần mềm độc hại làm ảnh hưởng đến tình hình an ninh mạng Việt Nam Vì thế, việc bảo mật an tồn ln vấn đề nhiều doanh nghiệp quan tâm Và điều khiến Mail Server đánh giá cao so với máy chủ mail khác Với mong muốn áp dụng kiến thức học kỹ thuật lập trình, mạng máy tính, đặc biệt lập trình mạng, em mong muốn tạo ứng dụng Mail Server theo mơ hình client-server Ứng dụng xây dựng với đầy đủ chức cần thiết, chạy tảng windows mở rộng phát triển để hoạt động tảng di động khác 2.Phương pháp triển khai đề tài     Ngơn ngữ lập trình : Java Chương trình soạn thảo build : Eclipse Sử dụng giao thức SMTP , POP3 Sử dụng Socket Java 3.Kết cấu đồ án Chương 1: Cơ sở lý thuyết Chương 2: Thiết kế xây dựng hệ thống Chương 3: Triển khai đánh giá kết CHƯƠNG 1: CƠ SỞ LÍ THUYẾT 1.1 Tìm hiểu giao thức sử 1.1.1 Giao thức SMTP( Simple Mail Transfer Protocol) SMTP chữ đầu viết tắt Simple Mail Transfer Protocol dịch có nghĩa giao thức truyền tải thư tín đơn giản hóa Và giao thức thực nhiệm vụ gửi mail việc nhận mail hay truy xuất liệu mail server có giao thức IMAP hay POP3 đảm nhiệm SMTP Server (server dùng để gửi mail) dịch vụ cho phép gửi email với số lượng lớn, tốc độ nhanh mà khơng bị giới hạn hịm mail miễn phí Gmail mail kèm hosting Nói cách khác máy chủ giúp bạn thao tác gửi thư người ta thường gọi SMTP server chúng thực gửi thư qua giao thức TCP IP Thường SMTP thực để hoạt động qua cổng Internet 25 (TCP) châu âu có phương thức thay cho SMTP gmail sử dụng rộng rãi gọi X.400 Song Song với có nhiều máy chủ thư điện tử hỗ trợ giao thức chuyển thư đơn giản mở rộng gọi (ESMTP), giao thức cho phép tệp đa phương tiện gửi dạng e-mail Hệ thống mail hay đơn giản Email muốn chuyên nghiệp cần phải tìm hiểu giao thức mà hỗ trợ làm việc lâu dài giúp nâng cao hiệu suất cơng việc nhờ khả gửi nhận thư nhanh chóng, bạn cần phải lưu ý khả đính kèm tập tin lưu trữ với dung lượng cao giúp bạn có thêm nhiều lợi việc sử dụng lâu dài, tiết kiệm thời gian chuyển đổi doanh nghiệp,… 1.1.2 Giao thức SMTP hoạt động nào? Cách thức hoạt động hệ thống SMTP Việc gửi thông báo thực bắt đầu việc chuyển thông báo đến SMTP Server định Dựa vào tên miền địa e-mail nhận (ví dụ, ‘tenemail.com’), SMTP Server bắt đầu trao đổi liên lạc với DNS Server mà tìm kiếm trả host name SMTP Server đích (ví dụ ‘mail.ten-email.com’) cho tên miền Sau SMTP Server trao đổi thơng tin trực tiếp với SMTP Server đích thơng qua cổng 25 TCP/IP Nếu tên người dùng địa e-mail nhận trùng khớp với tài khoản người dùng phép máy chủ đích Thì thơng báo e-mail gốc cuối đưa đến máy chủ này, chờ người nhận lấy thơng báo thơng qua chương trình gửi nhận mail mail server Outlook chẳng hạn Trong trường hợp SMTP Server liên lạc trao đổi thơng tin trực tiếp với máy chủ đích, giao thức SMTP có cung cấp chế để chuyển thông báo thông qua hay nhiều SMTP Server chuyển tiếp trung gian Một máy chủ trung gian nhận thơng báo gốc sau gửi tới máy chủ đích gửi lần tới máy chủ trung gian khác Quá trình thao tác nhiều lần thông báo chuyển thời gian lưu giữ thông báo hết hạn 1.1.3 Giao thức POP3 Java: POP3 (Post Office Protocol version 3) sử dụng để kết nối tới server email tải email xuống máy tính cá nhân thơng qua ứng dụng email Outlook, Thunderbird, Windows Mail, Mac Mail, vâng Thơng thường, email client có tùy chọn bạn có muốn giữ mail server sau tải hay không Nếu bạn truy cập tài khoản nhiều thiết, khuyên nên chọn giữ lại copy server không thiết bị thứ khơng thể tải mail bị xóa sau tải thiết bị Cũng đáng để lưu ý POP3 giao thức chiều, có nghĩa email “kéo” từ email server xuống email client Mặc đình, port POP3 là:   Port 110 – port khơng mã hóa Port 995 – SSL/TLS port, gọi POP3S 1.2 Giới thiệu Javamail 1.2.1 Giới thiệu Gửi mail java sử dụng JavaMail để thực gửi email từ ứng dụng Java Đây tảng giao thức độc lập sử dụng để gửi, nhận đọc mail thông qua ứng dụng Java Sử dụng JavaMail API để tạo ứng dụng Java có tính hỗ trợ gửi email cho người dùng Ví dụ sau đăng ký thành công tài khoản, ứng dụng gửi email thông báo đên người dùng, … Hình bên minh hoạ sử dụng JavaMail Gửi mail java – Kiến trúc JavaMail JavaMail API tương tác với Service Provider Interface (SPI) để gửi nhận mail SPI cung cấp giao thức dùng để gửi mail Simple Mail Transfer Protocol (SMTP) giao thức dùng để nhận mail Post Office Protocol (POP) Bảng bên mô tả class mà JavaMail API định nghĩa Class Sessio n Messa ge Transp ort Mô tả Đối tượng xác định phiên làm việc Đối tượng xác định thành phần from, to, subject, body, … Sử dụng để gửi message Gửi mail java – Các bước thực Gửi Email sử dụng Ứng dụng Java đơn giản, để bắt đầu, ta cần cài đặt JavaMail API Java Activation Framework (JAF) Download unzip file này, thư mục cấp độ cao tạo nhất, bạn tìm thấy số jar file cho hai ứng dụng Bạn cần thêm file mail.jar activation.jar vào CLASSPATH bạn Tài khoản gmail kích hợp tính POP: Sau đăng nhập vào tài khoản gmail -> chọn Setting -> chọn Forwarding and POP/IMAP Cài đặt Bước 1: Tạo đối tượng Properties định thơng tin host, port Hình : Mơ hình client/server Q trình giao tiếp client server diễn theo hai chế độ: bị phong tỏa (blocked) không bị phong tỏa (non-blocked) Chế độ bị phong tỏa (blocked): Trong chế độ bị phong tỏa, tiến trình client server phát lệnh gửi liệu (send), việc thực thi tiến trình bị tạm ngừng tiến trình nhận phát lệnh nhận liệu (receive) Tương tự tiến trình nhận liệu, tiến trình (client server) phát lệnh nhận liệu, mà thời điểm chưa có liệu gửi tới việc thực thi tiến trình bị tạm ngừng có liệu gửi tới Chế độ không bị phong tỏa (non-blocked) Trong chế độ này, tiến trình client hay server phát lệnh gửi liệu thực sự, việc thực thi tiến trình tiến hành mà khơng quan tâm đến việc có tiến trình phát lệnh nhận liệu hay khơng Tương tự cho trường hợp nhận liệu, tiến trình phát lệnh nhận liệu, nhận liệu có, việc thực thi tiến trình tiến hành mà khơng quan tâm đến việc có tiến trình phát lệnh gửi liệu hay không 1.3 Cách thức hoạt động tiến trình Bước 1: Tạo đối tượng Property có chứa thơng tin SSL port, host, Bước 2: Tạo Session kết nối đến Gmail (sử dụng PasswordAuthentication) Bước 3: Truyền thông tin Subject, nội dung emai, đối tượng MimeMessage Bước 4: Dùng lớp Transport để gửi Email 13 CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.1 Giới thiệu toán Yêu cầu toán: Xây dựng chương trình mail server sử dung java socket  Sử dụng giao thức SMTP, SMTP Server chịu trách nhiệm gửi mail Có thể sử dụng kỹ thuật sau để có máy chủ SMTP,  Yêu cầu giao diện:đơn giản thân thiện dễ nhìn 2.2 Phân tích tốn  Gửi mail sử dụng JavaMail API thư viện javax.mail JavaMail API sử dụng để soạn, gửi đọc tin điện tử (email) JavaMail API cung cấp độc lập giao thức độc lập với tảng cho việc gửi nhận email Nghĩa bạn không cần bận tâm giao thức gửi nhận mail SMTP, POP, IMAP, … Hình : Mơ hình giao tiếp mail server Các gói javax.mail javax.mail.activation lớp lõi JavaMail API, cung cấp phương thức hỗ trợ việc gởi nhận mail Có nhiều cách để gửi email sử dụng JavaMail API, phần viết này, hướng dẫn bạn gửi mail thông qua giao thức SMTP Chúng ta cần SMTP Server chịu trách nhiệm gửi mail Có thể sử dụng kỹ thuật sau để có máy chủ SMTP: Cài đặt sử dụng máy chủ SMTP như: MailCatcher, Postcast server, Apache James server, cmail server, … Sử dụng máy chủ SMTP cung cấp nhà cung cấp máy chủ lưu trữ, ví dụ: stablehost, Hostinger, … Sử dụng Máy chủ SMTP cung cấp cơng ty khác ví dụ: máy chủ SMTP Google (Gmail), Yandex, … Để gửi mail sử dụng JavaMail API, cần thêm thư viện sau vào project: mail.jar activation.jar Nếu bạn khai báo thư viện Apache commons mail file pom.xml khơng cần add thư viện tay  Sử dụng SMTP Server cung cấp Google Để sử dụng SMTP Server cung cấp Google, trước hết bạn phải có tài khoản Gmail, chưa có đăng ký Tiếp theo thiết lập để lấy mật ứng Google Bạn cần bật tính bảo vệ lớp Google (2-Step Verification) trang https://myaccount.google.com/, bạn bỏ qua bước tài khoản Gmail bạn bật tính 2.3 Phân tích vè thiết kế hệ thống 2.3.1 Yêu cầu  Phía khách hàng:  Đăng Kí Tài Khoản  Đăng Nhập  Nhập mail người nhận  Nhập tiêu đề mail  Nhập nội dung mail  Xóa nội dung  Gửi mail  Thoát  Quản lý mail đến: o Xem danh sách mail đến: phân biệt mail đọc, mail chưa đọc 15 o Mở mail hịm thư đến để đọc o Xóa mail đến  Quản lý hòm thư (Thư gửi  Quản lý tài khoản cá nhân  Tìm kiếm mail, tìm kiếm địa mail  Phía Quản trị:  Đăng Nhập Vào Hệ Thống  Thông Tin Tài Khoản  Xem Sửa Xóa email  Tìm kiếm email muốn edit  Quản lý Client  Quản lý mail 2.3.2 Đặt tả yêu cầu  Đăng Ký: a) Tác nhân: Client - b) Mô tả: Client đăng ký email c) Luồng kiện chính: Client chọn mục đăng ký thành viên-Form đăng ký thành viên hiển thị Client đăng nhập thông tin mail vào form đăng ký Nhấn nút đăng ký Hệ thống báo kết trình nhập thơng tin cá nhân Nếu thơng tin nhập khơng xác thực luồn rẽ nhánh A1 Nếu nhập xác thực bước đăng nhập - vào ứng dụng Hệ thống cập nhật thông tin khách hàng vào danh sách thành viên UC kết thúc d) Hậu điều kiện: Client nhập mail vào hệ thống e) Luồng nhánh A1: - Mail nhập không hợp lệ - Hệ thống báo việc nhập liệu không hợp lệ - Client nhập lại email  Đăng nhập: a) Tác nhân: Client b) Mô tả: UC cho phép thành viên đăng nhập vào hệ thống c) Tiền điều kiện: thành viên chưa đăng nhập vào hệ thống d) Luồng kiện chính: - Client chọn chức đăng nhập - Form đăng nhập hiển thị - Nhập tên, mật vào form đăng nhập - Hệ thống kiểm tra tên, mật Client - Nếu việc đăng nhập thành cơng Client sử dụng chức mà ứng dụng có Nếu Client nhập sai tên, mật chuyển sang luồng rẽ nhánh A1 - UC kết thúc d) Luồng rẽ nhánh A1: - Client đăng nhập không thành công - Hệ thống thông báo q trình đăng nhập khơng thành cơng - Chọn: đăng ký hay đăng nhập lại - Hệ thống yêu cầu Client nhập lại tên mật - Nếu Client đồng ý quay bước luồng kiện chính, khơng đồng ý UC kết thúc Hậu điều kiện: - Client đăng nhập thành cơng sử dụng chức mà ứng dụng có  Gửi mail a Tác nhân: Client b Mô tả: UC cho phép Client gưi mail soạn đến người nhận c Tiền điều kiện: Mail soạn d Luồng kiện chính: - Chọn chức gửi mail để gửi mail soạn đến người Nếu chưa soạn thư mà nhấn nút gửi thực luồng rẽ nhánh A1 - Hệ thống hiển thị thông tin mail gửi thành công 17 - UC kết thúc f Luồng rẽ nhánh A1: Chưa nhập email người nhận - Hệ thống thông báo email chưa nhập - Hiển thị khung người nhận để client nhập - Quay lại bước luồng kiện 2.3.3 Biểu đồ Use-Case  Biểu đồ use-case tổng quát 2.3.4 Biểu đồ hoạt động  Đăng ký Hình Biểu đồ hoạt động đăng ký  Đăng nhập Hình Biểu đồ hoạt động đăng nhập  Tìm kiếm 19 Hình Biểu đồ hoạt động tìm kiếm  Sửa Hình Biểu đồ hoạt đống sửa  Xóa Hình Biểu đồ hoạt động xóa 21 CHƯƠNG 3: 3.1 DEMO CHƯƠNG TRÌNH Kết đạt 3.1.1.Giao diện đăng nhập Chúng ta cần đăng nhập email 3.1.2.Giao diện gửi mail - Ở cần chọn mail người muốn gửi nhập nội dung mail khung content nhấn gửi Sau gửi xong Server gửi thơng báo mail gửi thành công 23 3.1.3.Giao diện Server quản lí Mail Ở giao diện có trang đăng nhập đăng xuất Ở hiển thị Retrieving email list CHƯƠNG KẾT LUẬN 4.1 Kết đạt được:  Đã xây dựng hoàn thiện chương trình gửi mail  Kết mail hướng gửi đến vị trí muốn gửi 4.2 Hạn chế:  Vì thời gian cịn hạn hẹp nên việc phát triển giao diện chức  Chưa hoàn hết yêu cầu đề 4.3 Hướng phát triển:  Sẽ phát triển xây dựng chức giao diện đẹp nâng cao 25 TÀI LIỆU THAM KHẢO 1.https://www.hostinger.vn/huong-dan/giai-thich-giao-thuc-pop3-smtp-imap-la-gi-vaport-cua-chung/#Phan-1-POP3-la-gi-va-port-POP3-la-gi 2.https://gpcoder.com/3753-huong-dan-su-dung-thu-vien-java-mail/ 3.https://giasutinhoc.vn/lap-trinh/lap-trinh-giao-dien/gui-mail-trong-java-bai-8/ 4.https://codelearn.io/sharing/phan-mem-gui-email-bang-java-mail 5.https://123doc.net/document/838326-xay-dung-he-thong-mail-server-bang-java.htm

Ngày đăng: 03/03/2022, 02:07

Mục lục

  • TỔNG QUAN VỀ ĐỀ TÀI

  • CHƯƠNG 1: CƠ SỞ LÍ THUYẾT

    • 1.1 Tìm hiểu về các giao thức sử

      • 1.1.1 Giao thức SMTP( Simple Mail Transfer Protocol)

      • 1.1.2 Giao thức SMTP hoạt động như thế nào?

      • 1.1.3. Giao thức POP3 trong Java:

      • 1.2.2 Mô hình Client/Server

      • 1.3. Cách thức hoạt động và tiến trình

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

        • 2.1 Giới thiệu bài toán

        • 2.2 Phân tích bài toán

        • 2.3.2. Đặt tả yêu cầu

        • 2.3.4. Biểu đồ hoạt động

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

          • 3.1. Kết quả đạt được

            • 3.1.1. Giao diện đăng nhập

            • 3.1.2. Giao diện gửi mail

            • 3.1.3. Giao diện Server quản lí Mail

            • CHƯƠNG 4 KẾT LUẬN

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

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

              • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan