- Tên đề tài: Gửi email mô phỏng SMTP qua Socket
- Mục tiêu:
Hiểu cơ chế hoạt động cơ bản của giao thức SMTP.
Thực hành lập trình Socket trong Java để mô phỏng quá trình gửi/nhận email.
Xây dựng mô hình Client – Server đơn giản:
Client: gửi lệnh SMTP và nội dung email.
Server: phản hồi các mã trạng thái, lưu và hiển thị email.
- Ý nghĩa: Sinh viên nắm được cách thức hoạt động của các giao thức tầng ứng dụng.
Ứng dụng được vào các bài toán lập trình mạng nâng cao (xây dựng mail relay, bảo mật bằng TLS, xác thực tài khoản…).
- Thành phần hệ thống
- Ngôn ngữ lập trình: Java 23 SE
- Thư viện: java.net.ServerSocket, java.net.Socket (xử lý TCP).
BufferedReader, PrintWriter (gửi/nhận dữ liệu dạng text).
- Giao thức: SMTP (Simple Mail Transfer Protocol).
- Công cụ IDE: Eclipse / IntelliJ IDEA.
- Môi trường chạy: Windows / Linux / macOS.
🖼️ Giao diện đăng nhập
➕ Giao diện Mail
🔍 Đã gửi tin nhắn
🗑️ Xóa hộp thư
🛠️ Yêu cầu hệ thống
-
Hệ điều hành: Windows 10/11, macOS hoặc Linux
-
Java Development Kit (JDK): Phiên bản 8 trở lên (khuyến nghị JDK 17)
-
RAM: Tối thiểu 2GB
-
IDE khuyến nghị: Eclipse / IntelliJ IDEA / NetBeans
🚀 Clone source code
- Mở terminal / cmd và chạy lệnh sau:
git clone https://github.com/ducthuong11/LTM-1604-D13-Gui-Mail-SMTP-TCP.git
cd LTM-1604-D13-Gui-Mail-SMTP-TCP
📥 Các bước chạy chương trình
🔹 Bước 1: Khởi động Server
Chạy lệnh:
java SMTPServer
👉 Server sẽ lắng nghe kết nối từ các client gửi/nhận email.
🔹 Bước 2: Khởi động Client gửi email
- Mở terminal/cmd mới và chạy:
java ClientGuiSenderTCP
👉 Một cửa sổ GUI hiện ra, cho phép nhập:
-
Người nhận
-
Tiêu đề
-
Nội dung
-
Nhấn Gửi để gửi email đến server.
🔹 Bước 3: Khởi động Client nhận email
- Mở thêm terminal/cmd khác và chạy:
java ClientGuiReceiver
👉 Cửa sổ GUI hiển thị email đã nhận từ server.
✅ Lưu ý:
-
Mỗi client phải kết nối server trước khi gửi/nhận email.
-
Tên người nhận phải trùng với client đã đăng ký để push notification hoạt động.
-
Có thể chạy nhiều client Người Nhận cùng lúc → server push email tới từng client tương ứng.
👤 Họ và tên: Nguyễn Đức Thường
🎓 Lớp: CNTT 16-04
📧 Email: [email protected]