1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo Đồ án lập trình socket

16 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 2,37 MB

Nội dung

Đánh giá mức độ hoàn thành ST T Yêu cầu Mức hoàn thành độ Ghi chú 1 Gửi được email dùng giao thức SMTP: To, CC, BCC khi gửi BCC thì những người nhận liên quan To, CC sẽ không biết là có

Trang 1

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - ĐHQG TP.HCM KHOA CÔNG NGHỆ THÔNG TIN

MÔN: MẠNG MÁY TÍNH

BÁO CÁO ĐỒ ÁN

LẬP TRÌNH SOCKET

Giáo viên hướng dẫn: Chung Thuỳ Linh

Lớp: 22CTT4

hiện( nhóm 9)

Nguyễn Minh Nhã 22120242 Trần Ngọc Nhân 22120249 Nguyễn Thanh Phong 22120265

Trang 2

Phụ lục

1 Thông tin nhóm 3

2 Phân công công việc 3

3 Đánh giá mức độ hoàn thành 4

4 Hướng dẫn sử dụng các tính năng chương trình 5

a Chức năng SEND EMAIL 5

b Chức năng SEE LIST EMAIL 6

5 Kịch bản giao tiếp của chương trình 8

a Gửi email đi dùng giao thức SMTP 8

b Tải một email về từ Mail server dùng giao thức POP3 13

6 Môi trường lập trình và các framework hỗ trợ để thực thi ứng dụng 14

7 Tài liệu tham khảo 14

Trang 3

1 Thông tin nhóm

ST

T MSSV Họ và tên Email

1 221202

42 Nguyễn Minh Nhã Minhnha1101@gmail.com

2 221202

49 Trần Ngọc Nhân tranngocnhannt2004@gmail.com

3 221202

65 NguyễnPhong Thanh ngthanhphong0817@gmail.com

2 Phân công công việc

STT Người thực hiện Nội dung công việc

1 Trần Ngọc Nhân Tạo sườn cho chương trình

Tải các email không kèm file và có kèm file

Quản lý trạng thái đọc file

Lọc email và đưa vào các folder

Tổ chức và xử lý file config phục vụ cho công việc lọc mail

Tự động tải email mỗi 10s

2 Nguyễn Thanh

Phong Gửi mail không kèm file đính kèm.

Gửi email kèm file đính kèm định dạng *.txt

Giới hạn dung lượng file gửi

Xử lý nội dung email tải về trên màn hình console

Kiểm tra, phát hiện lỗi

3 Nguyễn Minh Nhã Gửi email với CC và BCC

Gửi email đính kèm file với nhiều định dạng khác nhau

Gửi được nhiều file trong cùng 1

Trang 4

Lưu file từ email tải về máy cục bộ.

Tổ chức và xử lý đọc file config chứa thông tin User, Port, Mailserver,… Viết báo cáo

3 Đánh giá mức độ hoàn thành

ST

T Yêu cầu Mức hoàn thành độ Ghi chú

1 Gửi được email (dùng

giao thức SMTP): To, CC,

BCC (khi gửi BCC thì

những người nhận liên

quan (To, CC) sẽ không

biết là có gửi BCC), gửi

file đính kèm email

đúng các yêu cầu, chưa phát hiện ra lỗi

2 Tải được email từ Mail

server (dùng giao thức

POP3): Tải đủ và đúng

Không tải lại những

email đã tải trước đó,

đảm bảo yêu cầu này cả

khi tắt/ mở lại Mail

Client

đúng các yêu cầu, chưa phát hiện ra lỗi

3 Cho phép người dùng

phân loại email vào các

folder cụ thể theo cấu

hình của file config

(phân loại theo địa chỉ

người gửi, theo subject,

hoặc từ khóa trong nội

dung email) Mặc định

email được tải về client

luôn thuộc folder Inbox

đúng các yêu cầu, chưa phát hiện ra lỗi

Trang 5

nếu không phù hợp bất

kỳ kết quả filter nào

4 Cho phép lọc các từ

khóa spam từ subject và

nội dung email, di

chuyển các spam email

vào thư mục Spam khi

lấy email về từ Mailbox

của Server

đúng các yêu cầu, chưa phát hiện ra lỗi

5 Quản lý được trạng thái

email (đã đọc/ chưa

đọc), đảm bảo vẫn đúng

khi tắt/mở chương trình

Mail Client của mình

đúng các yêu cầu, chưa phát hiện ra lỗi

6 Tự động tải email trong

mailbox về mỗi 10s một

lần, cấu hình thời gian

tự động tải email này

trong file config

đúng các yêu cầu, chưa phát hiện ra lỗi

4 Hướng dẫn sử dụng các tính năng chương trình

Khi khởi động chương trình, màn hình sẽ hiện MENU với 3 lựa chọn SEND EMAIL, SEND LIST EMAIL và EXIT Người dùng sẽ nhập số tương ứng để chọn chức năng

Trang 6

a Chức năng SEND EMAIL

Sau khi chọn chức năng SEND EMAIL, người dùng lần lượt nhập các thông tin được yêu cầu( nếu không nhập thì bấm Enter để bỏ qua) bao gồm:

- TO, CC, BCC: nhập địa chỉ email người nhận, các email ngăn cách nhau bới dấu cách

- Subject: Tiêu đề email

- Content: Nội dung email, kết thúc nội dung với dấu “;”

Trang 7

Sau đó sẽ xuất hiện dòng chữ hỏi bạn có muốn gửi file đính kèm không, nhấn “1” để gửi kèm file, “2” để chọn không Sau đó nhập số lượng file muốn gửi, tiếp đến nhập đường dẫn tới file bạn cần gửi, tổng dung lượng các file phải nhỏ hơn hoặc bằng 3MB, nếu không bạn sẽ được thông báo và phải nhập lại đường dẫn các file Thông báo hiện lên báo hiệu việc gửi email đã thành công

b Chức năng SEE LIST EMAIL

Sau khi chọn chức năng SEE LIST EMAIL, sẽ xuất hiện các folder, người dùng nhập số tương ứng để xem email trong folder cần xem, nhập “0” để thoát ra MENU

Trang 8

Sau khi chọn folder, danh sách email sẽ xuất hiện, bấm số tương ứng để lựa chọn email muốn bạn muốn xem Sau khi chọn, nội dung email sẽ xuất hiện kèm thông báo có file đính kèm hay không kèm sanh sách các file nếu có Bạn nhập “1” nếu muốn lưu các file hoặc “2” nếu không

Nếu bạn chọn có lưu file, hãy nhập đường dẫn mà bạn muốn file được lưu về và các file đính kèm sẽ được lưu về

Trang 9

Sau khi đọc, mail của bạn sẽ được đánh dấu là đã đọc Bạn vẫn có thể tiếp tục lưu file vào thư mục khác

5 Kịch bản giao tiếp của chương trình

a Gửi email đi dùng giao thức SMTP

- B1: Kết nối.

Mail Client thiết lập kết nối với Mail Server bằng Socket thông qua cổng 2225 (hoặc cổng khác, tùy vào cấu hình)

- B2: Gửi lệnh EHLO.

Trang 10

Mail Client gửi thông báo đến Mail Server về sự hiện diện

của nó thông qua lệnh EHLO [127.0.0.1] (hoặc địa chỉ IP khác,

tùy vào cấu hình)

- B3: Chuyển thông điệp.

Sau khi thiết lập kết nối và xác nhận danh tính, Mail Client gửi tới Mail Server địa chỉ email của người gửi thông qua lệnh MAIL FROMRCPT TO

- B4: Truyền nội dung.

Mail Client gửi tới Mail Server lệnh DATA để yêu cầu gửi

dữ liệu thư (văn bản, tệp đính kèm, vv.), sau khi nhận phản hồi

354 enter mail, end with line containing only “.”, Mail Client

bắt đầu gửi nội dung email từng dòng một, cấu trúc gồm 3 phần chính là phần đầu( chứa thông tin cơ bản của mail), phần content( chứa nội dung của email), phần dữ liệu file( chứa nội dung file đính kém đã được mã hóa) Phần dữ liệu này phải được kết thúc bởi 1 dòng chỉ bào gồm “.”

Trang 11

Phần đầu gồm các dòng Message-ID( mã định danh duy nhất của email), Date( giờ, ngày, tháng, năm gửi email), MIME-Version( phiên bản MIME sử dụng), User-Agent( ứng dụng gửi thư đang sử dụng), Content-Language( ngôn ngữ), To( địa chỉ

email người nhận, nếu nhiều sẽ ngăn cách bằng dấu “,”),

From( địa chỉ email người gửi), Subject( tiêu đề của email)

Nếu email được gửi có đính kèm file, một chuỗi kí tự( tự quy định) được sử dụng để đặt ranh giới giữa các phần khác nhau giúp máy chủ thư và các chương trình đọc thư hiểu cách các phần của thư được tách biệt Lúc này dòng đầu tiên được

gửi cho Mail Server sẽ là Content-Type: multipart/mixed;

Trang 12

được thêm vào đầu mỗi boundary, và dấu " " được thêm vào

cuối cùng để chỉ định sự kết thúc của email Dòng This is a

multi-part message in MIME format thông báo cho Mail Server

rằng email đó chứa nhiều phần khác nhau

Đối với phần nội dung email, phần header bao gồm

Content-Type:… xác định kiểu của nội dung gửi là văn bản, Content-Transfer-Encoding: … xác định cách biểu diễn và

truyền tải nội dung email Cách một dòng so với phần header

là phần nội dung email mà bạn muốn gửi đi

Đối với phần file đính kèm, phần header bao gồm

Type:… xác định kiểu của tệp đính kèm; Content-Disposition:… xác định cách xử lý nội dung, bao gồm cả tên

tệp đính kèm; Content-Transfer-Encoding:… xác định phương

pháp mã hóa sử dụng để truyền tải dữ liệu của tệp đính kèm(ở đây là base64) Cách một dòng sau đó là phần nội dung email

đã được mã hóa theo phương pháp base64

Trang 13

-B5: Kết thúc phiên.

Trang 14

Khi quá trình truyền tải hoàn tất, kết nối giữa Mail Client

và Mail Server sẽ được đóng

b Tải một email về từ Mail server dùng giao thức POP3

- B1: Kết nối.

Mail Client thiết lập kết nối với Mail Server bằng Socket thông qua cổng 3335 (hoặc cổng khác, tùy vào cấu hình)

- B2: Chứng thực.

Người dùng cung cấp thông tin đăng nhập (tên người dùng và mật khẩu) để xác thực thông qua lệnh USERPASS.

Mail Server trả về +OK nếu xác thực thành công

- B3:Bắt đầu phiên và lấy thông tin về các email.

Mail Client lấy số lượng thư và tổng kích thước của chúng

bằng bệnh STAT Mail Server trả về +OK <số lượng thư> <tổng

kích thước>

Mail Client sử dụng lệnh LIST để lấy danh sách các thư kèm dung lượng của từng thư lần lượt theo số thứ tự Mail

Server sẽ trả về lần lượt <số thứ tự thư> <kích thước thư>.

Chương trình sẽ kiểm tra và thực hiện lấy nội dung của

thư mới vừa nhận bằng lệnh RETR <số thứ tự thư> Mail

Server trả về thông tin, nội dung email

Trang 15

- B4: Kết thúc phiên.

Mail client kết thúc phiên và đăng xuất bằng lệnh QUIT.

6 Môi trường lập trình và các framework hỗ trợ để thực thi ứng dụng

Chương trình được viết bằng ngôn ngữ C++ trên hệ điều hành

Trang 16

7 Tài liệu tham khảo

Chat Openai: https://chat.openai.com

SMTP command: https://mailtrap.io/blog/smtp-commands-and-responses/

POP3 command: https://electrictoolbox.com/pop3-commands/ How to send email with an attachment from C++ through SMTP?

Cùng tìm hiểu về Base64 encoding

Json là gì? Những điều lập trình viên nên biết về Json File C++ Network Programming Part 1: Sockets

C++ Network Programming Part 2: TCP & UDP

Ngày đăng: 11/12/2024, 10:20

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN