Cấu hình Smail để sử dụng với hệ thống TCP

Một phần của tài liệu Đồ án tốt nghiệp: TÌM HIỂU VỀ CÁC WEB SERVER THÔNG DỤNG TÌM HIỂU VỀ MAILING LIST VÀ CÁC MAIL SYSTEM XÂY DỰNG MỘT CHƯƠNG TRÌNH INTERNET MAIL (1) (Trang 85 - 91)

III. SỬ DỤNG SMAIL

9.Cấu hình Smail để sử dụng với hệ thống TCP

Nếu cần phải sử dụng một kết nối mạng truyền mail thì cần phải điều chỉnh lại file config để chỉ định các kiểu kết nối và các tên host. Có nhiều cách để cấu hình các hệ thống mail cho một mạng. Các cách nào bao gồm sử dụng hệ thống NFS (Network File System) để cho phép một file cấu hình đơn lẻ chia sẻ với tất cả các máy, sử dụng POP hoặc IMAP để điều khiển mail trên một site trung tâm và cài đặt lên mỗi máy như một bộ điều khiển mail độc lập. Quá trình cấu hình cho tất cả các phương thức đó thì phần nhiều là giống nhau. Chỉ khác nhau ở chỗ có hay khơng các file cấu hình đặt trên mỗi máy trong mạng hoặc một máy đơn lẻ được truy cập sau đó bằng NFS hoặc SMTP bởi các máy khác.

Bắt đầu quá trình cấu hình bằng cách thiết lập các tên miền cục bộ sử dụng các biến visible_domain và visible_name.

Ví dụ:

# Our domain name visible_domain=tpci.com

# Our domain name for outgoing mail visible_name=tpci.com

Đoạn mã này thiết lập tên miền cục bộ và các tên miền quyết định. Mục nhập cho biến visible_domain được sử dụng bởi Smail để gửi đính kèm đến tất cả các mail gửi đi. Cả hai biến thường được gán giống nhau.

Bước cấu hình kế tiếp là thiết lập tên của smart_host điều khiển các message ra ngồi mạng cục bộ. Nếu khơng sử dụng smart_host hoặc máy của người sử dụng điều khiển các kết nối mạng đến chính nó thì khơng cần những giá trị này. Các biến có liên quan trong việc cài đặt lên một smart_host là smart_path ( chỉ định tên máy

smarthost) và smart_transport (chỉ định kiểu phương thức sử dụng để kết nối đến smarthost).

Ví dụ:

# smart host routing # smart host name smart_host=merlin

# communications protocol to smart host smart_transport=smtp

Giá trị smart_transport của SMTP được sử dụng để nhận biết giao thức kết nối SMTP.

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 tiến hành xây dựng mô phỏng một hệ thống mail với các chức cơ bảng như năng gửi và nhận mail dựa trên 2 giao thức truyền nhận cơ bản là SMTP và POP3. Chương trình này là một chương trình Mail Client được viết bằng ngơn ngữ lập trình PERL

Phần sau đây sẽ trình bày các lưu đồ thực hiện của chương trình và lưu đồ của các giao thức truyền nhận mail SMTP và POP3.

Lưu đồ tổng quát: LOGIN EXIT Logo ut CHECK MAIL SEN D MAIL MENU MENU S END RESE T EXIT SEND MAIL CHECK MAIL EXIT R

EAD RETURN DELETE

CHECK MAIL MAIL BOX R ETUR N EXIT NO MAIL R ETUR N EXIT O K E R R O R EXIT R ETURN EXIT R EPLY ADDRES S READ MAIL R ETUR N

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 q 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ị u cầu nhập vào username và

password để thực hiện q 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 q trình AUTHORIZATION thực hiện thành cơng, session sẽ bước vào q 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à thoá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

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:

trang 89

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 Yes

Deliver mail và tạo back up nếu có yêu cầu

Đóng kết nối

Mở đọc file outbox

Có thư cần gởi?

Tạo socket kết nối tới server

Thoát và báo lỗi tương ứng

N o

BEGI N

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐẠI HỌC THUỶ SẢN

KHOA CÔNG NGHỆ THÔNG TIN

ĐỀ CƯƠNG VIẾT ĐỒ ÁN TỐT NGHIỆP

Họ tên sinh viên: Đặng Vũ Quốc Khánh Lớp 39TH – Hệ chính quy.

Giáo viên hướng dẫn: Thầy Nguyễn Ngọc Bình

Thời gian làm đồ án tốt nghiệp: Từ ngày 21/4/2002 đến 25/9/2002 Tên đồ án:

- Tìm hiểu về các Web Server thơng dụng hiện nay. - Tìm hiểu về Mailing list và các Mail system. - Xây dựng một chương trình Internet mail.

Đề cương viết đồ án:

A. CÁC YÊU CẦU CỦA ĐỀ TÀI B. CƠ SỞ LÝ THUYẾT

Chương I: Tìm hiểu về các Web Server thơng dụng Chương II: Các nghi thức truyền nhận

Phần I: Giao thức SMTP Phần II: Giao thức POP3

Chương III: Giới thiệu về Internet Mail

Chương IV: Tìm hiệu về các hệ thống mail trên hệ điều hành Linux

Một phần của tài liệu Đồ án tốt nghiệp: TÌM HIỂU VỀ CÁC WEB SERVER THÔNG DỤNG TÌM HIỂU VỀ MAILING LIST VÀ CÁC MAIL SYSTEM XÂY DỰNG MỘT CHƯƠNG TRÌNH INTERNET MAIL (1) (Trang 85 - 91)