Tìm hiểu 1 số công nghệ Web và xây dựng 1 chương trình Newsletter

YÊU CẦU CỦA ĐỀ TÀI: Bao gồm các phần sau: Tìm hiểu về các Web server thông dụng hiện nay: + Microsoft Internet Information Server + Apache Web Server Trình bày về đặc điểm về khả năng, cài đặt, vận hành, hỗ trợ các ứng dụng Web và so sánh các điểm mạnh, yếu, các ưu nhược điểm giữa chúng. Tìm hiểu về hệ thống mailing list: Tìm hiểu về các nghi thức truyền nhận mail cơ bản như SMTP và POP3. Tìm hiểu cách vận hành và cài đặt của các hệ thống mail trên các hệ điều hành thông dụng: + Internet Mail. + Linux Mail. B. CƠ SỞ LÝ THUYẾT: CHƯƠNG I TÌM HIỂU VỀ CÁC WEB SERVER THÔNG DỤNG I. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH WINDOWS NT 1. Thếâ nào là một hệ điều hành mạng: Mạng bao gồm các tài nguyên (máy trạm, máy in ) và các thiết bị truyền thông (router, bridge). Với việc ghép nối các máy tính thành mạng thì cần thiết phải có một hệ thống phần mềm có chức năng quản lý tài nguyên, tính toán và xử lý truy cập một cách thống nhất trên mạng, hệ như vậy được gọi là hệ điều hành mạng. Mỗi tài nguyên của mạng như file, đĩa, thiết bị ngoại vi được quản lý bởi một tiến trình nhất định và hệ điều hành mạng điều khiển sự tương tác giữa các tiến trình và truy cập đến các tiến trình đó. Quản lý các tài nguyên: tập tin ở xa, nạp và chạy các App dùng chung, I/O với các thiết bị mạng dùng chung, chỉ cấp phát CPU trong tiến trình NOS. Căn cứ vào việc truy cập tài nguyên trên mạng mà người ta chia thực thể trong mạng thành hai loại chủ và khách, trong đó máy khách (Client) truy cập được vào tài nguyên của mình nhưng không chia xẻ tài nguyên của nó với mạng, còn máy chủ (Server) là máy tính nằm trên mạng và chia xẻ tài nguyên của nó với người dùng mạng. Hiện nay các hệ điều hành mạng thường được chia làm hai loại là hệ điều hành mạng ngang hàng và hệ điều hành mạng phân biệt (clent/server). Với hệ điều hành mạng ngang hàng, mỗi máy tính trên mạng vừa có thể đóng vai trò chủ lẫn khách tức là chúng có thể sử dụng tài nguyên của mạng lẫn chia xẻ tài nguyên của nó cho mạng. Ví dụ: Lantastic của Artisoft, Netware của Novell, Windows (for Workgroup, 95, NT client) của Microsoft. Với hệ điều hành mạng phân biệt các máy tính được phân biệt chủ và khách, trong đó máy chủ mạng (Server) giữ vai trò chủ và các máy người dùng giữ vai trò khách (các trạm). Khi có nhu cầu truy cập tài nguyên trên mạng các trạm tạo ra yêu cầu và gửi chúng tới server và sau đó server thực hiện và gửi trả lời. 2. Hệ điều hành mạng Windows NT Windows NT là hệ điều hành mạng cao cấp của hãng Microsoft. Phiên bản đầu tiên có tên là Windows NT 3.1 phát hành năm 1993 và phiên bản server là Windows NT Advanced Server (trước đó là LAN manager for Windows NT). Năm 1994 phiên bản Windows NT Server và Windows NT Workstation phiên bản 3.5 được phát hành. Tiếp theo đó là sự ra đời các phiên bản 3.51. Các phiên bản Workstation có thể sử dụng để thành lập mạng ngang hàng, còn các phiên bản Server dàng cho quản lý file tập trung, in ấn và chia sẻ các ứng dụng. Năm 1995, Windows NT Workstation phiên bản 4.0 và Windows NT Server 4.0 ra đời đã kết hợp với cấu trúc khung của người anh em Windows 95 nổi tiếng phát hành trước đó không lâu (trước đây cấu trúc khung của Windows NT giống Windows 3.1) đã được kết hợp giao diện quen thuộc, dễ sử dụng của Windows 95 và sự mạnh mẽ, an toàn, bảo mật cao của Windows NT. Windows NT có hai bản mà nó đi đôi với hai cách tiếp cận mạng khác nhau. Hai bản này gọi là Windows NT Workstation và Windows NT server. Với hệ điều hành chuẩn của NT ta có thể xây dựng mạng ngang hàng, server mạng và mọi công cụ quản trị cần thiết cho server mạng, ngoài ra còn có thể có nhiều giải pháp về xây dựng mạng diện rộng. Cả hai bản Windows NT Workstation và Windows NT server cùng được xây dựng trên cơ sở nhân NT chung và các giao diện và cả hai cùng có những đặc trưng an toàn theo tiêu chuẩn C2. Windows NT Workstation được sử dụng để kết nối những nhóm người sử dụng nhỏ, thường cùng làm việc trong một văn phòng. Tuy nhiên với Windows NT server ta có một khả năng chống hỏng hóc cao, những khả năng cung cấp dịch vụ mạng lớn và những lựa chọn kết nối khác nhau, Windows NT server không hạn chế số người có thể thâm nhập vào mạng. Với Windows NT server ta cũng có những công cụ quản trị từ xa vào mạng mà có thể thực hiện việc quản trị những máy tính ở xa. Nó tích hợp với tất cả những sơ đồ mạng BUS, STAR, RING và hỗn hợp. Windows NT là hệ điều hành có sức mạnh công nghiệp đầu tiên cho số lượng khổng lồ các máy tính IBM compatible, Windows NT là một hệ điều hành thực sự dành cho người dùng, các cơ quan, các công ty xí nghiệp. Windows NT là một hệ điều hành đa nhiệm, đa xử lý với địa chỉ 32 bit bộ nhớ. Nó yểm trợ các ứng dụng của DOS, Windows, Win 32 GUI và các ứng dụng dựa trên ký tự. Windows NT server là hệ điều hành mạng, đáp ứng cho mạng cục bộ (LAN) vừa đáp ứng cho mạng diện rộng (WAN) như Intranet, Internet. Windows NT server hơn hẳn các hệ điều hành khác bởi tính mềm dẻo, đa dạng trong quản lý. Nó vừa cho phép quản lý mạng theo mô hình mạng phân biệt (Client/Server) vừa quản lý theo mô hình mạng ngang hàng (Peer to Peer). Windows NT server đáp ứng tốt nhất các dịch vụ viễn thông, một dịch vụ được sử dụng rộng rãi trong tương lai. Windows NT server cài đặt đơn giản, nhẹ nhàng và điều quan trọng nhất là nó tương thích với hầu như tất cả các hệ mạng, nó không đòi hỏi người ta thay đổi những gì đã có. Cho phép dùng các dịch vụ truy cập từ xa, có khả năng phục vụ đến 64 cổng truy nhập từ xa. Đáp ứng cho các máy trạm Macintosh nối với Windows NT server. Windows NT server yểm trợ mọi nghi thức mạng chuẩn như NETBUEI, IPX/SPX, TCP/IP và các nghi thức khác. Windows NT cũng tương thích với những mạng thông dụng hiện nay như Novell netware, Banyan VINES và Microsoft LAN Manager. Đối với mạng lớn và khả năng thâm nhập từ xa, sản phẩm Windows NT server cũng cung cấp các chức năng bổ sung nhu cầu , khả năng kết nối với máy tính lớn và máy Macintosh. Bố cục 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 C. HIỆN THỰC CHƯƠNG TRÌNH

doc100 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2379 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Tìm hiểu 1 số công nghệ Web và xây dựng 1 chương trình Newsletter, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Cc: Chæ ngöôøi nhaän ñöôïc phieân baûn copy cuûa mail. Return-path: Chöùa caùc thoâng tin ñeå ngöôøi nhaän coù theå phuùc ñaùp thö trôû laïi (thöôøng cuõng laø ñòa chæ ngöôøi göûi). Subject: Chuû ñeà cuûa noäi dung email. Caùc tröôøng treân laø caùc tröôøng chuaån do giao thöùc SMTP quy ñònh, ngoaøi ra trong phaàn header cuõng coù theå coù theâm moät soá tröôøng khaùc do chöông trình email taïo ra nhaèm quaûn lyù caùc email maø chuùng taïo. Caùc tröôøng naøy ñöôïc baét ñaàu baèng kyù töï X- vaø thoâng tin theo sau laø cuõng gioáng nhö ta thaáy treân moät tröôøng chuaån. Ví duï trong chöông trình cuûa moät heä thoáng mail ngoaøi caùc tröôøng chuaån do nghi thöùc SMTP quy ñònh coøn coù theâm tröôøng X-WinMail-Editor, tröôøng naøy giuùp cho chöông trình nhaän ra nhöõng böùc mail naøo laø do ngöôøi söû duïng taïo (neáu ñuùng thì cung caáp thoâng tin veà vieäc neùn noäi dung böùc mail) ra vaø nhöõng böùc mail naøo laø do moät chöông trình email khaùc taïo ra. C. Phaàn noäi dung (body) Ñeå phaân bieät phaàn tieâu ñeà vaø phaàn noäi dung cuûa böùc mail, ngöôøi ta qui öôùc ñaët ranh giôùi laø moät doøng traéng (chuoãi kyù töï "\r\n"). Keát thuùc cuûa phaàn noäi dung laø chuoãi kyù töï keát thuùc mail: "\r\n.\r\n". Nhö vaäy noäi dung böùc mail naèm trong khoaûng giöõa doøng traéng ñaàu tieân vaø kyù tt thuùc mail vaø trong phaàn noäi dung cuûa böùc mail khoâng ñöôïc pheùp toàn taïi chuoãi kyù töï keát thuùc mail. Maët khaùc do moâi tröôøng truyeàn thoâng laø maïng Internet neân caùc kyù töï caáu thaønh thaân böùc mail cuõng phaûi laø caùc kyù töï ASCII chuaån. @. TOÙM TAÉT NHÖÕNG CHÖÙC NAÊNG THOÂNG DUÏNG CUÛA INTERNET MAIL ----***---- Coâng cuï Chöùc naêng New message Taïo moät böùc thö môùi Reply to Author Traû lôøi thö cho taùc giaû (ngöôøi ñaõ gôûi thö cho mình Reply to All Traû lôøi thö cho taùc giaû vaø taát caû nhöõng ngöôøi coù ñòa chæ ñöôïc ghi trong muïc Cc cuaû böùc thö Forward Chuyeån thö ñi (seõ hieän ra moät baûng ñeå ta ñieàn ñòa chæ nôi ñeán vaø caùc thoâng tin phuï) Send and Receice Gôûi thö (neáu nhö coù thö trong folder Outbox) hoaëc taûi caùc thö môùi töø server veà Delete Xoùa thö Address Book Soå ñieän thoaïi. Ñaây laø nôi chöùa ñòa chæ vaø caùc thoâng tin cuï theå cuûa nhöõng ngöôøi sôû höõu nhöõng ñòa chæ ñoù Mark as Read Ñaùnh daáu nhöõng böùc thö ñeå cho ta bieát laø thö ñaõ ñöôïc ñoïc Mark as Unread Ñaùnh daáu nhöõng böùc thö ñeå cho ta bieát laø thö chöa ñöôïc ñoïc File Attachment Göûi thö coù ñính keøm theo moät file naøo khaùc (vaên baûn, hình aûnh, trang web…) Inbox Assistant Taïo ra caùc nguyeân taéc ñeå nhaän thö vaø chuyeån thö ñeán nhöõng thö muïc ñaõ ñöôïc ñònh tröôùc Singature Taïo moät chöõ kyù Priority Taïo ñoä öu tieân cho töøng böùc thö seõ ñöôïc göûi ñi CHÖÔNG IV TÌM HIEÅU VEÀ CAÙC HEÄ THOÁNG MAIL TREÂN HEÄ ÑIEÀU HAØNH LINUX Moät heä thoáng mail treân heä ñieàu haønh Linux thöôøng bao goàm hai thaønh phaàn: Mail User Agent (MUA) chính laø giao dieän cuûa phaàn meàm mail ñöôïc söû duïng ñeå soaïn thaûo vaø ñoïc mail. Mail Transfer Agent (MTA) Thaønh phaàn chuyeån vaän mail cô baûn: ñöôïc duøng ñeå göûi vaø nhaän mail. Coù hai MTA phoå bieán ñöôïc duøng treân heäu ñieàu haønh Linux vaø haøng taù MUA ñaõ coù saün treân ñoù. Coù nhieàu phieân baûn cuûa caùc heä thoáng mail ñaõ coù saün treân Linux, moãi phieân baûn ñeàu coù söï khaùc nhau veà vaán ñeà thöïc thi khoâng ñaùng keå laém. Heä thoáng e-mail thoâng thöôøng cho Linux laø Smail vaø Smail cuõng coù raát nhieàu phieân baûn ñaõ coù saün treân Linux. Bôûi vì caû Smail vaø Sendmail ñeàu ñöôïc cung caáp saün treân haàu heát caùc ñóa CD-ROM caøi ñaët heä ñieàu haønh Linux cho neân ngöôøi söû duïng coù theå löïa choïn ñeå coù moät heä thoáng thích hôïp. Vôùi moãi caùch caøi ñaët rieâng, caû hai heä thoáng ñeàu laøm vieäc toát. Nhöng trong moät soá tröôøng hôïp Smail deã daøng caáu hình vaø söû duïng hôn Sendmail ôû moät möùc ñoä khoâng ñaùng keå, nguyeân nhaân chính laø vì noù coù phaàn caøi ñaët saün cho nhieàu modem hôn. Ñeå söû duïng cho moät heä thoáng lôùn vaø vôùi caùc yeâu caàu caáu hình ñaëc bieät, Sendmail thì linh hoaït hôn vaø cung nhieàu nhieàu chöùc naêng hôn. Caû Smail vaø Sendmail ñeàu yeâu caàu phaûi thieát laäp caùc thoâng soá cho phuø hôïp thoâng qua caùc file caáu hình, maëc duø quaù trình caáu hình laø khaùc nhau cho moãi saûn phaåm. Ñoái vôùi caùc yeâu caàu email cô baûn, chaúng haïn nhö keát noái ñeán moät mail server hoaëc moät maùy khaùc trong maïng, quaù trình thieát laäp thì hoaøn toaøn ñôn giaûn vaø deã daøng thöïc hieän. Khi soaïn thaûo moät message söû duïng moät MUA thoâng qua moät giao dieän chöông trình (chaúng haïn nhö Elm, Pine hoaëc mail) treân heä thoáng Linux, trình öùng duïng seõ göûi message ñeán MTA (chaúng haïn nhö Sendmail hoaëc Smail). Ngay laäp töùc, caùc MUA seõ chuyeån message ñeán moät boä phaän phaân phaùt goïi laø rmail maø noù thöôøng ñaët bí danh ñeán MTA cuï theå ñang söû duïng. Coù theå coù nhieàu MTA ñang cuøng chaïy moät luùc (chaúng haïn nhö moät cho email LAN vaø moät cho UUCP phaùt), maëc duø haàu heát caùc heä thoáng ñeàu chæ söû duïng moät caùi thích hôïp nhaát. Neáu message ñöôïc göûi cho moät ngöôøi naøo ñoù treân maïng LAN (hoaëc ñeán moät maùy töông töï khaùc), MTA coù theå tìm ra caùc thoâng tin töø ñòa chæ. MTA phaûi coù theå hieåu caùc bí danh thaät toát ñoái vôùi caùc tröôøng hôïp ngöôøi söû duïng goïi ñeán moät maùy khaùc, moät maïng hoaëc nhöõng ngöôøi söû duïng baèng caùc teân khaùc nhau. Neáu message daønh cho moät ngöôøi söû duïng töø moät heä thoáng xa, MTA phaûi coù khaû naêng thieát laäp keát noái ñeán moät maùy khaùc thoâng qua moät router (boä daãn ñöôøng) ñeán ñòa chæ ñích vaø chuyeån message ñi (keát noái ñoù coù theå laø giao thöùc TCP hoaëc UUCP). Neáu thaønh coâng, moät giao thöùc chuyeån vaän goïi laø SMTP ñöôïc söû duïng. Moät MTA phaûi coù khaû naêng xöû lyù caùc vaán ñeàâ veà chuyeån phaùt mail, chaúng haïn nhö maùy ñích khoâng saün saøng ñeå söû duïng hoaëc user khoâng toàn taïi. Trong tröôøng hôïp ñoù, mail ñöôïc traû veà ngöôøi göûi keøm theo moät thoâng baùo loãi. Moät heä thoáng email phaûi coù khaû naêng söû duïng caùc ñòa chæ cuûa ngöôøi göûi vaø ngöôøi nhaän theo nhieàu ñònh daïng khaùc nhau. Thoâng thöôøng thì söû duïng ñòa chæ ñònh daïng kieåu chaám than cuûa UUCP, ví duï nhö: merlin!brutus!tpci!com!tpaker (coù nghóa laø chuyeån mail cho merlin, sau ñoù laø brutus, vaø sau ñoù laø tpci.com ñeán ngöôøi söû duïng tparker) hoaëc teân mieàn, chaúng haïn nhö tparker@tpci.com. Kieåu UUCP thì chæ ra ñöôøng daãn ñaày ñuû ñeán maùy ñích coøn teân mieàn söû duïng ñòa chæ quyeát ñònh heä thoáng seõ laøm vieäc maø khoâng caàn ñöôøng daãn. Caùc kieåu ñòa chæ khaùc cuõng ñöôïc söû duïng, chaúng haïn nhö DECnet vôùi ñòa chæ kieåu % nhöng UUCP vaø caùc teân mieàn thì ñöôïc söû duïng treân haàu heát caùc heä thoáng. Boä daãn ñöôøng (Router) ñeå ñöa message mail ñeán ñích cuõng laø moät khía caïnh quan troïng cuûa phaàn meàm MTA vaø caùc phaàn meàm mail khaùc phuï thuoäc vaøo UUCP (trong tröôøng hôïp ñöôøng daãn ñaày ñuû ñöôïc chæ ñònh) hoaëc teân mieàn (trong tröôøng hôïp router ñöôïc ñöa ra) ñòa chæ söû duïng. Ñoái vôùi caùch ñaùnh ñòa chæ döïa treân giao thöùc TCP (thöôøng söû duïng caùc teân mieàn), chöùc naêng maëc ñònh cho moät MTA laø phaùt message ñeán maùy ñích döïa vaøo ñòa chæ IP vaø khoâng caàn ñeán router, ñöa ñeán phaàn meàm IP trong caùc ñieàu khieån TCP/IP. Ñeå ñôn giaûn vieäc chuyeån phaùt mail trong caùc maïng lôùn hoaëc caùc heä thoáng, nôi maø moät maùy ñôn leû ñöôïc ñoùng vai troø nhö boä maët cuûa Internet, moät maïng cuïc boä coù theå ñöa ra moät baûng ghi MX (Mail Exchange) maø noù ñöôïc hieåu bôûi heä thoáng teân mieàn (DNS) vaø moät chæ thò (hoaëc leänh) ñeán router ñoái vôùi taát caû caùc mail cuûa teân mieàn ñoù ñeán moät maùy ñôn. Baûn ghi MX cho pheùp caùc maùy khoâng keát noái ñeán Internet taát caû thôøi gian ñeå coù mail nhaän ñöôïc töø moät maùy chuû, vôùi UUCP hay laø TCP, sau ñoù thænh thoaûng môùi keát noái moät laàn. Ví duï sau ñaây laø kieåu cuûa moät baûng ghi MX: merlin.tpci.com IN MX 3 bigserver.tpci.com Doøng treân noùi veà moät heä thoáng teân mieàn maø moät mail baát kyø cuûa merlin.tpci.com coù theå göûi ñeán heä thoáng bigserver.com. Coång vaøo INTERNET nhaän bieát kieåu baûng ghi taøi nguyeân coù lieân quan (raát quan troïng ñoái vôùi TCP/IP) vaø MX cho thaáy laø baûng ghi naøy laø moät baûng ghi MX. Soá 3 trong ví duï treân laø moät con soá öu tieân. Trong maïng coù theå coù nhieàu mail server, moãi caùi ñeàu coù moät con soá öu tieân. Caùc soá möùc thaáp ñöôïc söû duïng bôûi phaàn meàm chuyeån vaän tröôùc vaø chæ chuyeån leán caùc soá möùc cao hôn khi caùc soá möùc thaáp hôn khoâng ñöôïc maùy traû lôøi tín hieäu. Caáu truùc moät thö ñieän töû treân Linux: Ñeå hieåu caùch moät heä thoáng mail hoaït ñoäng nhö theá naøo, caàn phaûi bieát caáu truùc moät message mail thì phaûi nhö theá naøo? Moät message mail chöùa moät ñoaïn vaên baûn (goïi laø phaàn body) vaø moät phaàn cuûa thoâng tin ôû choã baét ñaàu moät message chöùa caùc thoâng tin veà ngöôøi göûi, nôi noù ñöôïc taïo ra… ñöôïc goïi laø phaàn header. Thoâng thöôøng phaàn header vaø body cuûa message ñöôïc caùch baèng moät doøng troáng. Coù nhieàu message cuõng chöùa moät phaàn döõ lieäu taïi ñoaïn cuoái cuûa message goïi laø taùi buùt.Taùi buùt laø moät bít döõ lieäu ASCII ñöôïc vieát bôûi ngöôøi göûi vaø ñöôïc bao goàm trong baát moät message baát kyø khaùc. Noù thöông ñöa ra caùc thoâng tin veà ngöôøi göûi vaø coù theå chöùa ñöùng caùc lôøi noùi ngaén goïn. Moät header bao goàm 2 phaàn: Phaàn ñaàu tieân chöùa caùc thoâng tin veà ngöôøi göûi ngöôøi nhaän vaø caùc ñòa chæ cuûa hoï. Phaàn naøy thöôøng ñöôïc goïi laø phaàn phong bì. Phaàn thöù hai chöùa caùc thoâng tin ñeå ñieàu khieån message mail, chöùa phaàn tieâu ñeà message vaø chuyeån vaän söû duïng ñeå göûi message, dach saùch caùc ngöôøi nhaän keøm khaùc, ngaøy giôø … Moãi header cuûa moät message mail chuùa moät soá caùc doøng caùch bôû caùc kyù töï doøng môùi. Moãi doøng goàm moät teân tröôøng theo sau bôûi moät daáu : vaø noäi dung cuûa tröôøng ñoù. Sau ñaây laø moät ví duï cuûa moät header: From brutus!bignet.com Thu Sep 21 17:40:32 1995 Received: from bignet.com by tpci.tpci.com id aa00184; 21 Sep 95 17:39 EDT Received: from mailserv.biggernet.com ([147.77.1.1]) by bignet.com with SMTP id ; Thu, 21 Sep 1995 20:48:04 -0400 Received: by biggernet.com (4.1/SMI-4.1) id AA00266; Thu, 21 Sep 95 17:39:03 PDT Date: Thu, 21 Sep 1995 20:39:03 -0400 From: Yvonne Message-Id: To: tparker@tpci.com Subject: Important stuff Cc: prudie@bignet.com Coù hai tröôøng From: Moät chæ ra maùy ñaõ chuyeån mail ñeán heä thoáng cuûa ngöôøi söû duïng vaø moät laø ñòa chæ email cuûa ngöôøi göûi. Tröôøng naøy coù theå coù nhieàu kieåu ñònh daïng khaùc nhau, bao goàm caû ñòa chæ kieåu UUCP vaø caùc ñònh daïng kieåu teân mieàn ñaày ñuû. Moãi maùy maø message göûi thoâng qua doøng ñòa chæ ñeán tröôøng Received chæ ra nôi maø message ñaõ nhaän töø ñaâu vaø nôi maø noù ñöôïc nhaän. Thoâng tin naøy cho pheùp ngöôøi söû duïng laàn theo message tìm ñeán nôi xuaát phaùt cuûa noù. Tröôøng Date hieån thò ngaøy thaùng maø message ñöôïc göûi. Tröôøng Message-ID lieät keâ moät soá nhaän bieát duy nhaát cho message. Tröôøng To hieån thò teân ngöôøi nhaän. Ngöôøi göûi cung caáp thoâng tin trong tröôøng Subject ñeå moät taû veà message. Tröôøng CC: Chæ ngöôøi nhaän ñöôïc phieân baûn copy cuûa mail Phuï thuoäc vaøo heä thoáng maø ban söû duïng, coù khi phaàn header coøn bao goàm caû caùc tröôøng sau: Tröôøng Repley – To: Chöùa caùc thoâng tin ñeå ngöôøi nhaän coù theå phuùc ñaùp thö trôû laïi (thöôøng cuõng laø ñòa chæ ngöôøi göûi) Tröôøng Oganization cung caáp teân coâng ty maø maùy cuûa coâng ty ñoù ñang söû duïng. Tröôøng tuøy choïn naøy thöôøng ñeå troáng hoaëc thieát laäp rieâng bieät cho caùc maùy cuûa caùc taäp ñoaøn lôùn. I. CAØI ÑAËT VAØ CAÁU HÌNH CHO SENDMAIL Heä thoáng Sendmail ñöôïc caáu hình chuû yeáu thoâng qua moät file naøm ôû /etc/senmail.cf (maëc duø moät vaøi heä thoáng ñaët noù ôû /usr/lib/sendmail.cf hoaëc ôû nôi khaùc). Ngoân ngöõ söû duïng trong file caáu hình senmail.cf thì hoaøn toaøn khaùc so vôùi caùc file caáu hình khaùc vaø raát phöùc taïp. File Sendmail.cf ñieàu khieån caùc chöùc naêng maëc ñònh cuûa heä thoáng göûi mail. Coù nhieàu file khaùc cuõng coù lieân qua trong quaù trình caáu hình, ñoù laø: Decnetxtable: coù nhieäm vuï ñoåi ñòa chæ thoâng thöôøng sang ñòa chæ DEC. Genericfrom: Coù nhieäm vuï ñoåi ñòa chæ beân trong sang ñòa chæ thoâng thöôøng. Mailtertable: Ñònh nghóa caùc xöû lyù ñaëc bieät cho caùc maùy chuû töø xa vaø caùc teân mieàn. Pathtable: Ñònh nghóa caùc ñöôøng daãn UUCP ñeán caùc maùy töø xa vaø caùc teân mieàn. Uucprelays: Cho pheùp giaùn tieáp ñeán caùc maùy chuû töø xa. Xaliases: Ñoåi ñòa chæ thoâng thöôøng thaønh ñòa chæ beân trong. Sendmail + heä thoáng IDA söû duïng moät boä tieàn xöû lyù chaúng haïn nhö m4 hoaëc dbm ñeå taïo ra caùc file caáu hình sau khi ngöôøi söû duïng chæ ñònh caùc giaù trò cho caùc thoâng soá. Sau khi söû duïng boä tieàn xöû lyù, heä thoáng söû duïng moät boä taïo file ñeå taïo ra caùc file caáu hình cuoái cuøng. 1. File sendmail.cf Khi söû duïng Sendmail + IDA, file sendmail.cf khoâng ñöôïc thieát laäp caùc giaù trò phuø hôïp vôùi heä thoáng vaø coâng vieäc cuûa ngöôøi söû duïng. Thay vì quaù trình caáu hình xöû lyù caùc thay ñoåi sinh ra, moät quaù trình caáu hình bình thöôøng ñöôïc ñieàu khieån bôûi moät file goïi laø sendmail.m4, noù cung caáp caùc thoâng tin cô baûn veà teân heä thoáng, ñöôøng daãn söû duïng treân heä thoáng cuûa ngöôøi söû duïng vaø mailer maëc ñònh ñang söû duïng. Maëc duø vieäc thay ñoåi file sendmail.m4 coù theå maát nhieàu thôøi gian nhöng noù caàn thieát ñoái vôùi caùc thoâng tin cô baûn cho vieäc caøi ñaët Linux söû duïng uucp vaø SMTOP cho vieäc chuyeån vaän mail. Phaàn quan troïng nhaát trong file sendmail.m4 laø phaàn khai baùo caùc thö muïc. Phaàn naøy thöôøng baét ñaàu vôùi moät doøng khai baùo LIBDIR: dnl #define(LIBDIR, /usr/local/lib/mail) Thö muïc LIBDIR laø nôi Sendmail + heä thoáng IDA tìm kieám caùc file ñònh daïng vaø caùc baûng router, thoâng thöôøng doøng naøy ñöôïc boû qua nhöng ñöôøng daãn maëc ñònh thì naèm ôû vò trí thoâng thöôøng cho taát caû heä thoáng Linux mail. Neáu ñöôøng daãn hieån thò trong Sendmail laø chính xaùc, khoâng caàn ñieàu chæ laïi file naøy. Ñöôøng daãn naøy thöôøng ghi maõ tröïc tieáp vaøo trong boä nhò phaân Sendmail vaø khoâng caàn thieát ñeå ghi ñeø leân bôûi file sendmail.m4 (hoaëc sendmail.cf). Neáu caàn phaûi thay ñoåi ñöôøng daãn naøy, phaûi gôõ boû giaù trò dnl ôû doøng baét ñaàu, theâm vaøo ñöôøng daãn ñuùng vaø sau ñoù löu laïi trong file sendmail.cf Mailer cuïc boä ñöôïc söû duïng bôûi Sendmail ñöôïc khai baùo taïi moät doøng coù giaù trò LOCAL_MAILER_DEF define(LOCAL_MAILER_DEF, mailers.linux)dnl Doøng naøy laø caàn thieát bôûi vì Sendmail khoâng ñieàu khieån caùc mail göûi ñi. Moät chöông trình khaùc seõ ñaûm nhaän vieäc naøy thay cho Sendmail. Maëc dònh, giaù trò duøng cho mailer cuïc boä ñöôïc chöùa trong moät file goïi laø mailers.linux. File naøy ñöôïc chuyeån ñeán muïc nhaäp LOCAL_MAILER_DEF trong file sendmail.m4, ñieàu naøy coù nghóa laø ngöôøi söû duïng caàn phaûi kieåm tra file mailer.linux trong thö muïc con töông töï (thöôøng laø /usr/local/lib/mailer.linux) ñeå chaéc chaén chöông trình chuyeån (hoaëc moät chöông trình baát kyø ñaõ söû duïng) ñaõ ñöôïc nhaäp caùc thuoäc tính. Noäi dung moät file mailer.linux seõ bao goàm nhö sau: # mailers.linux Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10,R=25/10, A=deliver $u Mprog, P=/bin/sh, F=lsDFMeuP, S=10, A=sh -c $u Moät agent phaùt thö ñi cuõng ñöôïc chæ ñònh trong file sendmail.mc, file naøy ñöôïc duøng ñeå xaây döïng file sendmail.cf. Neáu agent phaùt khoâng chuyeån thö ñi, phaûi kieåm tra file sendmail.mc ñeå chaéc raèng agent chuyeån mail ñaõ ñöôïc thieát laäp caùc thuoäc tính. Sendmail.mc laø moät file quan troïng vaø noù phaûi ñöôïc ñoïc khi sendmail.m4 ñöôïc xöû lyù. Thöôøng coù moät doøng khai baùo trong file sendmail.m4 ñeå chaéc raèng vieäc naøy phaûi xaûy ra. Doøng naøy thöôøng naèm ôû phaàn ñaàu file sendmail.m4 include(Sendmail.mc)dnl Ngöôøi söû duïng caàn phaûi chæ ñònh moät vaøi muïc nhaäp trong bieán PSEUDOMAINS. Bieán naøy ñöôïc duøng ñeå ñieàu khieån heä thoáng maø noù khoâng theå môû roäng vaøo trong caùc teân mieàn moät caùch chính xaùc, thoâng thöôøng laø heä thoáng UUCP. Caùc muïc nhaäp trong tröôøng PSEUDOMAINS chæ ra raèng Sendmail + IDA khoâng söû duïng DNS cho nhöõng maïng ñoù. Bieán PSEUDOMAINS ñöôïc khai baùo nhö sau: define(PSEUDODOMAINS, BITNET UUCP)dnl Coù theå söû duïng bieán PSEUDONYMS ñeå laøm aån teân maùy cuûa ngöôøi söû duïng. Ví duï, moät mail nhaän treân maïng khaùc seõ chæ thaáy ñòa chæ tpci.com maø khoâng quan taâm ñeán vieäc duø laø ñöôïc göûi töø merlin.tpci.com hay chatton.tpci.com. Khi söû duïng bieán PSEUDONYMS, Sendmail chaáp nhaän mail töø taát caû caùc maùy ñöôïc khai baùo trong tröôøng PSEUDONYMS. Tröôøng PSEUDONYMS ñöôïc hieån thò nhö sau: define(PSEUDONYMS, tpci.com)dnl Muïc vaøo nhaøy cho pheùp moät maùy tính baát kyø cuûa maïng tpci.com göûi mail thoâng qua Sendmail. Ñeå ñònh nghóa teân maùy, söû duïng bieán DEFAULT_HOST. Bieán naøy thöôøng ñöôïc gaùn giaù trò teân mail server cuûa ngöôøi söû duïng. Ngöôøi söû duïng coù theå khai baùo nhö sau ñeå thieát laäp teân mail server maëc ñònh: define(DEFAULT_HOST, merlin.tpci.com)dnl Neáu khoâng gaùn moät teân ñuùng cho bieán DEFAULT_HOST seõ khoâng coù mail ñöôïc traû veà chính xaùc ñeán heä thoáng ñang söû duïng. Neáu heä thoáng khoâng phaûi laø moät coång noái mail leân Internet (hoaëc caùc maïng khaùc ñöôïc truy caäp töø maïng LAN) ngöôøi söû duïng coù theå thieát laäp cho heä thoáng Linux cho pheùp göûi mail leân moät maùy khaùc ñeå xöû lyù baèng caùch thieát laäp caùc bieán RELAY_HOST vaø RELAY_MAILER trong file sendmail.m4. Caùc bieán naøy seõ ñaët teân cuûa mail server maø taát caû caùc mail seõ ñöôïc chuyeån ñeán. Ví duï: Ñeå thieát laäp cho heä thoáng cuïc boä daãn höôùng taát caû caùc mail beân ngoaøi ñeán moät maùy teân laø wizard, phaûi khai baùo 2 doøng nhö sau: define(RELAY_HOST, wizard)dnl define(RELAY_MAILER, UUCP=A)dnl Doøng thöù hai chæ ñònh mailer söû duïng ñeå göûi message ñeán maùy RELAY_HOST. 2. Ñieàu chænh UUCP: Neáu phaûi ñang laøm vieäc vôùi moät heä thoáng mail treân neàn taûng UUCP, ngöôøi söû duïng phaûi ñieàu chænh moät vaøi muïc nhaäp trong file sendmail.m4. Söï ñieàu chænh naøy laø caàn thieát bôûi vì moät heä thoáng mail UUCP thöôøng ñaùnh ñòa chæ khaùc so vôùi caùc heä thoáng treân neàn taûng DNS. Caùc khai baùo cuûa UUCP trong file sendmail.m4 nhö sau: define(UUCPNAME, tpci)dnl define(UUCPNODES, |uuname|sort|uniq)dnl define(BANGIMPLIESUUCP)dnl define(BANGONLYUUCP)dnl Doøng ñaàu tieân khai baùo UUCPNAME duøng ñeå chæ ñònh teân cuûa heä thoáng cuïc boä trong giôùi haïn UUCP. Teân naøy coù theå khaùc hôn teân söû duïng trong DNS, maëc duø thoâng thöôøng thì caùc teân ñoù troâng cuõng khoâng khaùc nhau maáy. Bieán UUCPNODES khai baùo leänh söû duïng ñeå cung caáp moät danh saùch teân caùc host maø heä thoáng keát noái tôùi thoâng qua UUCP. Bieán BANGIMPLIESUUCP ñeå cho Sendmail bieát laø baát kyø moät ñòa chæ naøo chöùa daáu ! ñeàu laø ñòa chæ kieåu UUCP. Bieán BANGONLYUUCP thì laøm ñieàu ngöôïc laïi. Caû 2 bieán naøy thöôøng ñöôïc khai baùo bôûi vì moät vaøi heä thoáng DNS söû duïng phöông phaùp ñaùnh ñòa chæ kieåu daáu chaám than. 3. Caáu hình caùc baûng ñònh vò Coù nhieàu doøng trong file sendmail.m4 duøng ñeå khai baùo caùc baûng caáu hình. Caùc baûng caáu hình naøy naèm döôùi thö muïc khai baùo bôûi bieán LIBDIR. Phaàn naøy goàm caùc doøng sau: define(ALIASES, LIBDIR/aliases)dnl define(DOMAINTABLE, LIBDIR/domaintable)dnl Coù khoaûng 7 file caáu ñöôïc chæ ñònh trong toaøn boä. Ngöôøi söû duïng coù theå thay ñoåi baát kyø giaù trò naøo neáu muoán nhöng phaûi chaéc chaén raèng vieäc di chuyeån noù thò vò trí ñöôïc chæ ñònh. Ñeå baûo ñaûm, toát nhaát neân gôõ boû caùc file khoûi caùc ví trí maëc ñònh cuûa noù. 4. Caáu hình mailertable Baûng mailertable khai baùo caùc ñieàu khieån ñaëc bieät cho cac host hoaëc caùc teân mieàn. Trong haàu heát caùc tröôøng hôïp, mailertable chæ ñònh caùc teân mieàn chaéc chaén hoaëc caùc host ñöôïc truy caäp vaø caùc giao thöùc naøo söû duïng cho caùc teân mieàn vaø caùc host ñoù. Ngöôøi söû duïng khoâng phaûi ñieàu chænh file naøy neáu heä thoáng ñang söû duïng UUCP nhöng phaûi kieåm tra noäi dung cuûa noù neáu laø ñang söû duïng SMTP hoaëc DNS. File mailertable ñöôïc doïc töø doøng ñaàu tieân xuoáng vaø Sendmail xöû lyù mail döïa treân moãi doøng trong file naøy. Trong moãi tröôøng hôïp, nôi maø haàu heát caùc quy taéc chæ ñònh naèm ôû ñaàu file, theo sau bôûi caùc quy taéc thoâng thöôøng khaùc. Caùc quy taéc chæ ra phöông thöùc cuûa keát noái ñaàu tieân vaø sau ñoù lieät keâ caùc heä thoáng töø xa hoaëc teân mieàn: mailer delimiter relayname remote Trong khai baùo treân, mailer laø giao thöùc chuyeån vaän ñöôïc söû duïng, delimiter laø kyù töï ñaëc bieät, relayname laø teân cuûa heä thoáng chuyeån mail ñeán vaø remote laø host töø xa hoaëc teân mieàn. Mailer coù theå laø caùc giaù trò: TCP-A: TCP vôùi ñòa chæ kieåu Internet. TCP-U: TCP vôùi ñòa chæ kieåu UUCP. UUCP-A: UUCP vôùi ñòa chæ kieåu Internet. Delimiter coù moät yù nghóa ñaëc bieät vaø phaûi laø moät trong cac kyù töï sau: ! Gôõ boû teân host töø phaàn ñòa chæ tröôùc khi göûi ñi. , Khoâng ñieàu chænh ñòa chæ cho taát caû. : Gôõ boû teân host chæ khi caùc host trung gian ñöôïc chæ ñònh. Coù theå xaây döïng caùc quy taéc mailertable moät caùc deã daøng khi chuyeån mail ñeán moät mail server töø xa. Ví duï, ñeå baét buoäc Sendmail söû duïng UUCP thoâng qua moät mail server töø xa goïi laø wizard keát noái ñeá moät heä thoáng töø xa roy.sailing.org, theâm moät quy taéc nhö sau vaøo file mailertable: UUCP-A,wizard roy.sailing.org 5. File caáu hình uucprelays File uucprelays duøng ñeå boû qua ñöôøng daãn UUCP ñeán moät site töø xa khi moät ñöôøng daân toát hôn ñaõ toàn taïi. Ví duï, neáu ngöôøi söû duïng thöôøng söû duïng ñöôøng daãn wizard!bignet!merlin!tpci vaø coù theå taïo ra moät lieân keát chæ ñöôøng ñeán tpci, neân söû duïng file uucprelays ñeå ñoåi laïi ñöôøng daãn ñòa chæ mail. 6. File caáu hình uucpxtalbe File uucpxtalbe ñöôïc söû duïng khi moät ñòa chæ kieåu UUCP ñöôïc söû duïng trong vieäc vaän chuyeån mail. File naøy cung caáp caùc chæ daãn cho coâng vieäc chuyeån moät ñòa chæ kieåu DNS sang UUCP. Neáu ngöôøi söû duïng ñang söû duïng moät mail server khaùc hôn mail server hieän taïi hoaëc muoán söû duïng UUCP ñeå keát noái ñeán moät maùy cuï theå vì ñoä tin caây, file naøy thöïc söï caàn thieát. File naøy chöùa caùc muïc vaøo lieät keâ teân kieåu UUCP theo sau bôûi teân mieàn: Chatton chatton.com Muïc vaøo naøy chæ ra raèng Sendmail maø moät mail chatton.com baát kyø naøo ñoù ñeàu phaûøi ñöôïc caäp nhaäp qua UUCP ñeán chatton ( ñaùnh ñòa chæ kieåu UUCP). Muïc vaøo naøy baét buoäc caùc ñòa chæ mail ñeán yvone@chatton.com phaûi ñöôïc vieát laïi gioáng nhö chatton!yvone, moät ñòa chæ maø UUCP coù theå söû duïng. 7. Xaây döïng file sendmail.cf töø file sendmail.m4 Baây giôø, ñaõ caáu hình xong file sendmail.m4 vaø caùc file coù lieân qua cuûa noù, coù theå söû duïng boä xöû lyù m4 ñeå taïo ra file sendmail.cf. Moät khi file sendmail.m4 ñaõ saün saøng ñeå laøm vieäc, baét nguoàn töø doøng leänh: Make sendmail.cf Moät khi file ñaõ ñöôïc taïo, cheùp noù sang thö muïc /etc vaø khôûi ñoäng Sendmail vôùi doøng leänh: /usr/lib/sendmail –bd –q1h hoaëc khôûi ñoäng laïi maùy tính. II. SÖÛ DUÏNG SENDMAIL PHIEÂN BAÛN 8.0 Treân ñóa CD-ROM Linux luoân keøm theo chöông trình Sendmail 8.0 vaø coù theå saün saøng caøi ñaët ñeå söû duïng. Coù moät thay ñoåi nhoû so vôùi caùc phieân baûn tröôùc laø Sendmail 8.0 goàm coù 4 phaàn khaùc nhau ñeå choïn löïa. - uucp-old: (cuõng gioáng nhö uucp) : Söû duïng phieân baûn naøy neáu caàn khaû naêng töông thích vôùi caùc heä thoáng UUCP kieåu cuõ. - uucp-new: (phieân baûn môùi nhaát gaàn ñaây laø suucp) cuõng gioáng nhö Sendmail chæ tröø vieäc noù coù theâm leänh rmail ñeå göûi ñeán nhieàu ngöôøi nhaän ñoàng thôøi. Phieân baûn naøy khoâng coù caûi tieán gì maáy so vôùi uucp-old. - uucp-dom: Cho pheùp söû duïng caùc ñòa chæ kieåu teân mieàn. Phieân baûn naøy khoâng coù khaû naêng töông thích vôùi moät soá heä thoáng khaùc maø ngöôøi söû duïng keát noái ñeán. - uucp-uudom: Laø moät söï keát hôïp giöõa uucp-new vaø uucp-dom cung caáp caùc neùt ñaëc tröng nhaát cuûa caû hai. Noù cho pheùp söû duïng ñòa chæ kieåu UUCP vaø kieåu teân mieàn. Thieát laäp caùc thö muïc caáu hình cho Sendmail Caùc file caáu hình Sendmail ngaøy caøng trôû neân nhoû hôn ñeå laøm cho coâng vieäc cuûa ngöôøi quaûn trò ñöôïc deã daøng hôn. Heä thoáng Sendmail coù caùc thö muïc chöùa caùc file caàn thieát cho coâng vieäc caáu hình, ñoù laø: - cf: Thö muïc naøy cung caáp cho ngöôøi söû duïng caùc thoâng tin veà caùc host ñöôïc söû duïng bôûi Sendmail. - hack: Thö muïc naøy laø moät danh saùch cuûa caùc hack ñöôïc söû duïng bôûi caùc macro m4 ñeå cung caáp caùc chæ ñònh môû roäng. Caùc thoâng tin maø thö muïc naøy hoã trôï ñöôïc cung caáp moät caùch hôïp lyù trong caùc file caáu hình chính. - m4: Thö muïc naøy cung caáp caùc file chöùa caùc thoâng tin thích hôïp cho taát caû caùc file caáu hình. - mailer: Thö muïc naøy chöùa caùc file ñònh nghóa caùc mailer ñöôïc söû duïng bôûi m4. Caùc file naøy thöôøng cung caáp caùc thoâng tin cho maïng cuïc boä, UUCP, USENET, phaàn meàm FAX … - site config: Thö muïc naøy chöùa caùc thoâng tin veà site cuïc boä. Moät soá caùc site raát quan troïng ñeå caøi ñaët Sendmail vaø xöû lyù caáu hình. III. SÖÛ DUÏNG SMAIL Heä thoáng Smail cuõng gioáng nhö heä thoáng Sendmail trong haàu heát caùc chöùc naêng, maëc duø quaù trình caáu hình caáu hình thì khaùc. Trong nhieàu tröôøng hôïp, Smail deã daøng laøm vieäc hôn Sendmail vaø noù coù theå laø moät löïa choïn toát cho caùc heä thoáng nhoû vaø vöøa. Smail ñieàu khieån vieäc chuyeån nhaän mail nhö theá naøo? Heä thoáng Smail ñöôïc quaûn lyù bôûi moät daemon, ñöôïc khôûi taïo khi heä thoáng chaïy ôû cheá ñoä nhieàu ngöôøi söû duïng ñoàng thôøi. Sau ñoù Smail chôø cho ñeán khi coù keát noái (thöôøng laø TCP hoaëc UUCP) vaø seõ xöû lyù taát caû caùc mail vöøa môùi ñöôïc nhaän. Bôûi vì Smail chaïy nhö moät daemon, ñieàu naøy cho pheùp noù xöû lyù vaø phaân phaùt nhanh caùc mail môùi nhaäp maø khoâng caàn khôûi ñoäng moät chöông trình mail. Heä thoáng Smail ñieàu khieån caùc mail göûi ñi baèng caùch söû duïng caùc keát noái ñeán mailer cuûa ngöôøi söû duïng. Ví duï: Neáu message ñöôïc göûi töø moät mailer agent chaúng haïn nhö ELM hoaëc mail, caùc chöông trình duøng ñeå göûi mail vaø caùc teân ngöôøi nhaän ñeán rmail, moät chöông trình chuyeån phaùt mail. Coù moät vaøi mailer agent göûi mail ñeán chöông trình Sendmail thay vì rmail. Nhö vaäy, caû caùc mail nhaän ñöôïc vaø caùc mail göûi ñi ñöôïc ñieàu khieån baèng caùc lieân keát giöõa Smail, rmail vaø Sendmail. Chöông trình xöû lyù cuûa Smail ñöôïc chia thaønh 3 phaàn rieâng bieät, bao goàm: Boä daãn ñöôøng (router), Boä chuyeån höôùng (director) vaø chuyeån vaän (transport). - Boä daãn ñöôøng ñieàu khieån quaù trình xöû lyù caùc ñòa chæ vaø caùch maø message ñöôïc göûi ñi giöõa caùc maùy - Boä chuyeån höôùng ñieàu khieån quaù trình göûi chuyeån tieáp giöõa caùc maùy vaø giaûi quyeát caùc bí danh ñöôïc söû duïng trong message. - Boä chuyeån vaän ñieàu khieån caùc chuyeån vaän hieän taïi cuûa message. Haàu heát caùc heä thoáng Linux ñeàu coù chöông trình Smail naèm trong thö muïc /usr/local/bin maëc duø cuõng coù khi chuùng naèm ôû thö muïc khaùc vì theá caàn phaûi bieát chính xaùc ñöôøng daãn ñeán thö muïc Smail ñeå caáu hình heä thoáng moät caùch ñuùng ñaén. Coù theå ñònh vò ñöôøng daãn cuûa noù vôùi doøng leänh: Find /-name Smail –print 1. Caøi ñaët Smail Heä thoáng Smail ñoøi hoûi nhieàu lieân keát ñeå Smail coù theå thi haønh ñuùng. Coù 2 lieân keát quan troïng haàu heát laø ñeàu ñöa ñeán file /usr/sbin/rmail vaø /usr/lib/sendmail. Caùc lieân keát naøy thöïc söï caàn thieát bôûi vì haàu heát nhöõng chöông trình göûi mail cuûa ngöôøi söû duïng ñeàu göûi mail ñeán hoaëc laø rmail hoaëc laø Sendmail (phuï thuoäc vaøo chöông trình mail ñang söû duïng) vaø caùc mail naøy coøn ñöôïc göûi theâm moät laàn nöõa ñeán Smail. Caùc lieân keát cho pheùp quaù trình chuyeån höôùng naøy xaûy ra trong suoát ñoái vôùi ngöôøi söû duïng vaø caùc öùng duïng mail. Phaûi kieåm tra caùc file rmail vaø Sendmail coù ñöôïc lieân keát ñeán Smail hay chöa, neáu chöa coù thì phaûi thieát laäp caùc lieân keát. Caùc lieân keát coù saün thöôøng chæ ñöôïc thieát laäp töôïng tröng vaø ñöôïc hieån thò trong thö muïc lieät keâ caùc muïc nhaäp nhö sau: lrwxrwxrwx 1 root root 6 Sep 16:35 file1 -> file2 Kyù töï -> chæ ra moät bieåu töôïng lieân keát toàn taïi. Haõy kieåm tra treân caû rmail vaø Sendmail , neáu caùc bieåu töôïng lieân keát chöa coù, taïo ra chuùng baèng doøng leänh: ln -s /usr/local/bin/smail /usr/bin/rmail ln -s /usr/local/bin/smail /usr/lib/sendmail Caùc ñöôøng daãn caàn phaûi ñöôïc thay ñoåi cho phuø hôïp vôùi ñöôøng daãn cuûa Smail, Sendmail vaø rmail treân maùy. Moät khi caùc lieân keát ñaõ ñöôïc taïo, kieåm tra söï toàn taïi cuûa chuùng baèng caùch hieån thò caùc thö muïc vaø tìm caùc kyù hieäu bieåu töôïng lieân keát. Neáu Smail ñaõ ñöôïc caøi ñaët vaøo hoaëc sau ñoù gôõ boû khoûi heä thoâng qua moät keânh SMTP thì cuõng caàn phaûi thieát laäp moät lieân keát giöõa chöông trình Smail vaø heä thoáng SMTP baèng doøng leänh: ln -s /usr/local/bin/smail /usr/sbin/smtpd Tieáp theo, dòch vuï SMTP phaûi ñöôïc cho pheùp thoâng qua caùc file caáu hình TCP. Moät file /etc/service phaûi ñöôïc thieát laäp ñeå cho pheùp caùc keát noái SMTP thoâng qua doøng leänh: smtp 25/tcp # Simple Mail Transfer Protocol Phaûi kieåm tra noäi dung cuûa doøng naøy ñeå khoâng xaûy ra tình traïng keát noái ra ngoaøi. Doøng leänh naøy cho pheùp lieân keát SMTP ñöôïc thieát laäp gioáng nhö moät coång TCP soá 25. Neáu löïa choïn caøi ñaët maëc ñònh Smail nhö moät daemon (töï ñoäng khôûi taïo khi khôûi ñoäng heä thoáng), phaûi chaéc chaén raèng Smail daemon ñaõ ñöôïc khôûi taïo trong file rc (chaúng haïn nhö rc.inet2). Caâu leänh thöôøng duøng ñoái vôùi Smail daemon : /usr/local/bin/smail -bd -q15m Muïc choïn –bd traû veä quaù trình hoaït ñoäng daemon cuûa Smail vaø –q15m baét buoäc Smail xöû lyù caùc message cöù sau 15 phuùt. Neáu muoán thieát laäp cho quaù trình phaân phaùt mail xaûy ra thöôøng xuyeân hôn nöõa hay thay ñoåi giaù trò naøy. Neáu phaûi löïa choïn caøi ñaët Smail khoâng chaïy ôû cheá ñoä gioáng nhö moät daemon vaø muoán noù xuaát hieän baèng caùch inetd moãi khi coù mail ñeán, ñieàu naøy phaûi ñöôïc chæ ra trong file rc. Bôûi vì khoâng theå vöøa chaïy Smail trong caû hai cheá ñoäcuøng moät luùc. Tieáp ñoù, ñieàu chænh caùc muïc nhaäp trong file /etc/inetd.conf gioáng nhö sau: smtp stream tcp nowait root /usr/sbin/smtpd smtpd Bieåu töôïng lieân keát giöõa SMTPD vaø chöông trình Smail phaûi ñöôïc chæ ra trong doøng leänh naøy ñeå phuø hôïp vôùi chöùc naêng hoaït ñoäng. Söï thay ñoåi caùc thieát laäp trong caùc file caáu hình laø caàn thieát cho Smail, noù phuï thuoäc vaøo heä thoáng keát noái naøo ñang ñöôïc söû duïng ñoái vôùi mail hieän taïi. ÔÛ nhöõng nôi khaùc vieäc caáu hình coøn thay ñoåi neáu ñang söû duïng heä thoáng UUCP hoaëc moät keát noái TCP treân maïng. Coù theå choïn caû hai giaûi phaùp neáu cho pheùp mail ñöôïc phaân phaùt thoâng qua caû hai giao thöùc. 2. Caáu hình Smail cho UUCP Vieäc caáu hình heä thoáng Smail ñeå söû duïng vôùi caùc message mail UUCP göûi ñeán vaø göûi ñi raát ñôn giaûn. Chæ caàn phaûi ñieàu chænh file caáu hình maëc ñònh naèm ôû /usr/lib/smail/config baèng moät chöông trình soaïn thaûo ASCII baát kyø baèng caùch thay ñoåi giaù trò cuûa 4 bieán sau: Visible_domain : Caùc teân mieàn site cuûa ngöôøi söû duïng coù lieân quan. Visible_name: Teân mieàn ñaày ñuû cuûa site. UUCP_name: Teân UUCP cô sôû cuûa site. Smart_host: Teân cuûa host UUCP. 3. Thieát laäp caùc teân mieàn cuïc boä: Baét ñaàu baèng caùch thieát laäp teân mieàn cuûa maùy cuïc boä naèm trong file caáu hình config, nôi ñònh nghóa bieán visible_domain # Our domain name visible_domain = tpci; Bieán visible_domain thieát laäp caùc teân mieàn site cuûa ngöôøi söû duïng troû tôùi. Tröôøng naøy ñöôïc söû duïng bôûi Smail ñeå tìm ra neáu ngöôøi nhaän message laø moät user cuïc boä. Heä thoáng Smail laáy message vaø trích ra ñòa chæ cuûa ngöôøi nhaän, ñoái chieáu noù döïa vaøo teân maùy cuïc boä (töø doøng leänh hostname) vaø taát caû caùc giaù trò chæ ñònh ôû bieán visible_domain. Neáu coù moät söï so khôùp vôùi moät teân baát kyø trong soá ñoù, message daønh cho ngöôøi nhaän cuïc boä. Neáu khoâng khôùp, message ñöôïc chuyeån ra maïng beân ngoaøi. Neáu coù hôn moät giaù trò hôïp leä cho teân mieàn cuïc boä, caùc giaù trò ñöôïc caùch ra bôûi daáu hai chaám. Ví duï: visible_domain = tpci : tpci.com : tpci.uucp Neáu site cuûa ngöôøi söû duïng ñöôïc ñaêng kyù hôïp leä treân caùc baûng ñònh vò UUCP, theâm mieàn UUCP vaøo danh saùch caùc giaù trò hôïp leä. Tröôøng hôïp sau ñay laø khi ngöôøi söû duïng troû tôùi mieàn tpci (töø teân mieàn ñaày ñuû tpci.com) vaø UUCP: visible_domain = tpci : tpci.com : uucp Khi moät message ñöôïc göûi ra khoûi moät maùy cuïc boä, heä thoáng Smail noái theâm teân mieàn ñaày ñuû cuûa maùy cuïc boä nhö moät phaàn cuûa thoâng tin daãn ñöôøng. Teân ñaày ñuû cuûa maïng cuïc boä ñöôïc define trong file/ usr/ lib/ smail/ config maø dial vôùi bieán visible_domain. #Our domain name for outgoing mail visible_name = tpci.com. Giaù trò visible_domain phaûi laø moät söï keát hôïp cuûa teân host vaø moät cuûa caùc teân mieàn nhaän ñöôïc trong giaù trò visible_domain. Giaù trò visible_domain thöôøng laø moät teân mieàn ñaày ñuû cuûa ngöôøi söû duïng (neáu coù) hoaëc moät teân mieàn ñaõ toàn taïi trong caùc baûng daãn ñöôøng khaùc. 4. Caùc teân UUCP luaân phieân: File caáu hình config ñoâi khi chöùa moät muïc nhaäp cho moät bieán teân laø uucp_name. Bieán naøy thöôøng ñöôïc gaùn tuyø yù, khoâng baét buoäc vôùi ñieàu kieän laø caùc bieán visible_domain vaø visible_name ñöôïc nhaäp caùc giaù trò ñuùng. Bieán naøy ñöôïc duøng khi teân cuûa heä thoáng traû veà bôûi doøng leänh hostname khoâng phaûi laø teân ñöôïc ñaêng kyù trong baûng ñònh vò UUCP. Ñeå thieát laäp giaù trò cho bieán uucp_name, tìm (hoaëc taïo ra neáu chöa coù) bôûi doøng khai baùo sau: # uucp mapping name uucp_name = tpci.com Neáu teân cuûa ngöôøi söû duïng ñöôïc ñaêng kyù gioáng nhö ñaõ thieát laäp trong bieán visible_name thì coù theå ñôn giaûn chæ laëp laïi giaù trò trong bieán uucp_name maø vaãn khoâng maát ñi taùc duïng. Neáu teân site ñaõ thay ñoåi, nhaäp vaøo giaù trò thích hôïp ñeå thay theá. 5 Thieát laäp UUCP Smart Host: Moät vaøi heä thoáng söû duïng maùy khaùc beân ngoaøi nhö moät smart host ñeå ñieàu khieån quaù trình phaùt ñi caùc message ñeán vaø nhaän töø caùc maïng khaùc. Neáu ñang söû duïng moät smart host, ngöôøi söû duïng phaûi ñaët teân cho noù trong file caáu hình config ñeán bieán smart_host. # Smart host smart_host = merlin; Trong tröôøng hôïp treân, baát kyø mail naøo cho caùc maïng ngoaøi khaùc ñeàu ñöôïc chuyeån ñi bôûi Smail ñeán maùy merlin maø maùy naøy coù theå ñeå yù ñeán quaù trình daãn ñöôøng ra khoûi maïng. Baát kyø teân maùy naøo ñöôïc nhaän trong bieán smart_host ñeàu phaûi thuoäc phaïm vi hoaït ñoäng cuûa heä thoáng UUCP. 6. Thieát laäp kieåu phaùt chuyeån mail: Coù theå thieát laäp heä thoáng Smail ñeå xöû lyù mail göûi ñeán baèng nhieàu caùch khaùc nhau. Coù theå thieát laäp Smail chöùa caùc message göûi ñeán vaø göûi ñi trong moät haøng ñôïi vaø xöû lyù chuùng ngay sau ñoù hoaëc xöû lyù ngay töùc thì. Quaù trình naøy ñöôïc ñieàu khieån vôùi caùc bieán queue_only vaø delivery_mode. Bieán queue_only laø moät giaù trò kieåu Boolean, neáu ñöôïc thieát laäp seõ cho pheùp bieán delivery_mode coù theå thieát laäp 1 trong 3 giaù trò sau: Foreground: Xöû lyù caùc message göûi ñeán ngay töùc thì. Background: Message ñöôïc phaùt ñi bôûi moät quaù trình nhoû. Queue: Giöõ message laïi ñeå sau ñoù xöû lyù. Moät khi haøng ñôïi ñaõ ñöôïc pheùp, caùc message ñöôïc giöõ laïi trong moät haøng ñôïi Smail (thöôøng naèm ôû /var/spool/smail/message) cho ñeán khi haøng ñôïi ñöôïc xöû lyù. Quaù trình xöû lyù ñöôïc ñieàu khieån bôûi chöùc naêng –q treân doøng leänh Smail (neáu Smail ñöôïc chaïy nhö moät daemon) hoaëc baèng caùch ñöa ra doøng leänh runq töø moät file crontab (neáu Smail ñöôïc chaïy töø inetd), ñeå quaù trình laøm vieäc sau ñoù ñöôïc chính xaùc, runq cuõng phaûi ñöôïc lieân keát Smail. Goïi doøng leänh khôûi ñoäng töø file rc: /usr/local/bin/smail/ -bd –q15 Chuù yù laø haøng ñôïi ñöôïc xöû lyù cöù moãi sau 15 phuùt, trong ví duï treân, doøng leänh xöû lyù haøng ñôïi coù theå ñöôïc thieát laäp baát kyø giaù trò naøo, nhöng phaûi khoâng ñöôïc quaù daøi ñeå caùc file haøng ñôïi khoâng nhaän quaù nhieàu. Vaø cuõng coù theå hieån thò noäi dung hieän taïi cuûa haøng ñôïi Smail baèng caùch ñöa ra doøng leänh vôùi chöùc naêng –bd hoaëc vôùi doøng leänh mailq (cuõng ñöôïc lieân keát ñeán Smail). 7. Gôõ roái Smail Treân heä ñieàu haønh Linux, Smail söû duïng 2 file log ñeå ghi laïi caùc coâng vieäc. Haàu heát caùc coâng vieäc ñeàu ñöôïc ghi laïi trong file /var/spool/smail/log/logfile. Moãi muïc nhaäp trong trong file log töông öùng vôùi moät coâng vieäc Smail ñaõ hoaøn taát vaø chöùa ñöùng thoáng soá xaùc minh cuûa message, ngöôøi göûi, ngöôøi nhaäp, time, kích côõ vaø thoâng tin daãn ñöôøng. Ngöôøi söû duïng coù theå xem noäi dung cuûa file log ñeå kieåm tra heä thoáng Smail laøm vieäc ñöôïc toát hôn. Caùc loãi vaø caùc vaán ñeà khaùc ñöôïc ghi trong file paniclog (/var/spool/smail/log/paniclog). Moät muïc nhaäp trong file naøy cho thaáy thoâng tin cô baûn veà message vaø caû caùc lyù do maø message khoâng ñöôïc göûi ñi. Ví duï: Caùc loãi chung haàu heát laø loãi daãn ñöôøng message thoâng qua SMTP (ERR_148) transport smtp: connect: Connection refused Neáu tìm thaáy caùc loãi naøy trong file paniclog thì ñieàu naøy coù nghóa laø SMTP ñaõ bò loãi, keát noái khoâng ñöôïc traû lôøi bôûi vì moät host töø xa khoâng coøn nöõa hoaëc dòch vuï TCP ñaõ khoâng ñöôïc pheùp. Neáu muïc nhaäp trong file paniclog khoâng theå giuùp ngöôøi söû duïng giaûi quyeát ñöôïc vaán ñeà thì coù theå cho pheùp moät trình gôõ roái treân Smail baèng caùch theâm vaøo chöùc naêng –d theo sau moät con soá trong doøng leänh khôûi ñoäng. Con soá cho thaáy soá löôïng thoâng tin gôõ roái ñöôïc sinh ra vaø hieån thi treân maøn hình. . Neáu khoâng nhaän ñöôïc baát kyø mail naøo chuyeån ñeán mailbox cuûa ngöôøi söû duïng, kieåm tra teân ñöôøng daãn cuûa file mailbox. Neáu khoâng chaéc chaéùn nôi chöùa mailbox, coá gaéng taïo ra lieân keát giöõa /usr/spool/mail/username vaø /var/spool/mail/username 8. Ñieàu chænh caùch vaän haønh Smail: Ba thaønh phaàn cô baûn cuûa Smail (rooter, director vaø transport) coù theå ñöôïc caáu hình ñeå ñieàu chænh quaù trình vaän haønh cuûa chuùng. Nhöng ngöôøi söû duïng chæ caàn xem xeùt chi tieát thaønh phaàn rooter coøn hai thaønh phaàn coøn laïi ñeàu ñöôïc tuøy bieán trong quaù trình caøi ñaët Linux ñaày ñuû. Trong haàu heát caùc tröôøng hôïp, quaù trình vaän haønh cuûa moãi thaønh phaàn trong Smail ñöôïc ñieàu khieån bôûi moät hoaëc nhieàu file döïa vaøo thö muïc caáu hình Smail (/usr/lib/smail). Tuøy theo file caáu hình coù saün töø caùc ñóa CD-ROM hoaëc töø caùc site FTP Linux maø noù seõ ñöa ra caùc caáu hình khaùc nhau. Tìm moät trong nhöõng file naøy vaø sau ñoù hieäu chænh noù cho phuø hôïp vôùi heä thoáng ñang söû duïng. Thaønh phaàn router cuûa Smail ñieàu khieån quaù trình xöû lyù caùc ñòa chæ ñích, daãn ñöôøng ñeán mail host keá tieáp cho quaù trình göûi message ñöôïc xa hôn vaø xaùc ñònh kieåu chuyeån vaän naøo seõ ñöôïc söû duïng ñeå göûi message ñi. Thaønh phaàn rooter thöïc hieän moät soá taùc vuï, ñaàu tieân laø vieäc xaùc ñònh neáu message göûi ñeán moät maùy cuïc boä hay moät maùy töø xa (söû duïng caùc giaù trò bieán ñöôïc khai baùo trong /usr/lib/smail/config). Neáu message daønh cho maùy cuïc boä, message seõ ñöôïc chuyeån sang director. Neáu message daønh cho moät maùy töø xa, ñòa chæ cuûa message ñöôïc ñöa ñeán router driver ñeå xaùc ñònh host naøo maø message chuyeån ñeán. Router driver ñöôïc chæ ñònh trong file router (/usr/lib/smail/router). File naøy chöùa teân caùc router driver, moãi router driver ñöôïc nhaän ñòa chæ ñích cuûa message ñeå nhaän ra neáu chuùng coù thoâng tin yeâu caàu veà router cuï theå ñeå göûi message. Neáu ñang söû duïng caû keát noái SLIP/PPP laãn UUCP ngöôøi söû duïng coù theå gaëp moät soá vaán ñeà ñoái vôùi Smail laø phaûi chôø ñôïi quaù laâu cho moät phieân keát noái. Ñeå ñôn giaûn kieåu caøi ñaët naøy, saép xeáp laïi traät töï caùc router vaø kieåm tra ñöôøng daãn file tröôùc khi giaûi quyeát caùc router. Khi moät router nhaän ra ñöôøng ñi toát nhaát ñeán moät maùy ñích, noù cuõng nhaän moät transport ñöôïc yeâu caàu ñeå lieân laïc vôùi router mail cuûa maùy ñoù. Ñöôøng daãn thöïc söï ñeán maùy ñích coù theå ñöôïc hieäu chænh taïi moät soá thôøi ñieåm. Ví duï, neáu moät maùy tính töø xa chatton@bigcat.com coù theå ñöôïc truy caäp ñeán toát nhaát thoâng qua moät lieân keát UUCP thay vì SMTP, caùc ñòa chæ ñích coù theå ñöôïc ñieàu chænh laïi bôûi router ñeán bigcat!chatton (kieåu ñòa chæ UUCP). Nhö vaäy moät ñòa chæ ñích coù theå trôû neân cuï theå vaø roõ raøng hôn. Ví duï, ñòa chæ chatton@bigcat.com coù theå ñöôïc giaûi quyeát ñeå chæ ñònh moät maùy khaùc chaúng haïn nhö chatton@whisker.bigcat.com neáu ñòa chæ ñoù seõ nhaän message chuyeån ñeán hieäu quaû hôn. 9. Caáu hình Smail ñeå söû duïng vôùi heä thoáng TCP Neáu caàn phaûi söû duïng moät keát noái maïng truyeàn mail thì caàn phaûi ñieàu chænh laïi file config ñeå chæ ñònh caùc kieåu keát noái vaø caùc teân host. Coù nhieàu caùch ñeå caáu hình caùc heä thoáng mail cho moät maïng. Caùc caùch naøo bao goàm söû duïng heä thoáng NFS (Network File System) ñeå cho pheùp moät file caáu hình ñôn leû chia seû vôùi taát caû caùc maùy, söû duïng POP hoaëc IMAP ñeå ñieàu khieån mail treân moät site trung taâm vaø caøi ñaët leân moãi maùy nhö moät boä ñieàu khieån mail ñoäc laäp. Quaù trình caáu hình cho taát caû caùc phöông thöùc ñoù thì phaàn nhieàu laø gioáng nhau. Chæ khaùc nhau ôû choã coù hay khoâng caùc file caáu hình ñaët treân moãi maùy trong maïng hoaëc moät maùy ñôn leû ñöôïc truy caäp sau ñoù baèng NFS hoaëc SMTP bôûi caùc maùy khaùc. Baét ñaàu quaù trình caáu hình baèng caùch thieát laäp caùc teân mieàn cuïc boä söû duïng caùc bieán visible_domain vaø visible_name. Ví duï: # Our domain name visible_domain=tpci.com # Our domain name for outgoing mail visible_name=tpci.com Ñoaïn maõ naøy thieát laäp teân mieàn cuïc boä vaø caùc teân mieàn quyeát ñònh. Muïc nhaäp cho bieán visible_domain ñöôïc söû duïng bôûi Smail ñeå göûi ñính keøm ñeán taát caû caùc mail göûi ñi. Caû hai bieán thöôøng ñöôïc gaùn gioáng nhau. Böôùc caáu hình keá tieáp laø thieát laäp teân cuûa smart_host ñieàu khieån caùc message ra ngoaøi maïng cuïc boä. Neáu khoâng söû duïng smart_host hoaëc maùy cuûa ngöôøi söû duïng ñieàu khieån caùc keát noái maïng ñeán chính noù thì khoâng caàn nhöõng giaù trò naøy. Caùc bieán coù lieân quan trong vieäc caøi ñaët leân moät smart_host laø smart_path ( chæ ñònh teân maùy smarthost) vaø smart_transport (chæ ñònh kieåu phöông thöùc söû duïng ñeå keát noái ñeán smarthost). Ví duï: # smart host routing # smart host name smart_host=merlin # communications protocol to smart host smart_transport=smtp Giaù trò smart_transport cuûa SMTP ñöôïc söû duïng ñeå nhaän bieát giao thöùc keát noái SMTP. C. HIEÄN THÖÏC CHÖÔNG TRÌNH Treân cô sôû lyù thuyeát tìm hieåu veà Mailing list vaø caùc Mail system em tieán haønh xaây döïng moâ phoûng moät heä thoáng mail vôùi caùc chöùc cô baûng nhö naêng göûi vaø nhaän mail döïa treân 2 giao thöùc truyeàn nhaän cô baûn laø SMTP vaø POP3. Chöông trình naøy laø moät chöông trình Mail Client ñöôïc vieát baèng ngoân ngöõ laäp trình PERL Phaàn sau ñaây seõ trình baøy caùc löu ñoà thöïc hieän cuûa chöông trình vaø löu ñoà cuûa caùc giao thöùc truyeàn nhaän mail SMTP vaø POP3. LOGIN EXIT Logout CHECK MAIL SEND MAIL MENU MENU SEND RESET EXIT SEND MAIL CHECK MAIL EXIT READ RETURN DELETE CHECK MAIL MAIL BOX RETURN EXIT NO MAIL RETURN EXIT OK ERROR EXIT RETURN EXIT RETURN EXIT REPLY ADDRESS READ MAIL RETURN Löu ñoà toång quaùt: HOAÏT ÑOÄNG CUÛA CHÖÔNG TRÌNH POP3CLIENT: Chöông trình Pop3 Client ñöôïc thöïc thi ñaàu tieân khi coù keát noái vôùi Server Mail cuûa nhaø cung caáp dòch vuï. Khi ñöôïc thöïc thi, ñaàu tieân, noù seõ laáy caùc thoâng tin nhö: Teân maùy hoaëc ñòa chæ IP Server Mail cuûa nhaø cung caáp dòch vuï, ñaây chính laø Server gôûi Mail, username vaø password duøng ñeå login vaøo Mailbox treân maùy Server nhaän Mail, hoäp thö Inbox treân maùy cuïc boä duøng ñeå löu giöõ caùc thö ñöôïc nhaän veà, soá laàn keát noái laïi neáu chöông trình ñang nhaän maø bò ngaét giöõa chöøng, vaø thôøi gian timeout trong tröôøng hôïp Server khoâng traû lôøi. Keá tieáp, chöông trình seõ khôûi taïo caùc signal duøng ñeå xöû lyù caùc bieán coá coù theå xaûy ra trong quaù trình nhaän Mail, ví duï: ñöôøng truyeàn bò ngaét, timeout,…. Neáu caùc bieán coá naøy xaûy ra thì quaù trình seõ goïi caùc haøm caøi ñaët saún ñi keøm vôùi bieán coá ñeå xöû lyù. Tieáp theo, chöông trình seõ thöïc hieän vieäc kieåm tra laïi xem username vaø password duøng ñeå ñaêng nhaäp vaøo Mailbox cuûa Server Mail ñaõ coù trong caáu truùc POP3_SERVER chöa, neáu ñaõ coù thì chöông trình seõ duøng username vaø password naøy ñeå thöïc hieän quaù trình login vaøo Mailbox cuûa Server, neáu chöa coù thì seõ hieån thò yeâu caàu nhaäp vaøo username vaø password ñeå thöïc hieän quaù trình login. Sau ñoù, Pop3Client seõ môû moät socket ñeå thöïc hieän moät keát noái tôùi Server nhaän Mail, maø teân hoaëc ñòa chæ IP cuûa computer maø chöông trình Pop3Server ñang chaïy ñöôïc löu giöõ trong tröôøng host cuûa caáu truùc POP3_SERVER. Neáu laø teân, chöông trình seõ thöïc hieän vieäc chuyeån ñoåi sang ñòa chæ IP ñeå thöïc hieän keát noái. Neáu keát noái thöïc hieän thaønh coâng, Pop3 Client seõ nhaän ñöôïc moät lôøi chaøo ñöôïc gôûi tôùi bôûi Pop3 Server vaø session seõ böôùc vaøo quaù trình AUTHORIZATION. Luùc naøy, Pop3Client seõ gôûi username vaø password tôùi cho Pop3Server kieåm tra. Neáu quaù trình AUTHORIZATION thöïc hieän thaønh coâng, session seõ böôùc vaøo quaù trình TRANSACTION, neáu khoâng thaønh coâng, Pop3Server seõ gôûi thoâng baùo loãi laïi cho Pop3Client. Luùc naøy, Pop3Client coù theå thöïc hieän vieäc ñaêng nhaäp laïi vôùi username vaø password khaùc hoaëc coù theå gôûi leänh “QUIT” ñeå thoaùt. Böôùc vaøo quaù trình TRANSATION, ñaàu tieân Pop3 Client seõ gôûi leänh “STAT” tôùi server ñeå kieåm tra xem coù mail trong mailbox hay khoâng. Neáu coù, server seõ traû veà toång soá thö hieän coù trong mailbox vaø kích thöôùc cuûa mailbox. Tieáp ñoù, Pop3Client seõ gôûi leänh “LIST” ñeå laáy kích thöôùc cuûa töøng message. Sau khi coù ñöôïc toång soá message coù trong mailbox, Pop3 Client seõ böôùc vaøo voøng laëp duøng ñeå nhaän mail, vôùi moãi böôùc cuûa voøng laëp seõ thöïc hieän moät leänh “RETR” vôùi soá thöù töï töông öùng vôùi chæ soá cuûa voøng laëp duøng ñeå nhaän message töông öùng. Sau khi nhaän xong message, Pop3Client seõ gôûi leänh “DELE i” tôùi server ñeå xoùa message naøy. Sau khi laáy heát caùc message coù trong mailbox cuûa server, Pop3Client seõ gôûi leänh “QUIT” tôùi server ñeå yeâu caàu server chuyeån Pop session sang traïng thaùi Update vaø thoaùt. Ñoái vôùi Server, khi böôùc vaøo traïng thaùi UPDATE, noù seõ xoùa thaät söï caùc message ñaõ ñöôïc ñaùnh daáu xoùa trong Mailbox vaøo ñoùng keát noái. Neáu moät keát noái ñaõ ñoùng laïi maø Server khoâng böôùc vaøo traïng thaùi UPDATE thì caùc message ñöôïc ñaùnh daáu xoùa seõ khoâng ñöôïc xoùa trong Mailbox maø noù seõ trôû laïi traïng thaùi ban ñaàu. Yes Yes Yes Taïo socket Connect server taïi port 110 Gôûi leänh USER username \r\n Response = +OK Gôûi leänh PASS password \r\n Response = +OK Gôûi leänh PASS password \r\n Gôûi leänh STAT \r\n Response = +OK 1 Baùo loãi Ñoùng Socket No No No No Löu Ñoà Cho Getmail Löu Ñoà Cho Getmail (Tieáp tuïc) No 1 Xöû lyù haøng nhaän ñöôïc laáy toång soá message Gaùn i=1 Gôûi leänh RETR i Ñoïc töøng vaøo töøng doøng töø socket vaø ghi File cho ñeán khi keát thuùc böùc mail. incr i i <= soá msg Gôûi leänh QUIT Ñoùng Socket Yes HOAÏT ÑOÄNG CUÛA CHÖÔNG TRÌNH SMTP CLIENT Chöông trình smtp client seõ thöïc hieän laàn löôït theo sô ñoà sau: Yes Deliver mail vaø taïo back up neáu coù yeâu caàu Ñoùng keát noái Môû vaø ñoïc file outbox Coù thö caàn gôûi? Taïo socket keát noái tôùi server Thoaùt vaø baùo loãi töông öùng No END BEGIN TRÖÔØNG ÑAÏI HOÏC BAÙCH KHOA HAØ NOÄI TRÖÔØNG ÑAÏI HOÏC THUYÛ SAÛN KHOA COÂNG NGHEÄ THOÂNG TIN ÑEÀ CÖÔNG VIEÁT ÑOÀ AÙN TOÁT NGHIEÄP Hoï teân sinh vieân: Ñaëng Vuõ Quoác Khaùnh Lôùp 39TH – Heä chính quy. Giaùo vieân höôùng daãn: Thaày Nguyeãn Ngoïc Bình Thôøi gian laøm ñoà aùn toát nghieäp: Töø ngaøy 21/4/2002 ñeán 25/9/2002 Teân ñoà aùn: - Tìm hieåu veà caùc Web Server thoâng duïng hieän nay. - Tìm hieåu veà Mailing list vaø caùc Mail system. - Xaây döïng moät chöông trình Internet mail. Ñeà cöông vieát ñoà aùn: A. CAÙC YEÂU CAÀU CUÛA ÑEÀ TAØI B. CÔ SÔÛ LYÙ THUYEÁT Chöông I: Tìm hieåu veà caùc Web Server thoâng duïng Chöông II: Caùc nghi thöùc truyeàn nhaän Phaàn I: Giao thöùc SMTP Phaàn II: Giao thöùc POP3 Chöông III: Giôùi thieäu veà Internet Mail Chöông IV: Tìm hieäu veà caùc heä thoáng mail treân heä ñieàu haønh Linux C. HIEÄN THÖÏC CHÖÔNG TRÌNH

Các file đính kèm theo tài liệu này:

  • docDo an tot nghiep.doc
  • ppsbaocao.pps
  • ppsbaocao2.pps
  • rarSource.rar