C. HIỆN THỰC CHƯƠNG TRÌNH Trên cơ sở lý thuyết tìm hiểu về Mailing list và các Mail system em
HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH POP3CLIENT:
Chương trình Pop3 Client được thực thi đầu tiên khi cĩ kết nối với Server Mail của nhà cung cấp dịch vụ. Khi được thực thi, đầu tiên, nĩ sẽ lấy các thơng tin như: Tên máy hoặc địa chỉ IP Server Mail của nhà cung cấp dịch vụ, đây chính là Server gởi Mail, username và password dùng để login vào Mailbox trên máy Server nhận Mail, hộp thư Inbox trên máy cục bộ dùng để lưu giữ các thư được nhận về, số lần kết nối lại nếu chương trình đang nhận mà bị ngắt giữa chừng, và thời gian timeout trong trường hợp Server khơng trả lời.
Kế tiếp, chương trình sẽ khởi tạo các signal dùng để xử lý các biến cố cĩ thể xảy ra trong quá trình nhận Mail, ví dụ: đường truyền bị ngắt, timeout,…. Nếu các biến cố này xảy ra thì quá trình sẽ gọi các hàm cài đặt sẳn đi kèm với biến cố để xử lý.
Tiếp theo, chương trình sẽ thực hiện việc kiểm tra lại xem username và
password dùng để đăng nhập vào Mailbox của Server Mail đã cĩ trong cấu trúc POP3_SERVER chưa, nếu đã cĩ thì chương trình sẽ dùng username và password này để thực hiện quá trình login vào Mailbox của Server, nếu chưa cĩ thì sẽ hiển thị yêu cầu nhập vào username và password để thực hiện quá trình login.
Sau đĩ, Pop3Client sẽ mở một socket để thực hiện một kết nối tới Server nhận Mail, mà tên hoặc địa chỉ IP của computer mà chương trình Pop3Server đang chạy được lưu giữ trong trường host của cấu trúc POP3_SERVER. Nếu là tên, chương trình sẽ thực hiện việc chuyển đổi sang địa chỉ IP để thực hiện kết nối.
Nếu kết nối thực hiện thành cơng, Pop3 Client sẽ nhận được một lời chào được gởi tới bởi Pop3 Server và session sẽ bước vào quá trình AUTHORIZATION. Lúc này, Pop3Client sẽ gởi username và password tới cho Pop3Server kiểm tra.
Nếu quá trình AUTHORIZATION thực hiện thành cơng, session sẽ bước vào quá trình TRANSACTION, nếu khơng thành cơng, Pop3Server sẽ gởi thơng báo lỗi lại cho Pop3Client. Lúc này, Pop3Client cĩ thể thực hiện việc đăng nhập lại với username
và password khác hoặc cĩ thể gởi lệnh “QUIT” để thốt.
Bước vào quá trình TRANSATION, đầu tiên Pop3 Client sẽ gởi lệnh “STAT” tới server để kiểm tra xem cĩ mail trong mailbox hay khơng. Nếu cĩ, server sẽ trả về tổng số thư hiện cĩ trong mailbox và kích thước của mailbox. Tiếp đĩ, Pop3Client sẽ gởi lệnh “LIST” để lấy kích thước của từng message.
Sau khi cĩ được tổng số message cĩ trong mailbox, Pop3 Client sẽ bước vào vịng lặp dùng để nhận mail, với mỗi bước của vịng lặp sẽ thực hiện một lệnh “RETR” với số thứ tự tương ứng với chỉ số của vịng lặp dùng để nhận message tương ứng.
Sau khi nhận xong message, Pop3Client sẽ gởi lệnh “DELE i” tới server để xĩa message này.
Sau khi lấy hết các message cĩ trong mailbox của server, Pop3Client sẽ gởi lệnh “QUIT” tới server để yêu cầu server chuyển Pop session sang trạng thái Update và thốt.
Đối với Server, khi bước vào trạng thái UPDATE, nĩ sẽ xĩa thật sự các message đã được đánh dấu xĩa trong Mailbox vào đĩng kết nối. Nếu một kết nối đã đĩng lại mà Server khơng bước vào trạng thái UPDATE thì các message được đánh dấu xĩa sẽ khơng được xĩa trong Mailbox mà nĩ sẽ trở lại trạng thái ban đầu.
Yes Yes Yes Tạo socket Connect server tại port 110 Gởi lệnh USER username \r\n Response = +OK Gởi lệnh PASS password \r\n Response = +OK Gởi lệnh PASS password \r\n Gởi lệnh STAT \r\n Response = +OK 1 Báo lỗi Đĩng Socket No No No No
Lưu Đồ Cho Getmail(Tiếp tục) No 1 Xử lý hàng nhận được lấy tổng số message Gán i=1 Gởi lệnh RETR i Đọc từng vào từng dịng từ socket và ghi File cho đến khi kết thúc bức mail. incr i i <= số msg Gởi lệnh QUIT Đĩng Socket Yes
HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH SMTP CLIENT
Chương trình smtp client sẽ thực hiện lần lượt theo sơ đồ sau:
Yes
Deliver mail và tạo back up nếu cĩ yêu cầu
Đĩng kết nối
Mở và đọc file outbox
Cĩ thư cần gởi?
Tạo socket kết nối tới server
Thốt và báo lỗi tương ứng
No
END
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐẠI HỌC THUỶ SẢN TRƯỜNG ĐẠI HỌC THUỶ SẢN
KHOA CƠNG NGHỆ THƠNG TIN