144
ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình A. YEÂU CAÀU CUÛA ÑEÀ TAØI: Bao goàm caùc phaàn sau: Tìm hieåu veà caùc Web server thoâng duïng hieän nay: + Microsoft Internet Information Server + Apache Web Server Trình baøy veà ñaëc ñieåm veà khaû naêng, caøi ñaët, vaän haønh, hoã trôï caùc öùng duïng Web vaø so saùnh caùc ñieåm maïnh, yeáu, caùc öu nhöôïc ñieåm giöõa chuùng. Tìm hieåu veà heä thoáng mailing list: Tìm hieåu veà caùc nghi thöùc truyeàn nhaän mail cô baûn nhö SMTP vaø POP3. Tìm hieåu caùch vaän haønh vaø caøi ñaët cuûa caùc heä thoáng mail treân caùc heä ñieàu haønh thoâng duïng: + Internet Mail. + Linux Mail. B. CÔ SÔÛ LYÙ THUYEÁT: CHÖÔNG I TÌM HIEÅU VEÀ CAÙC WEB SERVER THOÂNG DUÏNG I. GIÔÙI THIEÄU VEÀ HEÄ ÑIEÀU HAØNH WINDOWS NT 1. Theáâ naøo laø moät heä ñieàu haønh maïng: Maïng bao goàm caùc taøi nguyeân (maùy traïm, maùy in…) vaø caùc thieát bò truyeàn thoâng (router, bridge). Vôùi vieäc gheùp noái caùc maùy tính thaønh maïng thì caàn thieát phaûi coù moät heä thoáng phaàn meàm coù chöùc naêng quaûn lyù taøi nguyeân, tính toaùn vaø xöû trang 1

Tìm hiểu một số công nghệ web và xây dựng một chương trình newsletter

Embed Size (px)

Citation preview

Page 1: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

A. YEÂU CAÀU CUÛA ÑEÀ TAØI:

Bao goàm caùc phaàn sau:Tìm hieåu veà caùc Web server thoâng duïng hieän nay:

+ Microsoft Internet Information Server + Apache Web Server

Trình baøy veà ñaëc ñieåm veà khaû naêng, caøi ñaët, vaän haønh, hoã trôï caùc öùng duïng Web vaø so saùnh caùc ñieåm maïnh, yeáu, caùc öu nhöôïc ñieåm giöõa chuùng. Tìm hieåu veà heä thoáng mailing list: Tìm hieåu veà caùc nghi thöùc truyeàn nhaän mail cô baûn nhö SMTP vaø POP3. Tìm hieåu caùch vaän haønh vaø caøi ñaët cuûa caùc heä thoáng mail treân caùc heä ñieàu haønh thoâng duïng:

+ Internet Mail.+ Linux Mail.

B. CÔ SÔÛ LYÙ THUYEÁT:CHÖÔNG I

TÌM HIEÅU VEÀ CAÙC WEB SERVER THOÂNG DUÏNG

I. GIÔÙI THIEÄU VEÀ HEÄ ÑIEÀU HAØNH WINDOWS NT

1. Theáâ naøo laø moät heä ñieàu haønh maïng:Maïng bao goàm caùc taøi nguyeân (maùy traïm, maùy in…)

vaø caùc thieát bò truyeàn thoâng (router, bridge). Vôùi vieäc gheùp noái caùc maùy tính thaønh maïng thì caàn thieát phaûi coù moät heä thoáng phaàn meàm coù chöùc naêng quaûn lyù taøi nguyeân, tính toaùn vaø xöû lyù truy caäp moät caùch thoáng nhaát treân maïng, heä nhö vaäy ñöôïc goïi laø heä ñieàu haønh maïng. Moãi taøi nguyeân cuûa maïng nhö file, ñóa, thieát bò ngoaïi vi ñöôïc quaûn lyù bôûi moät tieán trình nhaát ñònh vaø heä ñieàu haønh maïng ñieàu khieån söï töông taùc giöõa caùc tieán trình vaø truy caäp ñeán caùc tieán trình ñoù.

Quaûn lyù caùc taøi nguyeân: taäp tin ôû xa, naïp vaø chaïy caùc App duøng chung, I/O vôùi caùc thieát bò maïng duøng chung, chæ caáp phaùt CPU trong tieán trình NOS.

trang 1

Page 2: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Caên cöù vaøo vieäc truy caäp taøi nguyeân treân maïng maø ngöôøi ta chia thöïc theå trong maïng thaønh hai loaïi chuû vaø khaùch, trong ñoù maùy khaùch (Client) truy caäp ñöôïc vaøo taøi nguyeân cuûa mình nhöng khoâng chia xeû taøi nguyeân cuûa noù vôùi maïng, coøn maùy chuû (Server) laø maùy tính naèm treân maïng vaø chia xeû taøi nguyeân cuûa noù vôùi ngöôøi duøng maïng.

Hieän nay caùc heä ñieàu haønh maïng thöôøng ñöôïc chia laøm hai loaïi laø heä ñieàu haønh maïng ngang haøng vaø heä ñieàu haønh maïng phaân bieät (clent/server).

Vôùi heä ñieàu haønh maïng ngang haøng, moãi maùy tính treân maïng vöøa coù theå ñoùng vai troø chuû laãn khaùch töùc laø chuùng coù theå söû duïng taøi nguyeân cuûa maïng laãn chia xeû taøi nguyeân cuûa noù cho maïng. Ví duï: Lantastic cuûa Artisoft, Netware cuûa Novell, Windows (for Workgroup, 95, NT client) cuûa Microsoft.

Vôùi heä ñieàu haønh maïng phaân bieät caùc maùy tính ñöôïc phaân bieät chuû vaø khaùch, trong ñoù maùy chuû maïng (Server) giöõ vai troø chuû vaø caùc maùy ngöôøi duøng giöõ vai troø khaùch (caùc traïm). Khi coù nhu caàu truy caäp taøi nguyeân treân maïng caùc traïm taïo ra yeâu caàu vaø göûi chuùng tôùi server vaø sau ñoù server thöïc hieän vaø göûi traû lôøi.

2. Heä ñieàu haønh maïng Windows NTWindows NT laø heä ñieàu haønh maïng cao caáp cuûa haõng

Microsoft. Phieân baûn ñaàu tieân coù teân laø Windows NT 3.1 phaùt haønh naêm 1993 vaø phieân baûn server laø Windows NT Advanced Server (tröôùc ñoù laø LAN manager for Windows NT). Naêm 1994 phieân baûn Windows NT Server vaø Windows NT Workstation phieân baûn 3.5 ñöôïc phaùt haønh. Tieáp theo ñoù laø söï ra ñôøi caùc phieân baûn 3.51. Caùc phieân baûn Workstation coù theå söû duïng ñeå thaønh laäp maïng ngang haøng, coøn caùc phieân baûn Server daøng cho quaûn lyù file taäp trung, in aán vaø chia seû caùc öùng duïng.

Naêm 1995, Windows NT Workstation phieân baûn 4.0 vaø Windows NT Server 4.0 ra ñôøi ñaõ keát hôïp vôùi caáu truùc khung cuûa ngöôøi anh em Windows 95 noåi tieáng phaùt haønh tröôùc ñoù khoâng laâu (tröôùc ñaây caáu truùc khung cuûa Windows NT gioáng Windows 3.1) ñaõ ñöôïc keát hôïp giao dieän quen thuoäc, deã söû duïng cuûa Windows 95 vaø söï maïnh meõ, an toaøn, baûo maät cao cuûa Windows NT.

Windows NT coù hai baûn maø noù ñi ñoâi vôùi hai caùch tieáp caän maïng khaùc nhau. Hai baûn naøy goïi laø Windows NT Workstation vaø Windows NT server. Vôùi heä ñieàu haønh chuaån cuûa NT ta coù theå xaây döïng maïng ngang haøng, server maïng vaø moïi coâng cuï quaûn trò caàn thieát cho server maïng, ngoaøi ra coøn coù theå coù nhieàu giaûi phaùp veà xaây

trang 2

Page 3: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

döïng maïng dieän roäng. Caû hai baûn Windows NT Workstation vaø Windows NT server cuøng ñöôïc xaây döïng treân cô sôû nhaân NT chung vaø caùc giao dieän vaø caû hai cuøng coù nhöõng ñaëc tröng an toaøn theo tieâu chuaån C2. Windows NT Workstation ñöôïc söû duïng ñeå keát noái nhöõng nhoùm ngöôøi söû duïng nhoû, thöôøng cuøng laøm vieäc trong moät vaên phoøng. Tuy nhieân vôùi Windows NT server ta coù moät khaû naêng choáng hoûng hoùc cao, nhöõng khaû naêng cung caáp dòch vuï maïng lôùn vaø nhöõng löïa choïn keát noái khaùc nhau, Windows NT server khoâng haïn cheá soá ngöôøi coù theå thaâm nhaäp vaøo maïng.

Vôùi Windows NT server ta cuõng coù nhöõng coâng cuï quaûn trò töø xa vaøo maïng maø coù theå thöïc hieän vieäc quaûn trò nhöõng maùy tính ôû xa. Noù tích hôïp vôùi taát caû nhöõng sô ñoà maïng BUS, STAR, RING vaø hoãn hôïp.

Windows NT laø heä ñieàu haønh coù söùc maïnh coâng nghieäp ñaàu tieân cho soá löôïng khoång loà caùc maùy tính IBM compatible, Windows NT laø moät heä ñieàu haønh thöïc söï daønh cho ngöôøi duøng, caùc cô quan, caùc coâng ty xí nghieäp. Windows NT laø moät heä ñieàu haønh ña nhieäm, ña xöû lyù vôùi ñòa chæ 32 bit boä nhôù. Noù yeåm trôï caùc öùng duïng cuûa DOS, Windows, Win 32 GUI vaø caùc öùng duïng döïa treân kyù töï. Windows NT server laø heä ñieàu haønh maïng, ñaùp öùng cho maïng cuïc boä (LAN) vöøa ñaùp öùng cho maïng dieän roäng (WAN) nhö Intranet, Internet.

Windows NT server hôn haún caùc heä ñieàu haønh khaùc bôûi tính meàm deûo, ña daïng trong quaûn lyù. Noù vöøa cho pheùp quaûn lyù maïng theo moâ hình maïng phaân bieät (Client/Server) vöøa quaûn lyù theo moâ hình maïng ngang haøng (Peer to Peer).

Windows NT server ñaùp öùng toát nhaát caùc dòch vuï vieãn thoâng, moät dòch vuï ñöôïc söû duïng roäng raõi trong töông lai.

Windows NT server caøi ñaët ñôn giaûn, nheï nhaøng vaø ñieàu quan troïng nhaát laø noù töông thích vôùi haàu nhö taát caû caùc heä maïng, noù khoâng ñoøi hoûi ngöôøi ta thay ñoåi nhöõng gì ñaõ coù.

Cho pheùp duøng caùc dòch vuï truy caäp töø xa, coù khaû naêng phuïc vuï ñeán 64 coång truy nhaäp töø xa.

Ñaùp öùng cho caùc maùy traïm Macintosh noái vôùi Windows NT server.

Windows NT server yeåm trôï moïi nghi thöùc maïng chuaån nhö NETBUEI, IPX/SPX, TCP/IP … vaø caùc nghi thöùc khaùc. Windows NT cuõng töông thích vôùi nhöõng maïng thoâng duïng hieän nay nhö Novell netware, Banyan VINES vaø Microsoft LAN Manager. Ñoái vôùi maïng lôùn vaø khaû naêng thaâm nhaäp töø xa, saûn phaåm Windows NT server cuõng cung caáp caùc chöùc

trang 3

Page 4: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

naêng boå sung nhu caàu , khaû naêng keát noái vôùi maùy tính lôùn vaø maùy Macintosh.

III. TOÅNG QUAN VEÀ WEB SERVER :Web Server:Web server laø moät phaàn meàm server ñaèng sau WWW.

Noù laéng nghe nhöõng yeâu caàu töø phía client, chaúng haïn nhö moät trình duyeät nhö Netscape hoaëc Microsoft Internet Explorer. Khi nhaän ñöôïc moät yeâu caàu töø phía client, noù seõ xöû lyù nhöõng yeâu caàu ñoù vaø traû veà moät vaøi döõ lieäu döôùi daïng moät fom chöùa caùc trang ñöôïc ñònh daïng döôùi daïng vaên baûn hoaëc hình aûnh. Trình duyeät Web traû laïi döõ lieäu naøy vôùi khaû naêng toát nhaát coù theå vaø trình ñeán ngöôøi söû duïng.

Khaùi nieäm veà Web server ñôn giaûn chæ laø moät chöông trình maø chuùng chôø ñôïi nhöõng yeâu caàu töø phía client vaø ñaùp öùng nhöõng yeâu caàu ñoù khi nhaän ñöôïc. Web server keát noái vôùi caùc trình duyeät hoaëc caùc client söû duïng giao thöùc HTTP, ñoù laø moät giao thöùc ñaõ ñöôïc chuaån hoùa caùc phöông thöùc cuûa caùc yeâu caàu göûi ñi vaø xöû lyù caùc yeâu caàu ñoù. Noù cho pheùp raát nhieàu caùc client khaùc nhau keát noái vôùi caùc server cung caáp maø khoâng gaëp baát kyø moät trôû ngaïi naøo trong vaán ñeà töông thích.

Haàu heát caùc taøi lieäu yeâu caàu hoaëc ñaùp öùng ñeàu phaûi ñöôïc ñònh daïng baèng ngoân ngöõ HTML. HTML laø moät phaàn cuûa moät ngoân ngöõ ñaùnh daáu khaùc goïi laø SGML, noù ñöôïc söû duïng roäng raõi bôûi nhieàu toå chöùc vaø trong caùc chính phuû lieân bang.

HTML laø nguoàn soáng cuûa Web. Noù laø moät ngoân ngöõ ñaùnh daáu ñôn giaûn ñöôïc söû duïng ñeå ñònh daïng vaên baûn. Trình duyeät thoâng dòch caùc thoâng tin ñaùnh daáu naøy vaø hieån thò caùc thoâng tin caàn ñaùp öùng naøy vôùi khaû naêng toát nhaát coù theå. Quan troïng hôn nöõa, HTML cho pheùp lieân keát vôùi caùc taøi lieäu vaø taøi nguyeân khaùc, ñaây laø söï theå hieän tính sieâu vaên baûn cuûa Web.

Sieâu vaên baûn cho pheùp ngöôøi söû duïng xem moät taøi lieäu khaùc löu tröõ ôû treân cuøng moät maùy hoaëc trong moät maùy khaùc ñaët ôû moät nôi khaùc treân theá giôùi. Noù cho pheùp thoâng tin toàn taïi haàu nhö döôùi daïng ba chieàu. Ngöôøi söû duïng khoâng nhöõng chæ coù theå ñoïc taøi lieäu maø coøn coù theå chuyeån ñeán moät choã khaùc.

Tieán trình tìm vaø mang thoâng tin veà hoaøn toaøn trong suoát ñoái vôùi ngöôøi söû duïng. Noù laø moät ngoân ngöõ uyeån chuyeån vaø deã söû duïng. Söï ñieàu höôùng thoâng tin qua nhieàu thoâng tin theo moät caùch ñaëc bieät. Noù cho pheùp ngwôøi söû duïng thu thaäp thoâng tin moät caùch deã daøng vaø

trang 4

Page 5: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

hieån thò chuùng theo caùch maø ngöôøi söû duïng deã löïa choïn nhaát.

Neáu baát ngôø ngöôøi söû duïng hoûi baèng caùch naøo ñeå taïo ra moät trang Web. Thì hoï seõ giaùp maët vôùi haøng loaït caùc vaán ñeà coù lieân quan maø hoï caàn phaûi tìm hieåu tröôùc khi baét ñaàu vieát maõ moät trang HTML ñaàu tieân. Vaán ñeà quan troïng nhaát vaø laø lyù do cô baûn nhaát laø phaûi löïa choïn phaàn meàm server naøo ñeå söû duïng, vôùi nhöõng thoâng tin cô baûn nhaát maø cuoán baùo caùo naøy cung caáp, söï löïa choïn coù leõ laø khoâng khoù.

Caùc vaán ñeà maø caàn phaûi quan taâm khi löïa choïn moät Web server ñeå giao phoù coâng vieäc cho noù.

- Phaàn meàm traû tieàn hay ñöôc mieãn phí.- Deã caøi ñaët.- Deã caáu hình.- Deã môû roäng hoaëc tuyøbieán moät vaøi dieän maïo cuûa

server.- Caùc ñaëc tröng cô baûn.- Söï phaùt trieån lieân tuïc.- Hoã trôï baûo maät.- Maõ nguoàn saün coù.- Hoã trôï coâng ngheä.- Hoã trôï neàn taûng.- Hoã trôï ñoái vôùi caùc phaàn meàm thöù ba.

IV. INTERNET INFORMATION SERVER (IIS):IIS laø moät dòch vuï tuyø choïn cuûa Windows NT server

cung caáp caùc tính naêng veà Web site. Giaûi phaùp phoå bieán nhaát cuûa Microsoft cho moät Web site laø chaïy IIS treân neàn Windows NT server.

IIS laø moät thaønh phaàn cô baûn ñeå xaây döïng moät Internet hoaëc Intranet server treàn neàn Windows NT 4.0, Workstation vaø Win 95. IIS ñöôïc tích hôïp ñaày ñuû trong Windows NT 4.0. Vôùi moät boä ñaày ñuû IIS vaø Windows NT 4.0 ngöôøi söû duïng seõ nhaän ñöôïc söï thuaän tieän khi xaây döïng moät cô cheá baûo maät treân Windows NT server vaø Windows NT File System (NTFS).

Ngöôøi söû duïng coù theå söû duïng caùc kyû thuaät Internet theâm vaøo ñöôïc cung caáp bôûi IIS ñeå naâng cao caùc tính naêng Microsoft Back Office, bao goàm caùc thaønh phaàn sau:

- Heä thoáng quaûn trò cô sôû döõ lieäu Microsoft SOL Server Client/Server.

- Heä thoáng thoâng baùo Microsoft Exchange Server Client/Server.

- Microsoft Proy Server.

trang 5

Page 6: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

- Microsoft SNA Server keát noái vôùi maïng IBM enterprise.- Heä thoáng quaûn lyù Server cuûa Microsoft (taäp trung

quaûn lyù caùc heä thoáng phaân taùn).-Microsoft Commercial Internet Server (MCIS).Vôùi IIS ngöôøi söû duïng coù theå trieån khai lieân tuïc caùc

öùng duïng maïng leân caùc server ra ñôøi muoän caùc noäi dung Web môi nhaát. IIS ñaày ñuû hoã trôï caùc heä thoáng ngoân ngöõ laäp trình VB, VB Script, J ScriptTM ñöôïc phaùt trieån bôûi Microsoft vaø Java Component Noù cuõng hoã trôï caùc öùng duïng CGI daønh cho caùc ngoân ngöõ laäp trình Web cô sôû vaø ISAPI môû roäng vaø caùc boä loïc.

1. Caøi ñaët IIS treân Windows NT server:Microsoft cung caáp caùc chöông trình caøi ñaët khaù thaân

thieän ñeå caøi ñaët IIS treân Windows NT server. Caùc böôùc cô baûn laø laáy chöông trình töø NT Option Pack hoaëc taûi töø Internet vaø chaïy Setup.exe.

Windows NT Option Pack: IIS laø moät thaønh phaàn cuûa Windows NT Option Pack. Moät boä Windows NT Option Pack sau khi caøi ñaët ñaày ñuû phaûi bao goàm caùc thaønh phaàn sau:

Microsoft Transaction Server. (MTC)Microsoft Management Console. (MMC)Microsoft Index Server.Microsoft Certificate Server.Microsoft Site Server Express. (SSE)- MTS laø moät thaønh phaàn cô baûn giaûi quyeát caùc tieán

trình heä thoáng cho caùc quaù trình phaùt trieån, phaù huyû vaø quaûn lyù söï thi haønh ôû möùc cao vaø caùc öùng duïng server maïnh.

- MMC laø moät öùng duïng xuyeân suoát phaân chia caùc coâng cuï quaûn lyù maø noù coù theå ñöa ra caùc caùch ñeå quaûn trò caùc chöông trình maïng, theâm vaøo ñoù MMC ñöôïc keát hôïp vôùi caùc saûn phaåm cuûa Microsoft nhö: Windows NT vaø taát caû caùc saûn Office.phaåm thuoäc MS Back

Trong khi MMC töï noù khoâng ñöa cho ngöôøi söû duïng baát kyø moät chöùc naêng naøo ñöôïc theâm vaøo caû maø chæ cung caáp moät moâi tröôøng chung cho snap-ins. Snap-ins cung caáp moâi tröôøng quaûn trò aûo cho moãi saûn phaåm töông thích cuûa noù. Snap-ins ñöôïc trình baøy trong IIS nhö laø moät dòch vuï quaûn lyù Internet (ISN). Khi IIS khôûi ñoäng, MMC cuõng seõ ñöôïc khôûi ñoäng vaø naïp vaøo snap-ins.

Trong töông lai taát caû caùc saûn phaåm cuûa MS Back Office bao goàm caû Windows, Windows NT, caùc coâng cuï quaûn trò maïnh seõ ñöôïc chuyeån sang MMC.

Moät boä IIS phaûi bao goàm ñaày ñuû caùc thaønh phaàn sau:

trang 6

Page 7: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Content Index (Index Server). FTP Publishing Service. IIS Admin Service (Internet Service Manager snap-in). Microsoft Network News Transfer Protocol (NNTP) Service. Microsoft Simple Mail Transfer Protocol (SMTP) Service. MSDTC (Microsoft Distributed Transaction Coordinator). World Wide Web Publishing Service.

2. Quaûn lyù IIS Web server:+ HTTP server: Dòch vuï naøy taïo moät WWW server coâng

coäng. Server naøy taïo nhieàu trang HTML cho pheùp ngöôøi söû duïng coù theå chaïy caùc öùng duïng CGI ñeå thi haønh caùc coâng vieäc theâm vaøo ôû server döïa treân caùc yeâu caàu cuûa client. Vaên baûn, hình aûnh, aâm thanh vaø caùc taøi nguyeân khaùc coù theå ñöôïc taûi xuoáng WWW client.

+ Gopher Server: Dòch vuï naøy cung caáp caùc taøi nguyeân cho caùc Gopher client. Server göûi caùc file, caùc danh saùch thö muïc vaø caùc muïc choïn trình ñôn khaùc ñeán Gopher client.

+ FTP server: Dòch vuï naøy laø moät caäp nhaät ñeán server ñöôïc caøi ñaët saün treân Windows NT (TM), noù chuyeån caùc file coù saün ñeán FTP client.

Maëc duø WWW ñaõ thay theá haàu heát caùc chöùc naêng cuûa FTP, tuy nhieân chæ FTP môùi coù theå ñöôïc söû duïng ñeå sao cheùp caùc file töø moät maùy client ñeán moät maùy server. Neáu nhöõng ngöôøi truy caäp töø xa caàn laøm vieäc ñoù, hoï phaûi söû duïng FTP.

+ Söï deã daøng chia xeû: Taát caû caùc dòch vuï treân laø moät phaàn cuûa moät tieán trình nhö nhau vôùi muïc ñích laø laøm haïn cheá söû duïng boä nhôù ngoaøi vaø taêng hieäu quaû. IIS cuõng hoã trôï thi haønh söï giaùm saùt caùc boä ñeám vaø kieåm tra SNMP vôùi FTP, Gopher, HTTP… Boä ñeám SNMP naèm döôùi nuùt IIS cuûa caây teân MIB.

+ Internet Server API:Caùc API naøy cung caáp caùc öùng duïng cho giao dieän

vôùi IIS. Coù 2 caùch ñeå caùc API naøy söû duïng:+ Caùc phaàn môû roäng CGI: Caùc API naøy cho pheùp

ngöôøi söû duïng vieát caùc CGI DLL maø noù ôû trong vuøng boä nhôù gioáng nhö IIS. Ñaây laø söï khaùc bieät töø moät CGI bình thöôøng coù theå thi haønh, maø noù laø moät tieán trình rôøi raïc. Söû duïng caùc phaàn môû roäng naøy laøm taêng khaû naêng thi haønh cuûa server vaø laøm giaûm boä nhôù yeâu caàu.

+ Boä loïc: Caùc API naøy coù theå ñöôïc söû duïng ñeå vieát caùc DLL maø noù ngaên chaën taát caû khaûng naêng taûi HTTP ñang ñöôïc nhaän bôûi server. Moät öùng duïng coù theå ñöôïc

trang 7

Page 8: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

vieát maø noù thöïc hieän neùn, giaûi neùn, maõ hoùa, giaûi maõ hoaëc theâm vaøo caùc xaùc thöïc.

+ Internet Service Manager:Coâng cuï naøy ñöôïc söû duïng ñeå caáu hình vaø theo doõi

taát caû caùc IIS treân moät maïng. Noù söû duïng RPC ñeå caáu hình IIS treân moät maùy khaùc.

+ Caùc öùng duïng client:IIS hoã trôï caùc giao thöùc HTTP, Gopher, FTP vaø caùc client

nhöõng giao thöùc naøy nhö laø caùc trình duyeät : Internet Explorer, Netscape.

+ Internet Database Connector (IDC):- Vôùi IDC ngöôøi söû duïng coù theå:- Truy caäp ODBC töông thích vôùi caùc cô sôû döõ lieäu.- Taïo trang Web quaûn lyù cô sôû döõ lieäu.- Cheøn, caäp nhaät vaø xoùa thoâng tin cô sôû döõ lieäu do

ngöôøi söû duïng muoán nhaäp vaøo töø trang Web.- Thöïc hieän caùc caâu leänh SQL khaùc.

3. IIS WWW Server:WWW laø moät boä taäp hôïp caùc thoâng tin cuûa client vaø

server. Döõ lieäu sieâu vaên baûn (hyper text) ñöôïc chia xeû bôûi caùc server ñang chaïy phaàn meàm Web vaø ñöôïc truy caäp bôûi caùc client ñang chay moät phaàn meàm öùng duïng Web goïi laø trình duyeät Web.

WWW server cung caáp caùc thoâng tin phaân taùn vaø phaàn meàm, nhöng theo höôùng site hôn laø höôùng thö muïc. Taøi lieäu Web laø moät taøi lieäu sieâu vaên baûn ñöôïc vieát baèng ngoân ngöõ ñaùnh daáu sieâu vaên baûn (HTML), vaø vôùi caùc theû ñaëc bieät ñeå lieân keât ñeán noäi dung caùc taøi lieäu khaùc, chuùng ñöôïc goïi laø sieâu lieân keát (hypelink). Vôùi sieâu lieân keát, xuaát phaùt töø moät trang taøi lieäu ngöôøi söû duïng coù theå ñi ñeán moïi nôi treân theá giôùi ñeå xem nhöõng trang taøi lieäu khaùc chæ baèng böôùc kích chuoät vaøo lieân keát maø trình duyeät theå hieän.

WWW ñi keøm vôùi moâ hình maïng client/server vaø söû duïng giao thöùc HTTP giöõa client vaø server. Taøi lieäu ñöôïc chöùa treân nhieàu caùc server töï trò treân Internet vaø ñöôïc truy caäp bôûi HTTP client goïi laø trình duyeät Web.

Ñeå truy caäp vaøo taøi nguyeân WWW, client phaûi:+ Chaïy moät trình duyeät WWW chaúng haïn nhö Internet

Explorer(TM) Masaic(TM) hoaëc Netscape(TM)… Coù vaøi WWW client coù saün vaø chuùng coù theå ñöôïc taûi xuoáng tröïc tieáp töø Internet.

+ Keát noái ñeán moät WWW server baèng caùch cung caáp moät ñòa chæ URL vaø göûi yeâu caàu HTTP. Ñieån hình nhö client yeâu caàu moät file (trang HTML, hình aûnh…) hoaëc thö

trang 8

Page 9: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

muïc ñang hieån thò töø server, client cuõng coù theå göûi moät öùng duïng ñeán server.

Server seõ ñaùp öùng vôùi traïng thaùi hoaït ñoäng hoaëc thaønh coâng hoaëc bò loãi vaø döõ lieäu traû veà cho yeâu caàu cuûa client. Sau khi döõ lieäu ñöôïc göûi ñi, keát noái seõ ñoùng laïi vaø khoâng coù phaàn naøo cuûa taøi lieäu ñaõ göûi ñöôïc giöõ laïi treân server. Moãi ñoái töôïng trong moät taøi lieäu HTTP ñoøi hoûi moät keát noái khaùc nhau.

WWW vôùi giao thöùc HTTP ñaõ trôû thaønh moät caùnh thoâng duïng ñeå truy caäp taøi lieäu treân Internet.

WWW cung caäp moät caùch deã daøng nhaát ñeå truy caäp döõ lieäu treân Internet hoaëc treân maïng Intranet cuûa caùc coâng ty.

A) CAÙC TIEÄN LÔÏI CUÛA VIEÄC SÖÛ DUÏNG DÒCH VUÏ WWW:- Trình duyeät WWW hoã trôï nhieàu kieåu döõ lieäu. Moät

trình duyeät WWW coù theå töï ñoäng taûi xuoáng vaø hieån thò caùc file vaên baûn, hình aûnh, chaïy video, sound clip vaø khôûi chaïy caùc öùng duïng trôï giuùp cho taát caû caùc loaïi file phoå bieán. Ngöôøi söû duïng khoâng caàn bieát trình duyeät taûi xuoáng hoaëc söû duïng caùc file döõ lieäu ôû xa nhö theá naøo chæ ñôn giaûn laø trình duyeät ñaõ giuùp ta trong vieäc taûi xuoáng vaø hieån thò caùc file.

Moät ví duï: Moät WWW client ñang môû moät file aûnh BMP, ngöôøi söû duïng seõ thaáy noù hieån thò ngay laäp töùc noù trong cöûa soå öùng duïng cuûa WWW client. Neáu söû duïng moät öùng duïng khaùc, chaúng haïn nhö FTP seõ chæ taûi file xuoáng vaø löu treân ñóa, ngöôøi söû duïng seõ phaûi chaïy moät öùng duïng khaùc chaúng haïn nhö Paint Bruh ñeå xem noù.

- Trình duyeät WWW hoã trôï nhieàu giao thöùc. Trình duyeät WWW khoâng coù giôùi haïn ñeå truy caäp chæ moät kieåu server. Trình duyeät WWW hoã trôï nhieàu giao thöùc ñeå truy caäp file treân moät FTP server, caùc baûng choïn treân Gopher server, Newgroups vaø taøi nguyeân WWW.

B) GIÔÙI THIEÄU VEÀ GIAO THÖÙC HTTP:HTTP laø moät giao thöùc ñöôïc söû duïng chuû yeáu treân

Internet ngaøy nay. HTTP laø moät giao thöùc ñi tieân phong trong söï phaùt trieån Web. Noù coù moät ñaëc ñieåm chung laø tính khoâng bieân giôùi.

Giao thöùc höôùng ñoái töôïng naøy ñöôïc sinh ra töø söï caàn thieát cho moät giao thöùc toaøn caàu ñeå laøm ñôn giaûn vieäc truy caäp vaøo Internet.

HTTP laø moät giao thöùc client/server naèm ôû taàng öùng duïng cuûa moâ hình phaân taàn Internet. Baèng vieäc môû roäng nhöõng phöông thöùc hay doøng leänh, ngöôøi söû duïng coù theå söû duïng HTTP cho nhieàu chöùc naêng khaùc nhau, keå caû chöùc naêng quaûn lyù heä thoáng teân server vaø caùc ñoái

trang 9

Page 10: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

töôïng phaân taùn. HTTP khoâng ngöøng ñöôïc caûi tieán, daãn ñeán vieäc W3C ñöôïc ñöa ra vaøo naêm 1994 ñaõ phaùt trieån thaønh moät tieâu chuaån chung cho Web.

C) HOAÏT ÑOÄNG CUÛA HTTP:Caùc tieán trình xaûy ra khi Client môû moät taøi lieäu HTNL

treân moät WWW server:1/ Keát noái TCP: Maëc ñònh HTTP server seõ laéng nghe ôû

coång 80. Trình duyeät löïa choïn moät coång cuïc boä (>1024) vaø thöïc hieän moät keát noái TCP ñeán coång moät server tröôùc khi döõ lieäu ñöôïc göûi. Moät HTTP server coù theå laéng nghe ôû moät coång khaùc, tuy nhieân client caàn phaûi cung caáp soâ thöù töï coång chính xaùc ôû URL ñeå coù theå keát noái.

2/ Yeâu caàu phía Client:Doøng yeâu caàu: Chöùa moät caâu leänh yeâu caàu goïi laø

phöông thöùc vaø ñòa chæ URL cuûa ñoái töôïng ñöôïc giaûi quyeát yeâu caàu bôûi phöông thöùc.

+ Phöông thöùc: Ñöôïc söû duïng ñeå chæ thò cho server thi haønh moät coâng vieäc ñaëc bieät. Haàu heát caùc server bao goàm caû IIS chæ hoã trôï 3 phöông thöùc bôûi vì caùc phöông thöùc khoâng ñöôïc thi haønh bôûi haàu heát caùc trình duyeät.

GET: Phöông thöùc naøy chæ thò cho HTTP server göûi ñeán moät ñoái töôïng (caùc Web site, file, hình aûnh…) baèng ñòa chæ URL. Phöông thöùc naøy chæ duøng treân HTTP client.

HEAD: Phöông thöùc naøy cuõng gioáng nhö GET, tuy nhieân noù chæ traû veà thoâng tin header cuûa ñoái töôïng chöù khoâng phaûi toaøn boä döõ lieäu.

POST: Phöông thöùc naøy ñöôïc söû duïng bôûi HTTP client ñeå göûi moät ñoái töôïng leân server.

Ví duï: GET www.microsoft.com/HTTP+ Tröôøng tieâu ñeà cuûa goùi tin: Ñaây laø moät taäp caùc

tröôøng moâ taû client vaø kieåu döõ lieäu ñöôïc göûi.+ Döõ lieäu: Neáu moät client göûi moät döõ lieäu chaúng

haïn moät form ñeán moät server, noù seõ naèm trong phieân naøy cuûa yeâu caàu.

3/ Server traû lôøi:WWW server nhaän moät yeâu caàu vaø quaù trình naøy

caên cöù treân phöông thöùc yeâu caàu chöùa trong doøng leänh yeâu caàu. Server sau ñoù seõ traû lôøi.

Doøng Status : Chæ ra yeâu caàu thaønh coâng hoaëc bò loãi.

Message Header Field: Noù cung caáp caùc thoâng tin veà server vaø kieåu döõ lieäu traû veà.

Döõ lieäu traû lôøi: Ñaây laø döõ lieäu yeâu caàu ôû daïng bit.

4/ Ñoùng keát noái.

trang 10

Page 11: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

D) GIÔÙI THIEÄU VEÀ SECURE SOCKETS LAYER (SSL)SSL cung caáp moät keát noái baûm ñaûm baèng caùch maõ

hoùa vaø giaûi maõ döõ lieäu. Moät SSL-enable server gioáng nhö IIS coù theå keát noái vôùi moät SSL-enable client chaúng haïn nhö trình duyeät Internet Explorer.

Giao thöùc SSL naèm ôû taàng trình dieãn OSI vaø di chuyeån döõ lieäu töø taàng öùng duïng HTTP ñeán taàng chuyeån vaän TCP. Noù chòu traùch nhieäm cho vieäc chöùng nhaän, maõ hoùa vaø kieåm tra tính toaøn veïn cuûa döõ lieäu. Chöùc naêng chöùng nhaän baûo ñaûm raèng döï lieäu ñöôïc göûi ñeán ñuùng moät server caàn göûi vaø server thì baûo ñaûm. Vieäc maõ hoùa döõ lieäu baûo ñaûm döõ lieäu khoâng theå bò ñoïc bôûi baát kyø moät ngöôøi naøo khaùc ngoaøi server nhaän. Giaûi maõ döõ lieäu baûm ñaûm döõ lieäu khoâng bò söûa ñoåi hoaëc thay theá trong quaù trình truyeàn ñi.

Khi moät client keát noái ñeán moät WWW server söû duïng SSL seõ xaûy ra caùc tieán trình sau:

Client daønh laáy chöùng nhaän server: Client vaø Server töï giôùi thieäu veà chuùng laãn nhau baèng thoâng ñieäp HELLO vaø trao ñoåi thoâng tin (chöùa caùc phöông thöùc maõ hoùa) ñeå söû duïng, taïi phieân trao ñoåi thoâng tin, chöùng nhaän server (chöùa moät khoaù coâng khai uûa server) vaø döõ lieäu ngaãu nhieân seõ ñöôïc truyeàn ñi.

Client xaùc minh server: Client xaùc minh chöùng nhaän server töø moät chöùng thöïc vaø sau ñoù söû duïng noù ñeå göûi moät thoâng ñieäp ñeå xaùc thöïc server. Neáu server khoâng chuyeån laïi vieäc xaùc thöïc laø ñuùng, client seõ caûnh baùo cho ngöôøi söû duïng “server is not who it claims to be “ hoaëc coù theå laø moät “trojan” server.

Client/server xaùc nhaän khoùa chöùng thöïc ñeå söû duïng cho phieân naøy: Neáu server traû lôøi laïi thaønh coâng, client vaø server seõ taïo ra moät khoùa bí maät ngaãu nhieân (chæ ra nhö moät Master Key trong ñaëc taû SSL) töø vieäc trao ñoåi döõ lieäu ngaãu nhieân vaø phöông thöùc maõ hoùa ñieån hình (chaúng haïn nhö RSA)

Giaûi maõ döõ lieäu vôùi moät khoùa: Taát caû caùc döõ lieäu göûi ngoaøi keânh SSL thì ñöôïc maõ hoùa vôùi moät khoùa bí maät.

4. Toå chöùc Web site:Caùc Web site phaûi töï nhaäp moät mình coù nghóa laø noù

töï hoã trôï chính noù. Moãi Web site coù theå di chuyeån deán moät maùy khaùc ñeå caân baèng vieäc taûi xuoáng hoaëc chæ laø cho muïc ñích löu thoâng treân maïng. Ñeå laøm ñöôïc vieäc naøy, chuùng phaûi töï hoã trôï mình, töï coù caùc baûo maät rieâng vaø caùc phaïm vi öùng duïng rieâng. Neáu ngöôøi söû

trang 11

Page 12: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

duïng laø moät nhaø cung caáp Internet, hoï seõ muoán thieát keá, di chuyeån vaø coù ngöôøi söû duïng caäp nhaät caùc Web site maø khoâng quaáy raày ñeán caùc site khaùc treân cuøng moät maùy.

Giao thöùc HTTP söû duïng caùc URL ñeå yeâu caàu caùc file töø Web server. Töø khi haàu heát caùc file ñeàu chöùa trong heä thoáng file, IIS caàn chuyeån moät URL sang moät teân ñaày ñuû cuûa file, IIS laøm coâng vieäc naøy cho moãi yeâu caàu. Tuy nhieân, noù seõ ñöa leân ngöôøi quaûn trò ñeå caáu hình server maø URL aùnh xaï ñeán thö muïc ñoù.

Ñeå thieát keá caáu truùc heä thoáng file treân moät maùy maø noù host nhieàu Web site, ngöôøi söû duïng caàn bieát söï khaùc nhau giöõa thö muïc goác (Home Dir), thö muïc goác aûo (Virtual Root) vaø thö muïc con (Sub Dir). Ngöôøi söû duïng cuõng caàn bieát khi naøo thì phaûi söû duïng chuùng.

Home Dir:Moät URL chöùa moät teân mieàn ñang yeâu caàu thö muïc

chuû. Ví duï, URL döôùi ñaây yeâu caàu moät file maëc ñònh trong thö muïc chuû:

http://www.myserver.comCoâng vieäc cuûa ngöôøi quaûn trò caàn phaûi laøm laø

giuùp ñôõ Web server aùnh xaï URL ñeán thö muïc chuû. Trong ví duï treân, thö muïc chuû cuûa Web site naøy seõ ñöôïc aùnh xaï ñeán:

C:\inetpub\wwwrootSub Dir:Sub Dir laø moät thö muïc keá thöøa moät aùnh xaï URL töø

moät caáu truùc heä thoáng file. Ví duï, neáu thö muïc naøy ñaõ toàn taïi:

C:\intetpub\wwwroot\sale3Sau ñoù, URL naøy cuõng ñaõ toàn taïi:http://www.myserver.com/salesThö muïc con khoâng caàn ñöôïc ñònh nghóa ñeán Web

server bôûi ngöôøi quaûn trò heä thoáng. Bôûi vì chæ caàn taïo ra moät thö muïc cha baèng Explorer laø thö muïc seõ ñöôïc taïo, khoâng caàn phaûi ñieàu chænh trong caáu hình IIS.

Virtual Root:Virtual Root laø moät thö muïc con cuûa moät URL maø noù

ñöôïc aùnh xaï ñeán caùc thö muïc trong heä thoáng file maø khoâng thöøa keá söï toàn taïi cuûa caùc heä thoáng file naøy.

Ví duï: Neáu ngöôøi söû duïng muoán site cuûa hoï chöùa trong moät URL ñeán:

C:\inetpub\maketing\website\extenal

trang 12

Page 13: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Thö muïc aûo seõ taïo ra moät Web site hieån thò nhö theå noù laø moät caáu truùc thö muïc khaùc hôn hieän taïi noù coù trong heä thoáng file.

Khi naøo thì caàn söû duïng thö muïc aûo:Thö muïc aûo ñöôïc söû duïng khi thö muïc con khoâng ñöôïc

söû duïng. Bôûi vì thö muïc con khoâng gioáng nhö moät Web server vaø chuùng khoâng coù taát caû chöùc naêng cuûa moät thö muïc aûo, chuùng coù theå ñöôïc duøng ôû moïi nôi. Theâm vaøo ñoù, thö muï con coøn toå chöùc taát caû caùc file chöùa trong moät nôi trung taâm cho caùc Web site.

Caùc thö muïc aûo döôïc duøng khi taát caû caùc file trong thö muïc aûo khoâng theå chöùa ñöôïc treân cuøng moät oå ñóa. Ví duï: Neáu ngöôøi söû duïng coù moät Web site maø lôùn hôn 2 Gb hoï khoâng theå chöùa taát caû chuùng treân cuøng moät oå ñóa. Trong tröôøng hôïp naøy hoï seõ caàn ñeán caùc Web site phaân taùn trong nhieàu thö muïc aûo treân caùc thö muïc ôû moãi oå ñóa. Ñeå laøm ñöôïc ngöôøi söû duïng phaûi chia Web site cuûa hoï leân nhieàu ñóa. Veà maët lyù thuyeát, caùc truy caäp ngaãu nhieân ngang qua nhieàu oå ñóa seõ nhanh hôn caùc truy caäp treân cuøng moät ñóa.

Neáu ngöôøi söû duïng coù nhieàu Web site vaø ñang chia xeû thoâng tin, caùc thö muïc aûo coù theå söû duïng ñeå hoaøn thaønh coâng vieäc naøy. Ví duï, neáu phaûi chia xeû hình aûnh, caû hai Web site cuøng coù moät thö muïc aûo goïi laø Graphic maø noù aùnh xaï tôùi cuøng moät vò trí treân oå ñóa. Ñieàu naøy seõ khoâng laøm ñöôïc vôùi thö muïc con. Söï caäp nhaät caùc file trong thö muïc Graphic seõ aûnh höôûng ñeán caû hai site.

5. Caùc kieåu cuûa baûng thuoäc tính cuûa dòch vuï WWW

Coù 3 kieåu (hoaëc coøn goïi laø lôùp) khaùc nhau cuûa baûng thuoäc tính: Master, Default vaø File. Ngöôøi söû duïng coù theå ñònh caáu hình rieâng cho töøng site cuûa mình moät trong 3 kieåu treân. Nhöng moïi söï thay ñoåi ñeàu coù raøng buoäc vôùi nhau, noù seõ aûnh höôûng ñeán caùc site con vaø caùc file.

Caùc loaïi baûng khaùc nhau cuûa baûng thuoäc tính seõ coù ích veà khía caïnh phaân caáp. Vôùi baûng thuoäc tính Master naèm ôû phaân caáp cao nhaát vaø baûng thuoäc tính File naèm ôû caáp thaáp nhaát.

Master:Caùc baûng thuoäc tính Master quyeát ñònh caùc thuoäc tính

maëc ñònh cuûa caùc Web site aûo ñaõ taïo vôùi söï thieát laäp cuûa IIS, maø caùc Web site naøy quyeát ñònh caùc thuoäc tính cuûa caùc file ñaõ ñöôïc taïo ra trong moãi Web site. Trong suoát quaù trình caøi ñaët, IIS seõ naïp caùc thuoäc tính maëc ñònh cho caùc baûng thuoäc tính Master. Moãi site aûo maø ngöôøi söû

trang 13

Page 14: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

duïng taïo ra seõ keá thöøa vieäc thieát laäp naøy. Neáu hoï thay ñoåi thieát laäp ban ñaàu cuûa baûng thuoäc tính Master, caùc Web site aûo con seõ keá thöøa caùc thieát laäp môùi naøy nhöng caùc Web site aûo taïo tröôùc ñoù seõ giöõ nguyeân.

Default:Quaù trình caøi ñaët seõ taïo ra caùc Web site vôùi caùc

thuoäc tính maëc ñònh cuûa noù. Nhöõng caùc file naøo maø ñöôïc taïo ra vôùi Web site maëc ñònh seõ keá thöøa caùc thieát laäp naøy.

File:Caùc file taïo ra trong thö muïc aûo seõ keá thöøa caùc thieát

laäp cuûa thö muïc aûo ñoù, öùng vôùi caùc file ñöôïc taïo ra trong caùc trang Web maëc ñònh seõ keá thöøa caùc baûng thuoäc tính cuûa Web site ñoù. Sau khi moät file ñöôïc taïo ra thì caùc thuoäc tính ñöôïc caáu hình ôû möùc file.

6. Baûng thuoäc tính WWW:Dòch vuï WWW treân IIS coù theå caáu hình 9 baûng thuoäc

tính sau:Web Site: Söû duïng baûng thuoäc tính Web Site ñeå thieát

laäp söï nhaän bieát Web site, chæ roõ soá keát noái cho pheùp vaø cho pheùp hoaëc caám truy caäp vaøo moät Web site.

Operators: Söû duïng baûng thuoäc tính Operators ñeå ñieàu khieån caùc taøi khoaûn ngöôøi duøng naøo coù quyeàn quaûn trò caùc Web site cuûa ngöôøi söû duïng.

Performance: Söû duïng baûng thuoäc tính Performance ñeå ñieàu chænh cho thaät toát söï thi haønh cuûa caùc Web site.

ISAPI filter: Söû duïng baûng thuoäc tính ISAPI filter chöùa caùc boä loïc ISAPI. Ngöôøi söû duïng coù theå söû duïng ISAPI ñeå chaïy caùc öùng duïng töø xa. Yeâu caàu moät URL maø noù aùnh xaï ñeán moät boä loïc ñang hoaït ñoäng taïi caùc öùng duïng ñoù. Coù theå söû duïng caùc thoâng soâ caøi ñaët cuûa noù ñeå aùnh xaï moät teân file ñeán boä loïc cho pheùp treân moät Web server.

Home Direcory: Söû duïng baûng thuoäc tính Home Direcory ñeå thay ñoåi thö muïc chöùa caùc Web site vaø ñieàu chænh caùc thuoäc tính cuûa noù.

Document: Söû duïng baûng thuoäc tính Document ñeå chæ ñònh moät taøi lieäu maëc ñònh vaø gaùn caùc chöùc naêng maëc ñònh cho Web site.

Directory Security: Söû duïng baûng thuoäc tính Directory Security ñeå caáu hình caùc tính naêng baûo maät cho Web server.

HTTP Header: Söû duïng baûng thuoäc tính HTTP Header ñeå thieát laäp caùc gia trò traû veà cuûa trình duyeät trong phaàn header cuûa moät trang HTML.

trang 14

Page 15: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Custom Error: Söû duïng baûng thuoäc tính Custom Error ñeå lieät keâ caùc thoâng baùo traû veà trình duyeät daønh cho caùc loãi HTTP.

7. Caáu hình WWW- Chia xeû thö muïc, file:Baûng thuoäc tính cuûa thö muïc WWW trong Internet

Service Manager (ISM) cho pheùp ngöôøi quaûn trò chia xeû caùc thö muïc vaø file cho WWW client. Nhöõng thö muïc naøy laø nhöõng thö muïc cuï boä töø phaân vuøng FAT/NTFS hoaëc laø caùc thö muïc töø nhöõng server khaùc maø IIS coù theå truy caäp ñöôïc.

WWW chia xeû keát noái maëc ñònh: Khi maø moät client chæ cung teân server ngay taïi ñòa chæ URL goïi laø thö muïc chuû. Ví duï, neáu moät client môû moät ñòa chæ: http://www.microsofts.com dòch vuï IIS traû veà moät taøi lieäu maëc ñònh trong thö muïc chuû treân www.microsofts server. Caùc thö muïc chia xeû khaùc vôi thö muïc chuû ñöôïc tham chieáu ñeán thö muïc aûo.

- Söû duïng ISM ñeå chia xeû thö muïc:Coù hai hoäp thoaïi hieän ra cuøng vôùi ISM khi ta caáu hình

vieäc chia xe thö muïc WWW. Theû Directory, WWW hieän thò danh saùch taát caû caùc caáu hình thö muïc aûo WWW. Noù cuõng cho pheùp ngöôøi söû duïng thieát laäp caùc thuoäc tính keàm theo cho taát caû caùc thö muïc chia xeû.

+ Taøi lieäu maëc ñònh: File naøy ñöôïc traû veà khi ngöôøi söû duïng môû moät thö

muïc vaø khoâng chæ ñònh teân file. Ñieån hình cho file naøy laø caùc file teân default.htm hoaëc index.htm.

+ Thö muïc ñang duyeät:Neáu ngöôøi söû duïng môû moät thö muïc maø khoâng

chöùa moät taøi lieäu maëc ñònh, server seõ traû veà moät danh saùch caùc file trong thö muïc.

+ Baûo maät:IIS coù nhieàu chöùc naêng baûo maät ñeå giöõ gìn server

vaø döõ lieäu cuûa ngöôøi söû duïng khoûi nhöõng cuoäc xaâm nhaäp baát hôïp phaùp vaø hacker. IIS döïa vaøo söï thieát laäp cuûa Windows NT (TM) vaø moät heä thoáng chöùng nhaän C2. Giöõ an toaøn cho IIS server laø moät söï keát hôïp cuûa vieäc thieát laäp baûo maät cho Windows NT vaø caùc chöùng naêng baûo maät cuûa dòch vuï IIS. Theâm vaøo ñoù neáu server keát noái vôùi Internet, moät boä choïn keânh (rooter) hoaëc böùc töôøng löûa coù theå ñöôïc thieát laäp ñeå cung caáp theâm ñoä an toaøn.

8. Thö muïc aûo: trang 15

Page 16: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Thö muïc aûo laø moät thö muïc phi vaät lyù chöùa trong thö muïc chuû cuûa dòch vuï IIS (WWW hoaëc FTP) nhöng noù xuaát hieän trong suoát ñoái vôùi ngöôøi söû duïng vaøo caùc Web site naøy.

Thö muïc aûo taêng khaû naêng linh hoaït cho vieäc ngöôøi söû duïng quyeát ñònh löu tröõ file ôû ñaâu treân server cuûa hoï. Baèng caùch söû duïng caùc thö muïc aûo ñeå coù theå caäp nhaät vaø truy caäp deã daøng nhaát. Noù cuõng cho pheùp taêng theâm dung löôïng löu tröõ cho Web site maø khoâng caàn phaûi taét server.

Thö muïc aûo coù theá thieát laäp cho caû dòch vuï WWW laãn FTP chaïy treân IIS. Thö muïc aûo coù theå taïo ra caùc thö muïc ñònh vò ôû:

- Treân cuøng moät ñóa: Nhö laø caùc thö muïc chuû WWWroot hoaëc FTProot.

- Moät ñóa ôû moät maùy khaùc trong maïng cuïc boä.- ÔÛ moät ñóa cuûa maùy khaùc treân maïng, maø maùy

naøy phaûi cuøng teân mieàn vôùi maùy coù dòch vuï IIS.a) Thö muïc aûo cuïc boä:Ngöôøi söû duïng coù theå taïo ra caùc thö muïc aûo cuïc boä

cho caùc thö muïc ñöôïc löu tröõ treân baát kyø ñóa naøo treân moät maùy tính ñöôïc caøi ñaët IIS.

Khi caáu hình moäït thö muïc aûo cuïc boä, ngöôøi söû duïng phaûi caøi ñaët moät bieät danh cho thö muïc. Bieät danh naøy coù theå laø teân thö muïc hoaëc moät teân baát kyø naøo khaùc maø noù nhaän dieän moät Web site ñeán ngöôøi söû duïng. Hoï cuõng phaûi cung caáp moät ñöôøng daãn ñaày ñuû cho thö muïc aûo.

b) Thö muïc aûo töø xa:Söû duïng thö muïc aûo töø xa cho caùc thö muïc ñaõ ñöôïc

caøi ñaët treân caùc maùy khaùc vôùi teân mieàn cuûa maùy ñaõ caøi ñaët IIS.

Cuõng nhö ñoái vôùi caùc thö muïc aûo cuïc boä, khi ngöôøi söû duïng caáu hình moät thö muïc aûo töø xa, hoï ñöôïc yeâu caàu taïo moät bieät danh cho thö muïc vaø phaûi cung caáp moät moät ñia chæ cho thö muïc tuaân theo quy öôùc UNC (quy öôùc ñaët teân ñòa chæ toaøn cuïc). Ñeå truy caäp thö muïc vôùi moät UNC, phaûi nhaäp vaøo moät teân cuûa ngöôøi söû duïng vaø password phuø hôïp. Teân ngöôøi söû duïng vaø password seõ ñöôïc söû duïng bôûi ngöôøi truy caäp vaøo döõ lieäu chöùa trong thö muïc aûo.

Chuù yù:Chaéc chaén raèng taøi khoaûn cuûa ngöôøi söû duïng maø

ñaõ thieát laäp seõ cho pheùp truy caäp Internet ñeán moät thö muïc aûo töø xa maø chæ cung caáp moät quyeàn toái thieåu cho

trang 16

Page 17: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

vieäc söû duïng site naøy. Ñöøng neân duøng taøi khoaûn cuûa nhaø quaûn trò ñeå truy caäp caùc thö muïc aûo.

c) Thö muïc aûo töø xa vaø FrontPage:Coâng cuï quaûn lyù vaø soaïn thaûo FrontPage töï ñoäng

quaûn lyù vieäc söû duïng caùc thö muïc aûo. Khi ñöôïc caøi ñaët, FrontPage seõ khôûi taïo caùc thö muïc aûo cho caùc thö muïc chöùa caùc phaàn môû roäng coù theå thöïc thi. Theâm vaøo ñoù, ban coù theå cho pheùp caùc phaàn môû roäng cuûa file chuyeån thaønh caùc ñoái töôïng coù theå thöïc thi ñöôïc baèng caùch ñaùnh daáu vaøo caùc thö muïc chöùa chuùng, chaúng haïn nhö caùc ñoái töôïng môû roäng sau:

Active Server Pages (.ASP)Caùc file Internet database connector (.idc)CGIPhaàn môû roäng ISAPI (.dll)Perl Script (.pl)Chuù yù: bôûi vì FrontPage khoâng hoã trôï ñoái vôùi caùc

vuøng coù noäi dung khoâng lieàn nhau vì vaäy khoâng theå duøng thö muïc aûo ñeå troän caùc vuøng coù noäi dung khoâng lieàn nhau trong FrontPage.

9. Server aûo:Nhieàu teân mieàn coù theå ñöôïc host leân moät maùy ñôn

ñang chaïy IIS baèng chaùch söû duïng server aûo.Vôùi nhieàu server aûo ngöôøi söû duïng coù theå host

nhieàu site Web vaø site FTP leân moät maùy ñôn ñang chaïy IIS, ñieàu naøy coù nghóa laø khoâng caàn caáp moät maùy vaø moät phaàn meàm troïn goùi cho moãi site naøy. Ngöôøi söû duïng ñôn giaûn chæ caàn moät ñòa chæ IP duy nhaát cho moãi teân mieàn ñöôïc phaân coâng ñeán server vaø baèng caùch söû duïng Host Header ngöôøi söû duïng coù theå söû duïng moät ñòa chæ IP cho nhieàu teân mieàn. Tuy nhieân chæ site WWW môùi coù theå söû duïng Host Header. Server aûo cuõng taäp trung hoùa vieäc aùp duïng vaø ñôn giaûn hoùa vieäc naâng caáp caùc phaàn meàm server.

Vieäc host nhieàu server aûo leân cuøng moät maùy coù theå giaûm bôùt söï thi haønh cuûa phía server noùi chung vaø server aûo söû duïng Host Header ñoøi hoûi moät giao thöùc HTTP phieân baûn 1 töông hôïp vôùi trình duyeät Web.

Host Header:Khaû naêng cuûa caùc Host Header cuûa HTTP phieân baûn 1

cho pheùp ngöôøi söû duïng keát hôïp nhieàu teân cuûa maùy Host vôùi chæ moät ñòa chæ IP. IIS söû duïng thoâng tin Host Header ñeå ñoåi ñòa chæ caùc teân khaùc nhau cuûa server aûo. Ñeå söû duïng Host Header ngöôøi söû duïng phaûi chuyeån ñoåi töø Host name thaønh ñòa chæ IP söû duïng caû heä thoáng teân

trang 17

Page 18: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

mieàn (DNS) server hoaëc caùc file cuûa caùc Host. Chöùc naêng cuûa file host laø hoã trôï söï chuyeån ñoåi töø caùc teân Host thaønh caùc ñòa chæ IP.

Chuù yù:IIS cung caáp caùc trình duyeät Web khoâng töông thích vôùi

moät danh saùch caùc server töông thích vôùi ñòa chæ IP cho tröôùc. Khi ngöôøi söû duïng choïn moät server, moät cookie môùi seõ ñöôïc thay theá treân oå ñóa cuûa ngöôøi söû duïng vaø cookie naøy seõ ñöôïc söû duïng cho nhöõng laàn truy caäp sau ñeán server aûo.

10. IIS FTP Server:FTP laø moät giao thöùc ñöôïc duøng ñeå truyeàn nhaän file

giöõa hai maùy treân maïng Internet.FTP laø moät giao thöùc ra ñôøi sôùm nhaát ñöôïc söû duïng

treân maïng TCP/IP vaø maïng Internet. Maëc duø WWW ñaõ thay theá haàu heát caùc chöùc naêng cuûa FTP, FTP vaãn coøn ñöôïc söû duïng ñeå cheùp moät file töø moät client ñeán moät server treân Internet. Khoâng nhö HTTP, FTP söû duïng 2 coång, moät ñeå truyeàn vaø moät ñeå nhaän file. Nhö vaäy FTP vaãn coøn coù hieäu löïc hôn HTTP cho nhöõng taùc vuï ñaëc bieät cuûa vieäc truyeàn file.

Ñeå söû duïng FTP truyeàn file giöõa hai maùy, caû hai maùy ñeàu phaûi coù vai troø rieâng, moät laø FTP Client, moät laø FTP Server. FTP Client ra leänh cho server taûi xuoáng hoaëc ñöa leân moät file cuõng nhö taïo vaø thay ñoåi caùc thö muïc.

FTP söû duïng giao thöùc TCP nhö moät phöông tieän cho taát caû caùc keát noái vaø döõ lieäu trao ñoåi giöõa client vaø server. TCP laø moät phöông thöùc keát noái coù ñònh höôùng, coù nghóa laø coù moät phieân keát noái ñöôïc thaønh laäp giöõa client vaø server tröôùc khi döõ lieäu ñöôïc truyeàn ñi. Söï keát noái coøn laïi naøy hoaït ñoäng trong toaøn boä phieân hoaït ñoäng cuûa FTP. Giao thöùc coù ñònh höôùng naøy raát noåi tieáng veà ñoä tin caäy vaø söï phuïc hoài loãi öùng vôùi caùc ñaëc ñieåm sau:

- Ñieàu khieån luoàng: Bôûi vì caùc client vaø server ñeàu tham gia trong vieäc truyeàn caùc goùi tin vì vaäy caùc vaán ñeà veà vieäc truyeàn tin nhö laø caùc goùi tin laøm traøn boä nhôù vaø laïc maát caùc goùi tin laø khoâng theå xaûy ra.

- Söï chöùng nhaän: Maùy tính göûi caùc goùi döõ lieäu vaø mong chôø moät tín hieäu chöùng nhaän töø caùc maùy tính nhaän. Söï chöùng nhaän naøy kieåm tra xem maùy ñoù ñaõ nhaän ñöôïc goùi tin hay chöa.

- Söï truyeàn laïi: Neáu vieäc truyeàn ñi cuûa maùy tính khoâng nhaän ñöôïc moät tín hieäu ACK öùng vôùi moät khoaûng thôøi gian ñaõ ñònh tröôùc, noù seõ giaû ñònh raèng goùi tin ñoù

trang 18

Page 19: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

ñaõ bò maát hoaëc bò thaát laïc thì sau ñoù noù seõ truyeàn laïi goùi tin ñoù.

Tính tuaàn töï: Taát caû caùc goùi tin seõ ñöôïc ñaùnh soá vaø göûi cuøng luùc, vì theá maùy nhaän seõ bieát caùch toå chöùc döõ lieäu nhaän ñöôïc.

- Checksum: Taát caû caùc goùi tin ñöôïc chöùa trong moät checksum ñeå ñaûm baûo tính toaøn veïn cuûa döõ lieäu. Neáu döõ lieäu bò thaát laïc ôû moät nôi naøo ñoù trong suoát quaù trình truyeàn, checksum seõ chæ ra raèng döõ lieäu nhaän ñöôïc khoâng gioáng vôùi döõ lieäu göûi.

a) Caùc thuoäc tính cuûa FTP treân IIS:Moãi site FTP maø ngöôøi söû duïng taïo ra ñeàu coù moät

baûng thuoäc tính rieâng cuûa noù. Nhöõng caøi ñaët chung hoaëc caùc thuoäc tính cho moãi site ñöôïc hieån thò trong caùc baûng thuoäc tính naøy.

Dòch vuï FTP söû duïng 5 baûng thuoäc tính ñeå caáu hình cho caùc dòch vuï FTP, cuï theå nhö sau:

FTP Site. (Site FTP)Security Account. (Baûo maät taøi khoaûn)Messages. (Thoâng baùo)Home Directory. (Thö muïc goác)Directory Secuity. (Baûo maät thö muïc)Trong suoát quaù trình caøi ñaët, IIS gaùn caùc giaù trò maëc

ñònh cho vieäc thieát laäp treân caùc baûng thuoäc tính khaùc nhau. Ngöôøi söû duïng coù theå duøng chung caùc taøi lieäu treân site FTP cuûa hoï maø khoâng phaûi thay ñoåi caùc thieát laäp maëc ñònh naøy nhöng cuõng deã daøng trong vieäc thay ñoåi caùc thuoäc tính ñöôïc thieát laäp theo yù thích.

Moãi site FTP ñöôïc taïo ra vaø moãi file öùng vôùi moãi site FTP ñeàu coù moät thuoäc tính rieâng maø ngöôøi söû duïng coù theå ñieàu chænh ñeå tuyø bieán nhöõng caáu hình thieát laäp teân töøng site moät hoaëc töøng file moät. Hoï cuõng coù theå ñieàu chænh vieäc thieát laäp caùc thuoäc tính maëc ñònh caùc site vaø caùc file con ñaõ thieát laäp tuyø bieán tröôùc ñoù.

Coù 3 kieåu (hoaëc caùc lôùp) cuûa caùc baûng thuoäc tính FTP vôùi IIS vaø chuùng töông töï nhö 3 lôùp cuûa baûng thuoäc duøng treân caùc site WWW. Caùc lôùp thuoäc tính FTP goàm: Master, Dedault vaø File. Ngöôøi söû duïng coù theå tuyø bieán caáu hình cuûa 3 kieåu thuoäc tính naøy cuûa baûng thuoäc tính nhöng khi thay ñoåi caáu hình ôû moät nôi naøo ñoù thì noù cuõng aûnh höôûng ñeán caùc site vaø caùc file con maø hoï ñaõ taïo.

b) Baûo maät FTPCaùc ñaëc tröng baûo maät cuûa dòch vuï FTP cuõng gioáng

nhö dòch vuï WWW. Khaùc nhau cô baûn ôû choã khoâng coù giao

trang 19

Page 20: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

thöùc cho vieäc thieát laäp baûo maät döõ lieäu cuûa FTP gioáng nhö HTTP vaø SSL

- Truy caäp phía server: Dòch vuï i coù theå ñöôïc caáu hình treân trang thuoäc tính Security Account cho caùc keát noái ñeán client vaø nhöõng ñòa chæ IP ñaëc bieät. Ñaây laø moät caùch toát ñeå ngaên chaën nhöõng ngöôøi söû duïng khoâng mong muoán truy caäp vaøo server.

- Truy caäp phía ngöôøi duøng: Daønh cho caùc server vôùi caùc file chung, caùc client thöôøng keát noái döôùi moät teân ngöôøi duøng aån danh. Neáu dòch vuï FTP ñöôïc caáu hình cho pheùp ñieàu naøy trong thuoäc tính Security Account, noù seõ aùnh xaï teân ngöôøi duøng aån danh ñeán moät caáu hình taøi khoaûn cuûa ngöôøi söû duïng Windows NT. Taøi khoaûn maëc ñònh taïo ra laø IUSR_computername vaø ñöôïc söû duïng bôûi IIS.

Neáu cho pheùp söû duïng teân ngöôøi duøng aån danh bò taét. Ngöôøi söû duïng seõ ñöôïc cung caáp moät teân ngöôøi duøng chính xaùc. Teân ngöôøi duøng naøy phaûi ñuùng laø moât taøi khoaûn Windows NT ôû FTP Server hoaëc trong moät mieàn maø FTP Server cung caáp.

- Truy caäp taøi nguyeân FTP: Dòch vuï FTP coù theå caáu hình treân trang thuoäc tính Security Directory ñeå cho pheùp Client chæ coù theå ñoïc hoaëc ghi leân file trong moät thö muïc ñöôïc chia xeû.

- Truy caäp File: Neáu caùc yeâu caàu ñaõ qua caùc kieåm tra baûo maät tröôùc ñoù, dòch vuï FTP seõ ñöa caùc yeâu caàu naøy ñeán heâ thoáng file ñeå ñaït ñöôïc taøi nguyeân. Dòch vuï FTP ñoùng vai troø cuûa ngöôøi söû duïng FTP Client khi taïo ra caùc yeâu caàu. Neáu heä thoáng file töø choái truy caäp ñeán taøi nguyeân, FTP server seõ traû veà khoaûng 550 teân file “Access Denied” (töø choái truy caäp). Caùc truy caäp file ñöôïc caáu hình baèng caùch söû duïng File Manager hoaëc caùc thuoäc tính file trong Explorer.

V. APACHE WEB SERVER:1. Giôùi thieäu veà Apache Web Server:Apache laø moät phaàn meàm Web server ñöôïc cung caáp

bôûi taäp ñoaøn Apache Group. Ñaây laø moät Web server ñöôïc hoã trôï ñeå chaïy chuû yeáu treân UNIX va LINUX vaø raát ñöôïc phoå bieán bôûi tính chaët cheõ, uyeån chuyeån vaø linh hoaït. Hieän nay Apache laø moät Web server ñang quaûn lyù hôn 50% soá Web site ñang coù treân theá giôùi.

2. Toå chöùc Web site:

trang 20

Page 21: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Tröôùc khi baét ñaàu xaây döïng moät Web site, ngöôøi söû duïng coù theå muoán tìm hieåu toå chöùc cuûa noù. Khi coù nhieàu hôn caùc khaû naêng suy nghó veà caùc caùch toå chöùc caáu truùc moät Web site, ngöôøi söû duïng coù theå suy nghó veà noù nhö moät vieãn caûnh ñi laïi. Trong nhöõng suy nghó theâm cuûa noù veà khía caïnh naøy, seõ naûy sinh ra nhöõng caâu hoûi: Ngöôøi söû duïng coù theå laøm gì ñeå deã daøng giöõ gìn Web site cuûa mình? Caùc quy öôùc naøo seõ laøm ñôn giaûn Web site cuûa hoï?

3. Caøi ñaët Apache treân Windows:Chaïy file Apache.msi ñaõ taûi Apache veà, ngöôøi söû duïng

seõ phaûi nhaäp caùc thoâng tin sau:- Coù hay khoâng vieäc chaïy Apache cho taát caû moïi

ngöôøi söû duïng (nhö moät dòch vuï) hoaëc caøi ñaët Apache ñeå chaïy treân moät cöûa soå giao tieáp khi choïn shortcut khôûi ñoäng Apache.

- Teân Server, teân mieàn vaø taøi khoaûn email cuûa ngöôøi quaûn trò.

- Teân thö muïc ñeå caøi Apache vaøo (maëc ñònh laø C:\Program Files\Apache Group\Apache maëc duø ngöôøi söû duïng coù theå thay ñoåi sang moät thö muïc baát kyø maø hoï muoán)

- Kieåu caøi ñaët. Chöùc naêng “Complete” seõ caøi ñaët moïi thöù, bao goàm caû maõ nguoàn neáu ngöôøi söû duïng ñaõ taûi veà goùi –srm.msi. Choïn caøi ñaët “Custom” neáu khoâng muoán choïn caøi ñaët taøi lieäu hoaëc maõ nguoàn töø goùi caøi ñaët naøy.

Trong suoát quaù trình caøi ñaët Apache seõ caáu hình caùc file trong thö muïc conf cho thö muïc löïa choïn caøi ñaët cuûa ngöôøi söû duïng, tuy nhieân neáu baát kyø nhöõng file naøo trong thö muïc naøy ñaõ toàn taïi chuùng seõ khoâng bò cheùp choàng leân.

Sau khi caøi ñaët xong, ngöôøi söû duïng seõ phaûi söûa ñoåi caùc file caáu hình trong thö muïc conf. Nhöõng file naøy seõ ñöôïc caáu hình trong suoát quaù trình caøi ñaët ñeå saün saøng cho Apache chaïy töø thö muïc maø hoï ñaõ caøi ñaët vaøo vôùi caùc taøi lieäu phuïc vuï töø thö muïc con htdocs. Coù raát nhieàu chöùc naêng tröôùc khi baét ñaàu thöïc söï söû duïng Apache. Tuy nhieân, ñeå vieäc khôûi ñoäng nhanh choùng caùc file naøy neân laøm vieäc theo caùc caøi ñaët maëc ñònh.

Neáu ngöôøi söû duïng thaùo caøi ñaët Apache khoûi heä thoáng, caùc caáu hình vaø caùc file log seõ khoâng ñöôïc gôõ ra. Ngöôøi söû duïng phaûi seõ caàn phaûi xoùa caùc caây thö muïc ñaõ caøi ñaët (maëc ñònh laø C:\Program File\Apache Group\Apache) neáu ngöôøi söû duïng khoâng muoán giöõ caùc caáu hình cuûa hoï vaø caùc file Web khaùc. Töø khi fie httpd.conf ñaõ ñöôïc caáu hình ñeå söû duïng Apache, ngöôøi söû duïng cuõng

trang 21

Page 22: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

phaûi phaûi gôõ boû noù vaø caùc file khaùc maø ñaõ ñöôïc taïo cuõng nhö baát kyø caùc file log naøo maø Apache ñaõ taïo.

4. Chaïy Apache treân Windows:a) Chaïy nhö moät dòch vuï: Ñaây laø caùc toát nhaát neáu

muoán Apache töï ñoäng khôûi ñoäng khi khôûi ñoäng maùy vaø giöõ Apache vaãn chaïy khi ñaõ log-off.

Ñeå khôûi ñoäng Apache nhö moät dòch vuï, tröôùc heát caàn phaûi caøi ñaët Apache nhö moät dòch vuï. Nhieàu dòch vuï Apache coù theå ñöôïc caøi ñaët vôùi moãi teân vaø caáu hình khaùc nhau. Ñeå caøi ñaët moät dòch vuï Apache maëc ñònh coù teân “Apache”. Choïn “Install a Sevice for All User” khi baét ñaàu bung goùi caøi ñaët Apache. Sau khi caøi xong coù theå khôûi ñoäng dòch vuï Apache baèng caùch môû cöûa soå Service, choïn Apache, nhaép chuoät vaøo Start, Apache seõ baét ñaàu chaïy, aån treân maøn hình. Sau ñoù coù theå ngöøng Apache baèng caùch nhaép chuoät vaøo Stop. Coù moät löïa choïn khaùc ñeå söû duïng dòch vuï Apache töø caùc doøng leänh sau taïi cöûa soå giao tieáp:

Net start Apache Net Stop ApacheSau khi khôûi ñoäng Apache, ngöôøi söû duïng coù theå

kieåm tra noù baèng caùch söû duïng thuû tuïc nhö sau ñeå chaïy treân cöûa soå giao tieáp:

Apache –n “service name”Ñeå chaéc chaén vieäc ñang söû duïng caùc dòch vuï ñöôïc

caáu hình maëc ñònh cuûa Apache.Coù nhieàu dòch vuï khaùc cuûa Apache ñöôïc caøi ñaët vaø

chaïy nhö moät dòch vuï. Caùc doøng leänh sau seõ khôûi ñoäng, khôûi ñoäng laïi, Taét vaø Ngöøng caùc dòch vuï:

- Apache –n “service name” –k start.- Apache –n “service name” –k restart.- Apache –n “service name” –k shutdown.- Apache –n “service name” –k stop.Kyù hieäu chuyeån ñaûo –n ñeå chæ caùc dòch vuï Apache

maëc ñònh, coøn khi khoâng coù –n maø chæ coù –k doøng leänh seõ chæ ñònh raèng Apache ñang chaïy treân moät cöûa soå giao tieáp, tröôøng hôïp naøy chæ yeâu caàu ñoái vôùi caùc teân dòch vuï cuûa Apache coù chöùa khoaûng traéng.

Ngoaøi ra ñeå Stop Apache treân cöûa soå giao tieáp coøn coù theå aán toå hôïp phím Ctrl + C hoaëc Ctrl + Break.

b) Chaïy Apache treân cöûa soå giao tieáp: Moät khi ñoùng cöûa soå giao tieáp seõ keát thuùc vieäc

chaïy Apache.Taïi bieåu töôïng Start menu vaø trình Windows NT Service

Manager coù theå cung caáp moät giao dieän ñôn giaûn ñeå

trang 22

Page 23: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

quaûn trò Apache. Nhöng deã daøng nhaát ñeå laøm vieäc laø töø doøng leänh.

Khi laøm vieäc vôùi Apache ñieàu quan troïng nhaát laø vieäc tìm caùc file caáu hình. Ngöôøi söû duïng coù theå chæ ra file caáu hình baèng hai caùch (duøng caùc doøng leänh):

* -f chæ ñeán ñöôøng daãn moät file caáu hình:apache –f c:\myserver\conf\my.confapache –f test\test.conf* -n ñöôøng daãn ñeán moät file caáu hình cuûa moät dòch

vuï Apache ñaõ ñöôïc caøi ñaët.apache –n “service name”Trong caùc tröôøng hôïp treân, Server Root phaûi ñöôïc thieát

laäp trong file caáu hình.Neáu ngöôøi söû duïng chæ ra moät teân file caáu hình vôùi –

n vaø –f. Apache seõ söû duïng teân file ñöôïc bieân dòch ôû trong server, thöôøng laø “conf/httpd.conf”. Goïi ñeán Apache vôùi kyù hieäu chuyeån ñaûo –v seõ hieån thò caùc giaù trò ñaõ ñaùnh nhaõn SERVER-CONFIG-FILE. Apache seõ quyeát ñònh ServerRoot cuûa noù baèng caùc caùch sau:

- Moät chæ thò SeverRoot qua kyù hieäu chuyeån ñaûo –c.- Kyù hieäu chuyeån ñaûo –d treân doøng leänh.- Thö muïc ñang laøm vieäc hieän thôøi.- Moät khoùa registry ñöôïc taïo neáu ngöôøi söû duïng caøi

ñaët nhò phaân.- SeverRoot ñöôïc bieân dòch beân trong server.SeverRoot ñöôïc bieân dòch beân trong server thöôøng laø

“/apache”. Neáu goïi ñeán Apache vôùi kyù hieäu chuyeån ñaûo –v seõ hieån thò caùc giaù trò ñöôïc ñaùnh nhaõn gioáng nhö laø cuûa “HTTPD Root”.

Khi goïi ñeán Apache töø trình ñôn Start. Apache thöôøng boû qua caùc thoâng soá vì theá söû duïng khoaù registry laø moät kyõ thuaät vaãn ñöôïc öa thích hôn cho Apache.

Trong quaù trình caøi ñaët, moät khoùa registry seõ ñöôïc taïo, ví duï:HKEY_Local_machine\Sofware\ApacheGroup\Apache\1.3.13\ServerRoot

Khoùa naøy ñöôïc bieân dòch vaøo trong server vaø coù theå cho pheùp kieåm tra caùc phieân baûn môùi maø khoâng taùc ñoäng ñeán phieân baûn hieän thôøi. Dó nhieân, phaûi chaéc raèng khoâng caøi ñeø phieân baûn môùi leân phieân baûn cuõ trong heä thoáng file.

Giaù trò cuûa khoùa naøy laø thö muïc “ServerRoot” chöùa trong thö muïc Conf. Khi Apache khôûi ñoäng, noù seõ ñoïc file httpd.conf töø thö muïc naøy. Neáu thö muïc naøy chöùa chæ thò ServerRoot maø noù khaùc vôùi thö muïc ñang toàn taïi trong khoùa registry, Apache seõ queân khoùa registry vaø söû duïng

trang 23

Page 24: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

thö muïc ñöôïc thieát laäp trong file caáu hình. Neáu ngöôøi söû duïng cheùp moät thö muïc Apache hay caùc file caáu hình ñeán moät nôi khaùc, noù seõ vaãn coøn cho ñeán khi caäp nhaät laïi thö muïc ServerRoot trong file httpd.conf ñeán moät nôi khaùc.

Ñeå chaïy Apache töø doøng leänh nhö moät öùng duïng giao tieáp, söû duïng doøng leänh: apache

Apache seõ ñöôïc baét ñaàu vaø seõ vaãn chaïy cho ñeán khi ngöôøi söû duïng nhaán toå hôïp phím Ctrl – C.

Ñeå kieåm tra vieäc thieát laäp caùc thoâng soá cho file caáu hình duøng leänh:

apache –tLeänh naøy ñöôïc söû duïng ñeå thay ñoåi caùc file caáu hình

khi Apache vaãn coøn ñang chaïy. Ngöôøi söû duïng coù theå taïo ra caùc thay ñoåi, xaùc nhaän vieäc thay ñoåi laø toát baèng leänh “apache –t”, sau ñoù khôûi ñoäng laïi Apache vôùi “apache –k restart”. Apache seõ ñoïc laïi caùc file caáu hình cho pheùp thöïc hieän baát kyø moät tieán trình naøo ñeå hoaøn thaønh maø khoâng xaûy ra giaùn ñoaïn. Baát kyø moät yeâu caàu naøo cuõng seõ ñöôïc phuïc vuï vôùi vieäc söû duïng caáu hình môùi.

5. Kieåm tra Apache treân Windows:Chaïy Command Prompt danh saùch Program cuûa trình ñôn

Start. Choïn thö muïc ñaõ caøi ñaët Apache vaøo vaø goõ leänh

apache vaø ñoïc caùc thoâng baùo loãi (neáu coù). Sau ñoù xem laïi file error.log cho caùc caáu hình bò thieát laäp sai. Neáu ngöôøi söû duïng chaáp nhaän maëc ñònh khi caøi ñaët Apache, caùc doøng leänh seõ laø:

c:cd "\program files\apache group\apache"apacheWait for Apache to exit, or press Ctrl+Cmore <logs\error.logSau khi xem file error.log ngöôøi söû duïng seõ thaáy moät

vaøi vaán ñeà bò loãi vaø hoï coù theå söûa chöõa vaø khôûi ñoäng laïi moät laàn nöõa.

Sau khi khôûi ñoäng, Apache seõ chaïy (nhö ôû cöûa soå giao tieáp hoaëc nhö moät dòch vuï) vaø seõ baét ñaàu laéng nghe ôû coång 80, tröø phi ngöôøi söû duïng thay ñoåi Port, Listen hoaëc BindAddress (trong file caáu hình). Haõy thöïc hieän keát noái ñeán server vaø truy caäp trang Web maëc ñònh baèng caùch môû trình duyeät vaø nhaäp vaøo URL sau:

http://localhost/Trình duyeät seõ traû laïi moät trang Welcome vaø moät lieân

keát ñeán soå höôùng daãn Apache nhö sau:

trang 24

Page 25: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Neáu khoâng ngöôøi söû duïng seõ nhaän ñöôïc moät thoâng baùo loãi, coù theå xem laïi file error.log trong thö muïc log. Neáu maùy tính khoâng noái maïng, hoï coù theå söû duïng URL sau ñaây:

http://127.0.0.1/Moät khi caùc caøi ñaët cô sôû ñang laøm vieäc, ngöôøi söû

duïng phaûi caáu hình caùc thuoäc tính cuûa noù baèng caùch söûa ñoåi noäi dung caùc file trong thö muïc conf.

6. Virtual Host:Vitual Host laø moät söùc maïnh thaät söï cuûa Apache.

Virtual Host cho pheùp Apache Web Server chaïy cuøng luùc nhieàu Web site. Apache laø moät HHTP server ñaàu tieân cung caáp caùc hoã trôï cho vieäc xaây döïng moät virtual site. Trong khi caùc server cuûa NCSA vaø caùc server khaùc cuõng cung caáp söï hoã trôï virtual site nhöng Apache cung caáp moät khaû naêng thi haønh toát hôn vaø coù nhieàu ñieåm ñaëc tröng hôn caùc server khaùc.

Chæ môùi nhìn qua, döôøng nhö söï thuaän lôïi chính cuûa virtual site laø chæ ñeå toâ ñieåm, noù cho pheùp nhieàu Web site ñöôïc ñaùnh ñòa chæ teân mieàn cuûa noù treân caùc maùy ñôn ñaõ ñöôïc chia xeû. Tuy nhieân söï thuaän lôïi cuûa noù nhieàu keát quaû roõ raøng naèm trong caùch quaûn trò Web site vaø caùch nhöõng maùy khaùc söû duïng noù. Moät Virtual host thöôøng ñöôïc taïo ra nhaèm muïc ñích nhö sau:

- Khaùch haøng coù theå deã daøng truy caäp caùc Web site cuûa mình treân caùc server cho thueâ. Töø khi ngöôøi thueâ server coù theå söû duïng teân mieàn cuûa chính mình, caùc ñòa chæ coù khuynh höôùng ngaén ñi. Ñieàu naøy ñaõ giuùp ñôõ vieäc ñöa ra tính chuyeân nghieäp ñoàng nhaát treân theá giôùi. Nhöõng ngöôøi söû duïng thích nhôù nhöõng ñòa chæ ngaén hôn

trang 25

Page 26: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

töø khi teân mieàn coù moät vaøi söï thích hôïp vôùi teân cuûa caùc taäp ñoaøn coâng ty.

- Ruùt goïn toái ña caùc maùy tính vaø phaàn cöùng maïng, nhieàu site toác ñoä chaäm coù theå naèm ôû taïi moät maùy ñôn, ñieàu naøy laøm giaûm bôùt giaù thaønh cuûa vieäc ñöa moät site leân maïng.

- Giaûm bôùt giaù thaønh veà con ngöôøi keát hôïp vôùi caùc heä thoáng quaûn trò. Thay cho vieäc quaûn lyù vaø caáu hình moät server chuyeân duïng cho caùc teân mieàn. Moät Web server chæ caàn duy trì vaøi file caáu hình vaø moät soá caùc box. Ñieàu naøy seõ daãn ñeán vieäc giaûm moät soá heä thoáng caàn ñeå duy tu noù, nhö vaäy vieäc duy trì moät maûng seõ ñôn giaûn hôn vaø ít toán keùm hôn.

Bôûi vì haàu heát caùc Web site khi taïo ra ñeàu khoâng ñuû ñöôøng truyeàn löu thoâng ñeå söû duïng heát caùc taøi nguyeân treân moät maùy ñôn, ñieàu ñoù laø söï khaùt khao töø moät ngöôøi quaûn trò caù nhaân cho pheùp moät server ñôn giaûn treân maïng vaø chaïy nhö nhieàu maùy khaùc nhau thay vì daønh cho phaàn cöùng vaø tieàn baïc ñeå moãi site ñöôïc ñöa leân, moät vaøi server caáu hình caùc leänh ñeå ñöa ra caùc keát quaû nhö nhau: moät virtual site. Bôûi vì phí toån ñeå caøi ñaët moät server coù theå chia xeû cho nhieàu site, thôøi gian ñeå caáu hình vaø quaûn lyù Web site ñöôïc giaûm ñi raát nhieàu.

Virtual host ñaõ ñem laïi moät khía caïnh chaéc chaén cuûa vieäc taïo ra moät trang Web di ñoäng. Khi moät site laø aûo, noù deã daøng di chuyeån ñeán moät Web server khaùc trong cuøng moät maïng hoaëc ôû moät nôi naøo khaùc. Ñaây chính laø vaán ñeà cuûa vieäc chuyeån choã caùc trang HTML cuûa caùc site ñeán moät maùy môùi vaø ñieàu chænh caùc thoâng tin DNS (Domain Name Server) cuûa site ñöa leân moät server môùi. Ñeå vieäc thích nghi vôùi DNS ñöôïc caäp nhaät, ñôn giaûn chæ caàn taïo ra söï ñoåi höôùng treân server cuõ . Ñieàu naøy cho pheùp söï löu thoâng ñöôïc troâi chaûy maø khoâng coù söï sai soùt, ñoù laø moät vaán ñeà quan troïng vôùi caùc site ñang lôùn maïnh ñang ñöôïc löu thoâng ñeå taïo ra kinh doanh.

Veà maët lòch söû, khi ngöôøi söû duïng muoán moät site ñang host söû duïng teân mieàn cuûa hoï, söï löïa choïn coù theå ñöôïc laø mua hoaëc thueâ moät maùy tính vaø duøng noù ñeå caáu hình nhö moät Web server. Phaûi chòu caùc phí toån ñeå tieâu toán cho vieäc quaûn lyù server naøy. Caùc phí toån naøy deã thöôøng laø raát lôùn, vieäc naøy ñaõ thuùc ñaåy caùc nhaø cung caáp dòch vuï Internet (ISP) theâm vaøo caùc caùch ñeå hoã trôï nhieàu Web site treân moät host, ñieàu naøy daãn ñeán moät vaøi giaûi phaùp gaàn ñaây, chaúng haïn nhö Home Page Approach.

Home Page Approach taïo ra moät ñòa chæ gioáng nhö:

trang 26

Page 27: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

http://www.isp.dom/~name.Home Page Approach laø moät caùch thích hôïp ñeå phuïc vuï

caùc trang ngöôøi duøng cuïc boä. Nhöng khi duøng noù ñeå phuïc vuï cung caáp thoâng tin lôùn vaø ñang ñöôïc truy caäp thöôøng xuyeân bôûi moät soá lôùn ngöôøi söû duïng thì vieäc naøy seõ taïo ra moät ñòa chæ toài maø raát khoù nhôù, teân nhaïp vaøo daøi, deã xaûy ra sai soùt phía ngöôøi söû duïng vaø troâng khoâng ñöôïc chuyeân nghieäp laém.

Xaây döïng moät virtual host:Caùc phaïm vi lieân quan cuûa virtual host, virtual site vaø

multihomed server thoâng thöôøng ñöôïc söû duïng thay theá cho nhau. Ñeå deã hieãu hôn, chæ caàn suy nghó chuùng nhö sau:

Ñeå taïo moät virtual site, thì caàn phaûi caáu hình moät virtual host, ñeå virtual host laøm vieäc caàn phaûi taïo moät mutihomed server, nhö vaäy roõ raøng laø coù söï khaùc nhau giöõa chuùng.

Moät maùy tính multihomed laø moât maùy tính coù theå traû lôøi cuøng moät luùc ñeán nhieàu ñòa chæ IP. Moät maùy tính maøy coù theå ñöôïc truy caäp bôûi nhieàu teân (chaúng haïn nhö www. mailhost.foo.com vaø www.foo.com) maø noù thi haønh cho caùc ñòa chæ IP nhö nhau khoâng theå laø moät maùy tính Multihomed.

Vieäc ñaët bí danh, moät khaû naêng cung caáp bôûi DNS trong moät baûng ghi taøi nguyeân CNAME , hoaëc lieät keâ caùc teân maùy tính treân etc/host/file ñaèng sau caùc ñòa chæ IP thì chæ tieän lôïi cho ngöôøi söû duïng ñang truy caäp vaøo moät taøi nguyeân treân maïng. Thoâng thöôøng ngöôøi ta maát nhieàu thôøi gian ñeå nhôù teân, vaø moät vaøi teân chaúng haïn nhö WWW hoaëc FTP thì laø tieâu chuaån ñaëc tröng cho caùc maùy tính maø noù ñöa leân maïng caùc dòch vuï vôùi teân töông töï. Ngöôøi söû duïng chæ caàn nhôù teân mieàn nôi caùc taøi nguyeân nôi caùc taøi nguyeân ñoù söû duïng teân truyeàn thoáng (chaúng haïn www.aple.com, www.mailhost.com hoaëc ftp.aple.com ) Moät maùy Multihomed caàn nhieàu hôn theá, noù phaûi traû lôøi cho cuøng luùc hai hoaëc nhieàu ñòa chæ IP chaúng haïn ñòa chæ IP 1.2.3.4 laø ñòa chæ ñöôïc aán ñònh bôûi maïng laøm vieäc Internet cuûa ngöôøi söû duïng cung caáp khi hoï sign up vôùi chuùng.

7 .Virtual site:Virtual site laø moät Web site maø noù cuøng naèm treân

moät server vôùi caùc Web site khaùc. Moãi Web site thì ñöôïc truy caäp baèng teân cuûa chuùng vaø chia xeû taát caû taøi nguyeân phaàn cöùng vôùi caùc virtual site khaùc. Maëc duø taát caùc yeâu caàu ñeàu ñöôïc traû lôøi baèng caùc xöû lyù nhö nhau treân HTTP server, nhöng caùc trang chuû khaùc nhau ñöôïc traû

trang 27

Page 28: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

veà cho moãi site phuï thuoäc vaøo teân hoaëc ñòa chæ IP söû duïng khi truy caäp caùc thoâng tin.

Moät vaán ñeà veà maïng khaùc laø vieäc phaûi ñaùnh ñòa chæ tröôùc khi coù theå multihome laø DNS. DNS cung caáp moät teân maùy ñeán dòch vuï chuyeån sang IP. Khi teân maùy ñöôïc ñaùnh soá, con ngöôøi thích söû duïng teân maùy hôn. DNS chuyeån caùc teân sang soá vaø caùc soá sang teân. Söï thay ñoåi naøy coù yù nghóa laø neáu ngöôøi söû duïng keát noái vôùi Internet, vaø ñang chaïy vôùi moät teân server . Neáu khoâng thì ngöôïc laïi khoâng moät ai khaùc chaïy noù. Neáu ngöôøi söû duïng khoâng phaûi ñang chaïy vôùi DNS cuûa chính mình, hoï seõ caàn phaûi ngang haøng vôùi quyeàn quaûn trò maïng cuûa chính mình ñeå thi haønh baát kyø söï theâm vaøo hoaëc thay ñoåi DNS.

8. Caáu hình Apache treân Windows:a) Caùc file caáu hình cuûa Apache server:Web server seõ ñoïc 3 file chöùa caùc chæ thò caáu hình.

Baát kyø moät chæ naøo naøo ñöôïc hieån thò trong caùc file naøy ñeàu seõ ñöôïc thöïc hieän.

Conf/httpd.conf: Chöùa caùc chæ thò maø noù ñieàu khieån söï thi haønh cuûa server. Teân file coù theå ñöôïc löôùt qua vôùi kyù hieäu khaû chuyeån –f.

Conf/srm.conf: Chöùa caùc chæ thò maø noù ñieàu khieån söï chæ ñònh caùc taøi lieäu maø server cung caáp cho caùc client. Teân file coù theå ñöôïc löôùt qua vôùi chæ thò ResourceConfig.

Conf/access.conf: Chöùa caùc chæ thò maø noù ñieàu khieån söï truy caäp caùc taøi lieäu. Teân file coù theå ñöôïc boû qua vôùi chæ thò AccessConfig.

b) Thieát laäp caáu hình Apache treân Windows:Apache ñöôïc caáu hình bôûi caùc file trong thö muïc conf.

Caùc file naøy cuõng gioáng nhö caùc file ñöôïc söû duïng ñeå caáu hình cho Unix nhöng coù moät vaøi chæ thò khaùc cho Apache treân Windows.

Quaù trình caáu hình seõ ñöôïc baét ñaàu baèng caùch tham khaûo httpd.conf vaø caùc chæ thò cuûa noù. Maëc duø caùc file access.conf vaø srm.conf coøn toàn taïi song chuùng laø nhöõng file cuõ maø khoâng ñöôïc söû duïng nhieàu bôûi haàu heát caùc nhaø quaûn trò vaø ngöôøi söû duïng seõ khoâng tìm thaáy baát kyø chæ thò naøo ôû ñoù.

Httpd.conf chöùa raát nhieàu caùc tö lieäu cuûa chính noù, ñöôïc sinh ra bôûi caùc chæ thò caáu hình maëc ñònh göûi gaém khi khôûi ñoäng vôùi Apache server. Baét ñaàu baèng caùch ñoïc caùc lôøi chuù thích ñeå hieåu file caáu hình vaø laøm moät soá thay ñoåi nhoû, khôûi ñoäng laïi Apache trong moät cöûa soå giao tieáp vôùi moãi thay ñoåi. Neáu ngöôøi söû duïng taïo ra moät

trang 28

Page 29: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

loãi, noù seõ deã daøng sao löu ñeå ñònh daïng laàn laøm vieäc cuoái cuøng .

Caùc khaùc nhau cuûa Apache treân Windows chính laø:+ Bôûi vì Apache treân Windows thì ñang luoàng, noù khoâng

söû duïng caùc tieán trình rieâng bieät cho moãi yeâu caàu nhö laø cuûa Unix. Thay cho vieäc thöôøng chæ coù 2 tieán trình ñang chaïy: Moät tieán trình cha vaø moät tieán trình con ñeå xöû lyù caùc yeâu caàu. Vôùi tieán trình con moãi yeâu caàu ñöôïc xöû lyù bôûi moät luoàng rieâng.Vì theá tieán trình quaûn lyù caùc chæ thò laø khaùc nhau:

+ Caùc chæ thò maø chaáp nhaän caùc teân file nhö caùc ñoái soá phaûi söû duïng caùc teân file kieåu Windows thay cho caùc teân file Unix. Tuy nhieân, bôûi vì Apache server söû duïng caùc teân file kieåu Unix beân trong, phaûi tieán haønh caét bôùt, khoâng caét phaàn sau. Caùc kyù töï ñieàu khieån coù theå ñöôïc söû duïng, neáu boû qua, kyù töï ñieàu khieån vôùi Apache khaû thi seõ ñaûm nhaän.

+ Apache treân Windows coù khaû naêng naïp caùc moâ ñun ngay khi chay maø khoâng bieân dòch laïi server. Neáu Apache bieân dòch bình thöôøng, noù seõ caøi ñaët moät soá moâ ñun tuyø choïn trong thö muïc /module, ñeå kích hoaït chuùng hoaëc caùc moâ ñun khaùc söû duïng leänh sau ñaây:

LoadModule status_module modules/mod_status.so+ Apache cuõng coù theå naïp caùc phaàn môû roäng ISAPI

(caùc dòch vuï öùng duïng Internet) chaúng haïn caùc öùng duïng ñöôïc söû duïng bôûi Microsoft IIS vaø caùc server Windows khaùc. (Chuù yù: Apache khoâng naïp caùc boä loïc ISAPI).

+ Khi ñang chaïy CGI script, caùc phöông thöùc Apache tìm kieám caùc giaûi thích cho script ñöôïc caáu hình ñang söû duïng chæ thò ScriptInterpreterSource.

9. Apache vaø caùc dòch vuï hoã trôï:a) HTTPD:Teân doøng leänh:httpd [ -X ] [ -R libexecdir ] [ -d serverroot ] [ -f config][ -C directive ] [ -c directive ] [ -D parameter ]Moâ taû:laø moät chöông trình HTTP server . Noù ñöôïc thieát keá ñeå

chaïy nhö moät tieán trình deamon moät mình. Khi duøng ñeán dòch vuï naøy, noù seõ taïo ra moät nhoùm caùc tieán trình con ñeå ñaùp öùng caùc yeâu caàu. Ñeå ngöøng dòch vuï naøy, noù seõ göûi moät tín hieäu TERM ñeán tieán trình cha. PIG cuûa tieán trình naøy seõ ghi leân moät file vaø döa vaøo file caáu hình. HTTPD seõ ñöôïc goïi bôûi Internet deamon inetd moãi khi coù moät keát noái ñeán dòch vuï HTTP ñaõ ñöôïc thieát laäp.

Caùc ñoái soá cuï theå cuûa doøng leänh

trang 29

Page 30: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

-R libexecdir: Tham soá naøy chæ coù hieäu löïc neáu Apache ñöôïc caøi ñaët vôùi taäp SHARED_CORE cho pheùp, noù taùc ñoäng ñeán nhaân nhò phaân cuûa Apache ñeå thay theá vaøo trong moät file ñoái töôïng chia xeû ñoäng (DSO). File naøy ñöôïc doø tìm treân moät ñöôøng daãn hardcoded beân döôùi ServerRoot maëc ñònh

-d serverroot: Thieát laäp giaù trò ban ñaàu cuûa chæ thò ServerRoot ñeán serverroot. Chöùc naêng naøy coù theå bò boû qua bôûi doøng leänh ServerRoot trong file caáu hình. Maëc ñònh server root laø usr/local/apache.

-f : Thöïc thi caùc leänh trong file config khi Startup. Neáu file config khoâng baét ñaàu vôùi a/, luùc ñoù noù seõ laáy moät moät ñöôøng daãn coù lieân quan ñeán ServerRoot. Maëc ñònh cuûa noù laø conf/httpd.conf.

-C directive: Thöïc hieän caáu hình caùc chæ thò tröôùc khi ñoïc file config.

-c directive: Thöïc hieän caáu hình caùc chæ thò sau khi ñoïc file config.

-D parameter: Thieát laäp moät thoâng soá caáu hình maø noù coù theå söû duïng vôùi caëp theû <IfDefine> … </IfDefine> trong caùc file caáu hình ñeå boû qua coù ñieàu kieän hoaëc thöïc hieän caùc leänh.

b) APACHECTD:Laø moät ñaàu vaøo caùc HTTP server. Noù ñöôïc thieát keá

ñeå giuùp ngöôøi quaûn trò ñieàu khieån caùc chöùc naêng cuûa Apache HTTPD deamon.

Teân doøng leänh:apachectl command [...]Vôùi caùc leänh:Start: Khôûi ñoäng Apache deamon. Ñöa ra moät thoâng

baùo loãi neáu chöông trình ñang chaïy luùc ñoù.Stop: Ngöøng dòch vuï Apache deamon.Restart: Khôûi ñoäng laïi Apache deamon baèng caùch göûi

cho noù moät SIGHUP. Leänh naøy töï ñoäng kieåm tra caùc file caáu hình qua vaên baûn caáu hình tröôùc khi baét ñaàu khôûi ñoäng laïi ñeå chaéc chaén raèng Apache vaãn coøn ñang hieän dieän trong maùy.

Fullstatus: Hieån thò ñaày ñuû caùc baùo caùo traïng thaùi töø mod_status. Ñeå leänh naøy ñöôïc thi haønh, caàn phaûi cho pheùp mod_status treân server vaø moät trình duyeät text_based chaúng haïn nhö Lynx coù saün trong heä thoáng. URL söû duïng noù ñeå truy caäp baûn baùo caùo traïng thaùi coù theå ñöôïc thieát laäp baèng giaù trò STATUSURL coù saün trong script.

Status: Hieån thò ngaén goïn baûng traïng thaùi gioáng nhö chöùc naêng fullstatus tröø phi danh saùch caùc yeâu caàu phuïc vuï thôøi bò boû queân.

trang 30

Page 31: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Configtest: Chaïy moät ñoaïn vaên baûn caùc cuï phaùp cuûa file caáu hình. Noù phaân tích caùc file caáu hình vaø caùc baûng Syntax Ok hoaëc thoâng tin chi tieát veà caùc loãi cuù phaùp ñaët bieät.

Help: Hieån thò caùc thoâng baùo loãi ñöôïc saép xeáp.c) APXSTeân doøng leänh:apxs -g [ -S variable=value ] -n nameapxs -q [ -S variable=value ] query ...apxs -i [ -S variable=value ] [ -n name ] [ -a ] [ -A ] dsofile ...apxs -e [ -S variable=value ] [ -n name ] [ -a ] [ -A ] dsofile

...

Moâ taû:Laø moät coâng cuï ñeå xaây döïng vaø caùc ñaët caùc moâ

ñun môû roäng cho Apache HTTP server. Ñöôïc thöïc hieän baèng caùch caøi ñaët moät DSO töø moät hay nhieàu nguoàn hoaëc ñoái töôïng file maø sau ñoù noù coù theå naïp vaøo Apache trong thôøi gian chöông trình ñang chaïy qua chæ thò LoadModule töø mod_so.

Ñeå söû duïng kyõ thuaät môû roäng naøy, maùy tính cuûa ngöôøi söû duïng phaûi hoã trôï DSO vaø Apache HTTPD nhò phaân phaûi ñöôïc xaây döïng vôùi moâ ñun mod_so. Coâng cuï apxs seõ töï ñoäng nhaéc nhôû neáu laø caùc tröôøng hôïp ngöôïc laïi. Ta caàn phaûi kieåm tra vieäc naøy baèng doøng leänh:

$ httpd -lmoâ ñun mod_so phaûi coù trong danh saùch ñöôïc hieån

thò. Neáu caùc yeâu caàu naøy ñöôïc thoûa maõn, thì coù theå deã daøng môû roäng caùc chöùc naêng cuûa Apache server baèng caùch caøi ñaët caùc moâ ñun cuûa mình vôùi kyõ thuaät DSO baèng coâng cuï apxs naøy.

Ví duï:$ apxs -i -a -c mod_foo.cgcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c

mod_foo.cld -Bshareable -o mod_foo.so mod_foo.ocp mod_foo.so /path/to/apache/libexec/mod_foo.sochmod 755 /path/to/apache/libexec/mod_foo.so[activating module `foo' in /path/to/apache/etc/httpd.conf]$ apachectl restart/path/to/apache/sbin/apachectl restart: httpd not running,

trying to start[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded

module foo_module/path/to/apache/sbin/apachectl restart: httpd started

trang 31

Page 32: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Caùc ñoái soá File coù theå laø baát kyø moät file nguoàn c (.c), file ñoái töôïng (.o) hoaëc ngay caû moät thö vieäc löu tröõ (.a). Coâng cuï apxs töï ñoäng coâng nhaän caùc phaàn môû roäng naøy vaø töû ñoäng söû duïng caùc file nguoàn C cho vieäc bieân dòch trong khi noù chæ söû duïng caùc file ñoái töôïng vaø löu tröõ cho giai ñoaïn lieân keát. Nhöng khi söû duïng nhieàu ñoái töôïng tröôùc bieân dòch , phaûi chaéc chaén raèng chöùng ñöôïc lieân keát cho PIC ñeå coù theå söû duïng chuùng cho moät DSO. Cho ví duï vôùi GCC, ngöôøi söû duïng luoân chæ phaûi söû duïng –fpic. Ñoái vôùi caùc caùc bieân dòch C khaùc yeâu caàu phaûi tham khaûo taøi lieäu höôùng daãn cuûa noù hoaëc chôø ñôïi caùc côø apxs, ñeå bieân dòch caùc file ñoái töôïng.

Caùc ñoái soá cuï theå cuûa doøng leänh:- n name: Thieát laäp teân moâ ñun cho chöùc naêng –i (caøi

ñaët) vaø –g (taïo khuoân maãu). Söû duïng noù ñeå chæ ra teân moâ ñun. Chöùc naêng –g laø baét buoäc, chöùc naêng –I thì coù taùc duïng khieán coâng cuï apxs coá gaéng xaùc ñònh teân töø nguoàn hoaëc ít nhaát cuõng ñoaùn ñöôïc töø teân file.

-q : Thöïc hieän ruy vaán cho apxs veà caùc caøi ñaët naøo ñoù. Tham soá truy vaán coù theå laø moät hoaëc nhieàu caùc giaù trò:

CC TARGETCFLAGS SBINDIRCFLAGS_SHLIB INCLUDEDIRLD_SHLIB LIBEXECDIRLDFLAGS_SHLIB SYSCONFDIRLIBS_SHLIB PREFIXSöû duïng caùc chöùc naêng naøy ñeå höôùng daãn xaùc

ñònh caùc thoâng soá caøi ñaët:INC = I ‘apxs –q INCLUDEDIR’beân trong caùc Makefile neáu caàn höôùng daãn caùc truy

caäp ñeán caùc file tieâu ñeà cuûa Apache.-S variable = value: Chöùc naêng naøy thay ñoåi caùc caøi

ñaët apx ñi keøm vôùi caùc giaù trò ñaëc bieät theo sau nhö: Chöùc naêng taïo ra moät khuoân maãu: -q: chöùc naêng taïo ra moät thö muïc con vaø 2 file trong

ñoù: Moät file nguoàn ví duï moâ ñun teân laø mod_name.c maø noù coù theå söû duïng nhö moät khuoân maãu cho vieäc taïo caùc moâ ñun cuûa chính ngöôøi söû duïng hoaëc nhö moät quaù trình khôûi ñoäng nhanh cho vieäc chaïy caùc kyõ thuaät apxs. Vaø moät maãu thö Makefile vôùi muïc ñích laø deã taïo vaø caøi ñaët caùc moâ ñun naøy.

Chöùc naêng bieân dòch DSO:-c : Chöùc naêng naøy chæ ra thao taùc bieân dòch. Ñaàu

tieân noù bieân dòch caùc file nguoàn C (.c) cuûa files vaøo trong caùc file ñoái töôïng töông öùng (.o) vaø sau ñoù caøi ñaët moät

trang 32

Page 33: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

DSO vaøo trong dsofile baèng caùch lieân keát caùc file ñoái töôïng naøy cuøng vôùi caùc file ñoái töôïng coøn laïi (.o vaø .a) cuûa files.

-o dsofile: Chæ ra teân file cuûa file DSO ñaõ taïo. Neáu khoâng coù söï chæ ñònh vaø teân file khoâng theå ñoaùn ñöôïc töø baûng lieät keâ caùc file, teân döï phoøng mod_unknow.so ñöôïc söû duïng.

Chöùc naêng caøi ñaët vaø ñònh daïng DSO:-i : Chöùc naêng naøy ñeå chæ thao taùc caøi ñaët vaø caøi

ñaët moät hoaëc nhieàu hôn caùc DSO vaøo trong thö muïc libexec cuûa server.

-a : Chöùc naêng naøy ñeå chæ thao taùc kích hoaït ñeán moâ ñun baèng caùch töï ñoäng theâm vaøo moät doøng LoadModule ñeán file caáu hình httpd.conf cuûa Apache hoaëc cho pheùp noù thöïc thi neáu ñaõ toàn taïi.

-A :Chöùc naêng naøy cuõng gioáng nhö –a nhöng noù taïo moät chæ thò LoadModule ñöôïc ñaët theâm vaøo moät daáu (#), coù nghóa laø moâ ñun chæ cho pheùp cho caùc thi haønh ngay sau ñoù coøn luùc ñaàu thì bò caám.

-e : Chöùc naêng naøy daønh cho thao taùc hieäu chænh, coù theå söû duïng keøm vôùi chöùc naêng –a vaø –A, cuõng gioáng nhö chöùc naêng –I: Thao taùc hieäu chænh file caáu hình httpd.conf cuûa Apache maø khoâng coá gaêng caøi ñaët caùc moâ ñun.

Ví duï:Giaû söû ngöôøi söû duïng ñaõ coù saün moät moâ ñun

Apache teân laø mod_foo.c maø noù seõ môû roäng chöùc naêng server cuûa Apache. Ñeå laøm vieäc ñoù, tröôùc heát caàn phaûi bieân dòch moät nguoàn C vaøo trong moät DSO phuø hôïp cho vieäc naïp vaøo trong Apache server. Coù theå söû duïng leänh sau:

$ apxs -c mod_foo.cgcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c

mod_foo.cld -Bshareable -o mod_foo.so mod_foo.o$ _Sau ñoù tieán haønh caäp nhaät caáu hình Apache baèng

caùch chaéc chaén raèng moät chæ thò LoadModule ñöôïc ñöa ra ñeå naïp DSO naøy. Ñeå ñôn giaûn böôùc naøy, apxs cung caáp moät caùch töï ñoäng caùch caøi ñaët DSO vaøo trong thö muïc libexec vaø caäp nhaät file httpd.conf.

Baèng caùch söû duïng caùc leänh:$ apxs -i -a mod_foo.ccp mod_foo.so /path/to/apache/libexec/mod_foo.so

trang 33

Page 34: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

chmod 755 /path/to/apache/libexec/mod_foo.so[activating module `foo' in /path/to/apache/etc/httpd.conf]$ _Caùch naøy laø moät doøng leänh coù teân:

LoadModule foo_module libexec/mod_foo.soñöôïc theâm vaøo ñeå caáu hình file neáu vaãn chöa ñöôïc ñöa ra. Neáu muoán caám thao taùc naøy söû duïng theâm vaøo chöùc naêng –A.

$ apxs -i -A mod_foo.cÑeå kieåm tra nhanh apxs, ngöôøi söû duïng taïo ra moät

maãu ví duï moâ ñun Apache cuøng vôùi moät thö töø Makefile baèng caùch:

$ apxs -g -n fooCreating [DIR] fooCreating [FILE] foo/MakefileCreating [FILE] foo/mod_foo.c$ _Sau ñoù coù theå bieân dòch ngay moâ ñun ví duï naøy vaøo

moät DSO vaø naïp noù leân Apache server:$ cd foo$ make all reloadapxs -c mod_foo.cgcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c

mod_foo.cld -Bshareable -o mod_foo.so mod_foo.oapxs -i -a -n "foo" mod_foo.socp mod_foo.so /path/to/apache/libexec/mod_foo.sochmod 755 /path/to/apache/libexec/mod_foo.so[activating module `foo' in /path/to/apache/etc/httpd.conf]apachectl restart/path/to/apache/sbin/apachectl restart: httpd khoâng

chaïy,coá gaéêng khôûi ñoäng[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): naïp

foo_module/path/to/apache/sbin/apachectl restart: httpd khôûi ñoäng $ _Ngöôøi söû duïng coù theå söû duïng apxs ñeå bieân dòch

caùc moâ ñun phöùc taïp beân ngoaøi caây nguoàn Apache, cuõng nhö PHP bôûi vì apxs töï ñoäng chaáp nhaän nguoàn C vaø caùc file ñoái töôïng.

10. Bieân dòch Apache treân Windows:Ñeå bieân dòch Apache ñoøi hoûi Microsoft Visual C++ 5.0

hoaëc 6.0 phaûi ñöôïc caøi ñaët saün saøng. Noù coù theå ñöôïc

trang 34

Page 35: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

caøi ñaët vôùi caùc coâng cuï doøng leänh hoaëc vôùi moâi tröôøng Viual Studio. Tham khaûo saùch höôùng daãn C++ ñeå xaùc ñònh caùch caøi ñaët chuùng. Ñaëc bieät nhaát laø nhaän thaáy file vcvars32.bat töø thö muïc Program Files/DevStudio/VC/bin vaø vaø file setenv.bat töø Platform SDK ñöôïc yeâu caàu ñeå chuaån bò caùc coâng cuï doøng leänh cho vieäc söû duïng doøng leänh. Ñeå caøi ñaët Apache vôùi file Makefile.win hoaëc döï aùn Install.Bin trong Visual Studio IDE, tieän ích awk cuõng ñöôïc yeâu caàu.

Ñaàu tieân baûn phaûi caøi ñaët awk.exe ôû nôi noù coù theå ñöôïc tìm thaáy trong ñöôøng daãn vaø moâi tröôøng DevStudio neáu döï ñònh söû duïng IDE, coù nhieàu phieân baûn cuûa awk saün coù treân Windows. Caùch deã nhaát laø caøi ñaët baèng caùi coù saün ñöôïc taûi xuoáng töø

http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe vaø neân löu noù vôùi teân awk.exe hôn laø awk95.exe.

Sau ñoù bung goùi Apache ñöa vaøo trong moät thö muïc thích hôïp, môû cöûa soå doøng leänh vaø thay ñoåi thö muïc con src cuûa Apache. Caùc taøi lieäu chính cung caáp cho caùc file taïo Apache ñöôïc chöùa trong file Makefile.win. Ñeå bieân dòch Apache treân Windows chæ caàn söû duïng caùc doøng leänh:

nmake /f Makefile.win _apacher (release build) nmake /f Makefile.win _apached (debug build) Neáu ñöôïc moät thoâng baùo loãi kieåu nhö "the name

specified is not recognized..." thì phaûi chaïy file vevas32.bat tröôùc: baèng doøng leänh sau:

"C:\Program Files\DevStudio\VC\Bin\VCVARS32.BAT"(caàn phaûi söûa ñoåi doøng leänh naøy neáu VC ñöôïc caøi ôû nôi khaùc)

Sau ñoù chaïy nmake moät laàn nöõa.Apache cuõng coù theå ñöôïc bieân dòch vôùi moâi tröôøng

Visual Studio development cuûa VC++. Ñeå ñôn giaûn tieán trình naøy moät vuøng laøm vieäc Visual Studio, Apachedsw (ñöôïc cung caáp trong thö muïc src) ñöa ra danh saùch loái vaøo cuûa caùc döï aùn working.dsb ñöôïc yeâu caàu ñeå hoaøn thaønh Apache (binary release). Noù cung caáp caùc phaàn phuï thuoäc giöõa caùc tieán trình. Noù bao goàm caû caùc phaàn phuï thuoäc giöõa caùc döï aùn ñeå ñaûm baûo raèng chuùng ñöôïc caøi ñaët theo moät traät töï thích hôïp. InstallBin laø moät döï aùn cao caáp maø noù seõ caøi ñaët taát caû caùc döï aùn, vaø caøi ñaët caùc file bieân dòch vaøo nôi thích hôïp cuûa noù.

Caùc nhaân döï aùn .dsp ñöôïc caøi ñaët bôûi Apache.dsw vaø makefile.win laø:

os\win32\ApacheOS.dsp os\win32\Win9xConHook.dsp

regex\regex.dsp

trang 35

Page 36: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

ap\ap.dsp lib\expat-lite\xmltok.dsp lib\expat-lite\xmlparse.dsp yeâu caàu xmltok lib\sdbm.dsp main\gen_uri_delims.dsp main\gen_test_char.dsp ApacheCore.dsp yeâu caàu taát caû caùc file ôû treân Apache.dsp yeâu caàu ApacheCore Trong phaàn theâm vaøo, thö muïc con os/win32 chöùa caùc

file döï aùn cho caùc moâ ñun chöùc naêng, taát caû chuùng ñeàu yeâu caàu ApacheCore.

os\win32\mod_auth_anon.dsp os\win32\mod_auth_dbm.dsp cuõng yeâu caàu sdbm os\win32\mod_auth_digest.dsp os\win32\mod_cern_meta.dsp os\win32\mod_digest.dsp os\win32\mod_expires.dsp os\win32\mod_headers.dsp os\win32\mod_info.dsp os\win32\mod_mime_magic.dsp os\win32\mod_proxy.dsp os\win32\mod_rewrite.dsp os\win32\mod_speling.dsp os\win32\mod_status.dsp os\win32\mod_unique_id.dsp os\win32\mod_usertrack.dsp os\win32\mod_vhost_alias.dsp

Thö muïc support chöùa caùc file döï aùn cho caùc chöông trình ñöôïc theâm vaøo maø noù khoâng naèm trong phaàn Apache ñang chaïy nhöng noù ñöôïc söû duïng bôûi ngöôøi quaûn trò ñeå duy trì password vaø caùc file log.

support\htdigest.dsp support\htpasswd.dsp support\logresolve.dspsupport\rotatelogs.dsp Moät khi Apache ñaõ bieân dòch noù caàn ñöôïc caøi ñaët

trong thö muïc goác server cuûa noù, maëc ñònh laø /Apache treân ñóa cöùng ñang söû duïng.

Ñeå töï ñoäng caøi ñaët caùc file vaøo trong thö muïc c:/ServerRoot, söû duïng leänh nmake:

nmake /f Makefile.win installr INSTDIR=c:\ServerRoot (for release build)

nmake /f Makefile.win installd INSTDIR=c:\ServerRoot (for debug build)

trang 36

Page 37: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Ñoái soá c:\ServerRoot ñeå cho INTSDIR nhaän caùc thö muïc caøi ñaët (noù coù theå ñöôïc boû qua neáu Apache ñöôïc caøi ñaët trong thö muïc \Apache)

Quaù trình caøi ñaët seõ dieãn ra nhö sau:c:\ServerRoot\Apache.exe – Chöông trình Apache c:\ServerRoot\ApacheCore.dll - Apache runtime [shared libary] c:\ServerRoot\Win9xConHook.dll - Win9x console fixups [shared

library] c:\ServerRoot\xmlparse.dll – phaân tích cuù phaùp XML [shared

library] c:\ServerRoot\xmltok.dll - XML token engine [shared library] c:\ServerRoot\bin\*.exe – Caùc chöông trình quaûn trò c:\ServerRoot\cgi-bin – Ví duï CGI scripts c:\ServerRoot\conf – Thö muïc chöùa caùc file caáu hình. c:\ServerRoot\icons - Icons for FancyIndexing c:\ServerRoot\include\*.h – Caùc file header cuûaApache c:\ServerRoot\htdocs - Site Welcome index.html c:\ServerRoot\htdocs\manual – Taøi lieäu Apache.c:\ServerRoot\lib – Caùc file taøi lieäu ñoäng.c:\ServerRoot\libexec – Thö vieän lieân keát ñoäng.c:\ServerRoot\logs – Thö muïc roãng logging. c:\ServerRoot\modules\mod_*.dll – Caùc moâ ñun naïp Apache.

CHÖÔNG IICAÙC NGHI THÖÙC TRUYEÀN NHAÄN

---- ----

trang 37

Page 38: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Coâng vieäc phaùt trieån caùc heä thoáng Mail (Mail System) ñoøi hoûi hình thaønh caùc chuaån veà Mail. Ñieàu naøy giuùp cho vieäc gôûi nhaän caùc message ñöôïc ñaûm baûo, laøm cho nhöõng ngöôøi ôû caùc nôi khaùc nhau coù theå trao ñoåi thoâng tin cho nhau. Coù 2 chuaån veà Mail quan troïng nhaát vaø ñöôïc söû duïng nhieàu nhaát töø tröôùc ñeán nay laø X.400 vaø SMTP (Simple Mail Transfer Protocol). SMTP thöôøng ñi keøm vôùi chuaån POP3 vaø do haïn cheá cuûa SMTP maø ngaøy nay ngöôøi ta duøng chuaån môû roäng cuûa noù laø ESMTP (Extended SMTP). Muïc ñích chính cuûa X.400 laø cho pheùp caùc mail coù theå ñöôïc truyeàn nhaän thoâng qua caùc loaïi maïng khaùc nhau baát chaáp caáu hình phaàn cöùng, heä ñieàu haønh maïng , giao thöùc truyeàn daãn ñöôïc duøng. Coøn muïc ñích cuûa chuaån SMTP mieâu taû caùch ñieàu khieån caùc message treân maïng Internet. Ñieàu quan troïng cuûa chuaån SMTP laø giaû ñònh maùy nhaän phaûi duøng giao thöùc SMTP gôûi Mail cho 1 Server luoân luoân hoaït ñoäng. Sau ñoù, ngöôøi nhaän seõ ñeán laáy Mail cuûa hoï töø Server khi naøo hoï muoán duøng giao thöùc POP (Post Office Protocol), ngaøy nay POP ñöôïc caûi tieán thaønh POP3 (Post Officce Protocol vertion 3). Caùc giao thöùc Mail thoâng duïng : chuaån X.400, chuaån MAIP, SMTP (ESMTP), POP3 . ÔÛ ñaây chæ trình baøy chi tieát veà POP3 vaø SMTP.

PHAÀN 1GIAO THÖÙC SMTP (SIMPLE MAIL TRANSFER

PROTOCOL )-----***-----

Boä phaän chính cuûa heä thoáng Internet Mail chính laø caùc MTA ( Message Transfer Agent), caùc MTA giöõ 1 vai troø

trang 38

Page 39: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

quan troïng trong vieäc chuyeån giao email. Ví duï sau khi moät ngöôøi söû duïng göûi moät böùc mail tôùi haøng ñôïi message, MTA seõ laáy ñoù vaø chuyeån noù tôùi moät MTA khaùc. Quaù trình ñoù seõ tieáp tuïc tieáp dieãn cho ñeán khi message ñeán ñöôïc nôi nhaän. Ñeå coù theå lieân laïc vôùi caùc MTA thoâng qua keát noái TCP caùc MTA cuûa heä thoáng Internet Mail coù theå söû duïng nhieàu nghi thöùc khaùc nhau ñeå chuyeån giao caùc thoâng tin (X400,ESMTP,....), Nhöng ôû ñaây ta chæ xeùt nghi thöùc SMTP. Ñaây laø moät nghi thöùc cho pheùp chuyeån mail töø ñieåm naøy sang ñieåm khaùc cho ñeán ñích treân maïng Internet. Noù ñöôïc caáu taïo bôûi taäp caùc caâu leänh ñeå Client coù theå yeâu caàu Sever thöïc hieän moät soá taùc vuï vaø taäp caùc caâu traû lôøi ñeå Server hoài ñaùp laïi cho Client veà keát quaû thöïc hieän caùc taùc vuï ñoù. Moät chöông trình muoán gôûi ñöôïc mail thì noù phaûi bieát ñòa chæ cuûa moät SMTP server. Server naøy coù nhieäm vuï chuyeån mail ñeán nôi caàn thieát.

I- GIÔÙI THIEÄU Moät ñaëc tröng quan troïng cuûa SMTP laø khaû naêng chia ca

Mail qua moâi tröôøng dòch vuï giao chuyeån, moät dòch vuï giao chuyeån cung caáp moät moâi tröôøng truyeàn thoâng lieân quaù trình (Interprocess Communication Environment –IPCE ). Moät moâi tröôøng truyeàn thoâng lieân quaù trình coù theå bao goàm moät Network, vaøi Network, hay moät taäp hôïp con cuûa Network. Ñieàu ñoù quan troïng cho vieäc thöïc hieän heä thoáng giao chuyeån (hay caùc IPCE) one-to-one vôùi Network, moät quaù trình coù theå giao tieáp vôùi moät quaù trình khaùc thoâng qua vieäc nhaän bieát IPCE. Mail laø öùng duïng hay laø caùch duøng cuûa giao tieáp lieân quaù trình, Mail coù theå giao tieáp giöõa caùc quaù trình trong nhöõng IPCE khaùc baèng caùch chia ca thoâng qua moät quaù trình ñöôïc keát noái ñeán hai (hay nhieàu ) IPCE. Chi tieát hôn Mail coù theå chia ca giöõa nhöõng Host treân heä thoáng giao chuyeån khaùc nhau baèng moät Host treân caû hai heä thoáng chuyeån giao.

II- MOÂ HÌNH SMTP: SMTP ñöôïc thieát keá döïa treân moâ hình giao tieáp sau:

nhö keát quaû cuûa moät yeâu caàu Mail cuûa user . Sender- SMTP thieát laäp moät keânh hai ñöôøng vaän chuyeån ñeán moät receiver- SMTP . Receiver- SMTP coù theå laø ñích ñeán cuoái cuøng hay moät trung gian. Nhöõng leänh SMTP ñöôïc sinh ra bôûi Sender-SMTP göûi ñeán Receiver- SMTP. Nhöõng reply SMTP ñöôïc göûi töø Receiver- SMTP ñeán Sender- SMTP trong söï ñaùp öùng cho nhöõng leänh ñoù.

Khi moät keânh giao chuyeån ñöôïc thieát laäp Sender-SMTP göûi ñi 1 leänh Mail bieåu thò cho ngöôøi göûi cuûa mail ñoù. Neáu Receiver-SMTP coù theå chaáp nhaän mail, noù traû lôøi vôùi moät OK reply. Sau ñoù Sender-SMTP göûi moät leänh RCPT nhaän dieän Receiver mail neáu Receiver-SMTP coù theå chaáp nhaän mail noù

trang 39

Page 40: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

traû lôøi vôùi 1 OK reply neáu khoâng noù seõ lôøi vôùi 1 reply baùc boû receiver ñoù (nhöng khoâng phaûi toaøn boä söï giao dòch ñoù). Sender- SMTP vaø Receiver- SMTP coù theå ñieàu ñình vôùi vaøi recipient, khi nhöõng recipient ñaõ ñöôïc daøn xeáp Sender-SMTP göûi mail data keát thuùc vôùi moät chuoãi ñaëc bieät neáu receiver xöû lyù mail data thaønh coâng noù traû lôøi vôùi 1 OK reply. Cuoäc hoäi thoaïi moät caùch chuû yù lock –step (one-at-a-time).

Sô ñoà treân laø moâ hình cho caùch duøng SMTP.SMTP cung caáp nhöõng cô cheá giao chuyeån Mail moät

caùch tröïc tieáp töø Host cuûa user göûi ñeán host cuûa user nhaän khi caû hai host ñöôïc keát noái ñeán cuøng dòch vuï giao chuyeån hay qua nhieàu SMTP-Sever tieáp vaän khi host xuaát phaùt hay ñích ñeán khoâng ñöôïc keát noái ñeán cuøng dòch vuï chuyeån giao. Ñeå coù theå cung caáp khaû naêng tieáp vaän SMTP-Sever phaûi ñöôïc cung caáp teân cuûa host ñeán cuøng chaúng haïn nhö haïn cuûa mailhost ñeán .

Ñoái soá cuûa leänh mail laø 1 reverse-path noù ñaëc taû mail ñoù töø ñaâu ñeán; ñoái soá cho RCPT laø 1 Forward-path noù ñaëc taû mail ñoù ñi ñeán ñaâu. Forward-path laø moät loä trình nguoàn, reverse-path laø moät loä trình trôû veà (noù coù theå ñöôïc duøng ñeå traû veà moät message cho ngöôøi göûi khi xaûy ra loãi vôùi 1 message ñöôïc tieáp nhaän).

Khi cuøng moät message ñöôïc göûi cho nhieàu recipient SMTP khuyeán khích chuyeån giao chæ moät baûn sao cuûa data cho taát caû caùc Receiver ôû cuøng moät host ñích.

Nhöõng command vaø reply mail coù nhöõng cuù phaùp khaéc khe. Nhöõng reply cuõng coù moät maõ soá. Trong nhöõng thí duï theo sau seõ xuaát hieän nhöõng leänh (commands) vaø nhöõng traû lôøi (replies) , moät danh saùch caùc leänh vaø reply hoaøn chænh trong phaàn 4.

Caùc command vaø reply khoâng phaân bieät kieåu chöõ hoa hay thöôøng. Löu yù, ñieàu naøy khoâng ñuùng vôùi teân cuûa User mailbox. Cho moät soá host teân cuûa user coù phaân bieät kieåu chöõ, SMTP phaûi thi haønh ñaày ñuû vieäc nhaän kieåu chöõ vaø giöõ gìn kieåu chöõ cuûa nhöõng user name nhö

trang 40

SenderSMTP

ReceiverSMTP

User

FileSyste

m

FileSyste

m

SMTPCommands/

Repliesand Mail

Sender-SMTP Receiver-SMTP

Page 41: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

chuùng ñaõ xuaát hieän trong nhöõng ñoái soá cuûa mailbox. Host names khoâng phaân bieät kieåu chöõ.

Caùc command vaø reply laø nhöõng kyù töï ñöôïc taïo ra töø taäp kyù töï ASCII{1}, khi dòch vuï vaän chuyeån cung caáp moät keânh chuyeån giao 8 bit (octet). Moãi moät kyù töï 7 bit ñöôïc truyeàn ñuùng baèng caùch chuyeån noù veà heä 8 (octet) vôùi bit coù thöù töï cao nhaát bò xoùa veà 0.

Khi ñaëc taû caáu truùc thoâng thöôøng cuûa command vaø reply, moät ñoái soá (hay moät kyù hieäu ñaëc bieät ) seõ ñöôïc bieåu thò baèng moät bieán meta-linguistic (hay moät haèng soá), ví duï nhö : “<string>”, hay “<reverse-path>”. ÔÛ ñaây daáu ngoaëc nhoïn chæ ñònh chuùng laø nhöõng bieán meta-linguistic. Tuy nhieân caùc ñoái soá thì duøng daáu ngoaëc nhoïn moät caùch literal. Ví duï nhö, moät reverse-path thöïc ñöôïc bao trong daáu ngoaëc nhoïn nhö, “<[email protected]>” laø moät tröôøng hôïp cuûa <reverse-path> (daáu ngoaëc nhoïn ñöôïc giao chuyeån trong command vaø reply laø maõ thöïc cuûa noù).

III. MAIL:1- Khaùi quaùt :

Coù 3 böôùc cho söï giao dòch SMTP mail. Giao dòch ñöôïc baét ñaàu vôùi yeâu caàu Mail mang söï nhaän dieän ngöôøi göûi, tieáp theo sau laø moät chuoãi cuûa moät hay nhieàu leänh RCPT trao nhöõng thoâng tin cuûa receiver, sau ñoù moät leänh DATA cho mail data.Vaø cuoái cuøng laø phaàn chæ ñònh keát thuùc mail data xaùc nhaän giao dòch ñoù.

Böôùc ñaàu tieân trong thuû tuïc laø leänh MAIL...<reverse-path> chöùa mailbox nguoàn: MAIL <SP> FROM : <reverse-path> <CRLF>

Leänh naøy baùo cho receiver bieát moät giao dòch mail môùi seõ baét ñaàu vaø ñeå reset taát caû caùc baûng traïng thaùi vaø caùc buffer cuûa noù bao goàm taát caû recipient hay mail data. Noù phaùt ra reverse-path coù theå ñöôïc duøng ñeå baùo loãi. Neáu ñöôïc chaáp nhaän receiver-SMTP traû veà moät reply 250 OK.

<Reverse-path> coù theå chöùa nhieàu hôn moät mailbox.<Reverse-path> laø moät loä trình nguoàn trôû veà lieät keâ caùc host vaø mailbox nguoàn. Host ñaàu tieân trong reverse-path seõ laø host göûi leänh naøy.

Böôùc thöù hai trong thuû tuïc naøy laø leänh RCPT : RCPT <SP> To : <forward-path> <CRLF>

Leänh naøy phaùt ñi moät forward-path nhaän dieän recipient. Neáu ñöôïc chaáp nhaän receiver-SMTP traû veà moät reply 250 OK. Vaø löu laïi forward-path. Neáu recipient khoâng nhaän bieát thì receiver traû veà reply 550 Failure. Böôùc thöù hai cuûa thuû tuïc naøy coù theå laëp laïi nhieàu laàn.

trang 41

Page 42: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Forward-path coù theå chöùa nhieàu hôn moät mailbox. Forward-path laø loä trình nguoàn lieät keâ caùc host vaø mailbox ñích. Host ñaàu tieân trong <forword-path> seõ laø host nhaän leänh naøy.

Böôùc thöù ba trong thuû tuïc laø leänh DATA DATA <CRLF>

Neáu chaáp nhaän receiver-SMTP traû veà moät reply 354 vaø coi taát caû caùc doøng noái tieáp ñoù laø message text. Khi vaên baûn cuoái cuøng ñöôïc nhaän vaø löu tröõ receiver-SMTP göûi moät reply 250 OK.

Keå töø khi mail ñöôïc göûi treân keânh chuyeån giao, ñieåm keát thuùc cuûa mail phaûi ñöôïc chæ ñònh ñeå hoäi thoaïi command vaø reply coù theå baét ñaàu trôû laïi. SMTP chæ ñònh keát thuùc cuûa mail baèng caùch göûi moät doøng chöùa chæ moät daáu chaám.

Chuù yù raèng mail data bao goàm nhöõng muïc (item) memo header chaúng haïn nhö Subject, To, Cc, From.

Phaàn chæ ñònh keát thuùc cuûa mail data cuõng xaùc nhaän söï giao dòch mail vaø baùo cho receiver-SMTP bieát ñeå xöû lyù vieäc löu tröõ recipient vaø mail data ngay luùc ñoù. Neáu ñöôïc chaáp nhaän receiver-SMTP traû veà moät reply 250 OK. Leänh DATA seõ chæ loãi neáu giao dòch mail khoâng hoaøn thaønh (ví duï khoâng coù receiver) hoaëc neáu taøi nguyeân khoâng coù hieäu löïc.

Thuû tuïc treân laø moät ví duï cuûa moät giao dòch mail. Nhöõng leänh naøy chæ ñöôïc duøng trong nhöõng traät töï ñöôïc trình baøy ôû treân. Ví duï :

Moät minh hoïa caùch duøng nhöõng leänh naøy: Ut; end with <CRLF>.<CRLF> S: Blah blah blah... S: ...etc. etc. etc. S: <CRLF>.<CRLF> R: 250 OKBaây giôø mail ñöôïc chaáp nhaän cho Jones vaø Brown.

Green khoâng coù moät mailbox treân Beta host. 2- Söï ñònh höôùng :

Coù moät soá tröôøng hôïp thoâng tin cuûa ñích ñeán trong <forward-path> bò sai nhöng receiver-SMTP bieát ñích ñeán ñuùng. Trong tröôøng hôïp nhö vaäy moät trong nhöõng reply sau seõ ñöôïc duøng ñeå cho pheùp ngöôøi göûi tieáp xuùc ñeán ñích ñuùng :

251 User not local ; will forward to <forward-path>

trang 42

Page 43: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Reply naøy chæ cho receiver-SMTP bieát mailbox cuûa user ñoù naèm treân moät host khaùc vaø chæ ñònh forward-path ñuùng ñeå sau ñoù söû duïng. Löu yù moät trong hai host hay user hay caû hai coù theå khaùc nhau . Receiver chòu traùch nhieäm cho vieäc phaân phoái nhöõng message.

551 User not local ; please try <forward-path> Reply naøy chæ cho receiver-SMTP bieát mailbox cuûa user

naèm treân moät host khaùc vaø chæ ñònh forward-path ñuùng ñeå söû duïng . Löu yù host hoaëc laø user hay caû hai coù theå khaùc nhau . Receiver töø choái chaáp nhaän mail cho user A. Ngöôøi göûi phaûi ñònh höôùng laïi cho mail ñoù tuyø theo nhöõng thoâng tin ñöôïc cung caáp hoaëc laø traû traû lôøi error cho user khôûi ñaàu.Ví duï sau minh hoaï caùch duøng cuûa nhöõng ñaùp öùng naøy : S: RCPT TO:[email protected] R: 251 User not local; will forward to <[email protected]> Hay S: RCPT TO:<[email protected]> R: 551 User not local; please try [email protected]

3- Kieåm tra vaø môû roäng :SMTP cung caáp theâm nhöõng ñieåm ñaëc tröng, caùc

leänh ñeå kieåm tra moät user name hay môû roäng moät danh saùch ñòa chæ ñöôïc laøm vôùi leänh VRFY vaø EXPN noù duøng ñoái soá kieåu chuoåi kyù töï. Vôùi leänh VRFY chuoãi ñoù laø moät user name, vaø caâu traû lôøi(response) coù theå bao goàm full name cuûa user ñoù vaø phaûi bao goàm mailbox cuûa user ñoù. Vôùi leänh EXPN chuoåi ñoù ñònh danh moät danh saùch ñòa chæ vaø caâu traû lôøi coù nhieàu doøng coù theå chöùa full name cuûa caùc user ñoù vaø phaûi chöùa nhöõng mailbox treân danh saùch ñòa chæ (mailing list).

Neáu moät host ñöôïc boå sung leänh VRFY hay EXPN thì ít nhaát nhöõng mailbox cuïc boä phaûi ñöôïc thöøa nhaän nhö laø“user names”. Neáu moät host choïn löïa ñeå thöøa nhaän nhöõng chuoåi khaùc nhö “user names” thì ñieàu ñoù ñöôïc cho pheùp.

Trong moät soá host söï phaân bieät giöõa moät mailing list vaø moät bí danh cho single mailbox hôi mô hoà. Töø ñoù moät caáu truùc döõ lieäu phoå bieán coù theå giöõ caû hai kieåu phaàn töû vaø noù coù theå duøng caùc mailing list cuûa moät mailbox. Neáu moät yeâu caàu ñöôïc taïo ra ñeå kieåm tra moät mailing list moät caâu traû lôøi khaúng ñònh coù theå ñöôïc cho neáu treân message nhaän ñöôïc ñaõ ñöôïc ñònh ñòa chæ noù seõ ñöôïc phaân phaùt cho taát caû moïi ngöôøi trong danh saùch ñoù. Maët khaùc moät loãi seõ ñöôïc baùo caùo (e.g., "550 That is a mailing

trang 43

Page 44: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

list, not a user"). Neáu moät yeâu caàu ñöôïc taïo ra ñeå môû roäng moät user name moät caâu traû lôøi khaúng ñònh coù theå ñöôïc caáu hình baèng caùch traû veà moät danh saùch chöùa moät teân hay moät loãi coù theå ñöôïc baùo caùo (e.g., "550 That is a user name, not a mailing list").

Trong tröôøng hôïp moät reply nhieàu doøng (thöôøng cho EXPN) laø moät mailbox ñöôïc ñaëc taû treân töøng doøng cuûa reply ñoù moät caùch chính xaùc. Trong tröôøng hôïp naøy moät yeâu caàu nhaäp nhaèng khoù hieåu nhö : “VRFY Smith” coù hai caâu traû lôøi cuûa Smith phaûi laø "553 User ambiguous".

Ví duï kieåm tra moät user nameS: VRFY SmithR: 250 Fred Smith <[email protected]>

HayS: VRFY SmithR: 251 User not local; will forward to <[email protected]>

HayS: VRFY JonesR: 550 String does not match anything.

HayS: VRFY JonesR: 551 User not local; please try <[email protected]>

HayS: VRFY GourzenkyinplatzR: 553 User ambiguous.

Tröôøng hôïp môû roäng moät mailbox list ñoøi hoûi moät reply nhieàu doøng xem trong ví duï sau: môû roäng moät mailing list (danh saùch ñòa chæ)

S: EXPN Example-People R: 250-Jon Postel <[email protected]> R: 250-Fred Fonebone <[email protected]> R: 250-Sam Q. Smith <[email protected]> R: 250-Quincy Smith <@USC-ISIF.ARPA:[email protected]> R: 250-<[email protected]> R: 250 <[email protected]>

Hay S: EXPN Executive-Washroom-List R: 550 Access Denied to You.

Nhöõng ñoái soá chuoåi kyù töï cuûa leänh VRFY vaø EXPN khoâng theå vöôït qua giôùi haïn ñöôïc quyeàn treân söï boå sung ña daïng cuûa user name vaø khaùi nieäm mailbox. Treân moät

trang 44

Page 45: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

soá heä thoáng noù coù theå daønh rieâng cho ñoái soá cuûa leänh EXPN ñeå laø moät file name cho moät file chöùa moät mailing list nhöng laïi coù moät qui öôùc ña daïng cuûa vieäc ñaëc teân file trong internet.

Leänh VRFY vaø EXPN khoâng ñöôïc bao goàm trong söï thöïc thi toái thieåu (trình baøy trong phaàn sau) vaø khoâng ñöôïc ñoøi hoûi ñeå laøm vieäc thay ca khi chuùng ñöôïc thöïc thi.

4- Sending and Mailing :Muïc ñích chính cuûa SMTP laø phaân phoái nhöõng message

ñeán nhöõng mailbox cuûa user . Moät dòch vuï raát phoå bieán ñöôïc cung caáp bôûi moät soá host laø ñeå phaân phoái nhöõng message ñeán nhöõng terminal cuûa user( cung caáp cho user laøm vieäc treân host ñoù). Söï phaân phaùt ñeán nhöõng mail box cuûa user ñöôïc goïi laø “mailing”, söï phaân phaùt ñeán nhöõng user terminal ñöôïc goïi laø “sending”. Bôûi vì moät soá host coù söï thöïc thi cuûa sending gaàn gioáng vôùi söï thöïc thi cuûa mailing chuùng laø hai chöùc naêng ñöôïc lieân keát vôùi SMTP. Maëc duø leänh sending khoâng bao goàm trong yeâu caàu thöïc thi toái thieåu( xem phaàn sau). Nhöõng user coù khaû naêng ñieàu khieån vieäc ghi message leân nhöõng terminal cuûa hoï. Haàu heát caùc host cho pheùp chaáp nhaän hay töø choái nhöõng message.

Ba leänh sau ñöôïc ñònh nghóa ñeå cung caáp nhöõng option cho sending. Chuùng ñöôïc duøng trong giao dòch mail thay cho leänh MAIL vaø cung caáp cho receiver-SMTP nhöõng ngöõ nghóa giao dòch ñaëc bieät SEND <SP> FROM:<reverse-path> <CRLF>

Leänh SEND ñoøi hoûi mail data ñöôïc göûi ñeán user terminal. Neáu user ñoù khoâng hoaït ñoäng (hay khoâng chaáp nhaän nhöõng terminal message) treân host ñoù moät reply 450 coù theå ñöôïc traû cho moät leänh RCPT. Giao chuyeån mail thaønh coâng khi message ñoù ñöôïc phaân phaùt ñeán terminal.

SOML <SP> FROM:<reverse-path> <CRLF>Leänh naøy laø SEND Or MAIL ñoøi hoûi mail data ñöôïc

phaân phaùt ñeán terminal cuûa user neáu user ñoù ñang hoaït ñoäng (vaø chaáp nhaän nhöõng message terminal) treân host ñoù. Neáu user khoâng hoaït ñoäng (haykhoâng chaáp nhaän terminal message) thì mail data ñöôïc ñöa vaøo trong mailbox cuûa user . Giao chuyeån mail thaønh coâng khi message ñoù ñöôïc phaân phaùt ñeán terminal hay mailbox. SAML <SP> FROM:<reverse-path> <CRLF>

Leänh naøy laø SEND And MAIL ñoøi hoûi mail data ñöôïc phaân phaùt ñeán terminal cuûa user neáu user ñoù ñang hoaït ñoäng (vaø chaáp nhaän nhöõng message terminal) treân host ñoù. Trong nhöõng taát caû tröôøng hôïp mail data ñöôïc ñöa vaøo

trang 45

Page 46: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

trong mailbox cuûa user. Giao dòch mail thaønh coâng khi message ñoù ñöôïc phaân phaùt ñeán mailbox.

Nhöõng maõ reply töông töï ñöôïc duøng cho leänh MAIL cuõng ñöôïc duøng cho nhöõng leänh naøy.

5- Opening and Closing : Ngay thôøi ñieåm maø keânh giao chuyeån ñöôïc open coù moät söï trao ñoåi ñeå ñaûm baûo nhöõng host ñoù ñang giao tieáp vôùi nhöõng host khaùc. Hai leänh sau ñöôïc duøng trong vieäc ñoùng môû keânh truyeàn HELLO <SP> <domain><CRLF> QUIT <CRLF> Trong leänh HELLO host naøy göûi ñi nhöõng nhaän daïng leänh cuûa noù coù theå ñöôïc dòch nhö "HELLO, I am <domain>".

* Ví duï môû keát noái : Opening R : 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready S : HELO USC-ISIF.ARPA R: 250 BBN-UNIX.ARPA

* Ví duï ñoùng keát noái : Closing S: QUIT

R :221 BBN-UNIX.ARPA Service transmission channel.

6- Chia ca (Relaying) : Forward-path coù theå laø moät loä trình nguoàn cuûa form "@ONE, @TWO:JOE@THREE" vôùi ONE ,TWO, THREE laø caùc host.

Form naøy ñöôïc duøng ñeå nhaán maïnh söï phaân bieät giöõa moät address vaø moät route. Mailbox laø moät address tuyeät ñoái, vaø route laø thoâng tin veà vieäc laáy chuùng nhö theá naøo .

Nhöõng thaønh phaàn cuûa forward-path ñöôïc chuyeån ñeán reverse-path khi message ñoù ñöôïc chia ca töø moät server-SMTP ñeán moät server-SMTP khaùc. Reverse-path laø moät loä trình nguoàn trôû veà (khaùc vôùi moät loä nguoàn laø töø vò trí hieän haønh cuûa message ñeán ñieåm khôûi ñaàu cuûa message ñoù). Khi moät server SMTP xoùa phaàn nhaän daïng cuûa noù trong forward-path vaø cheøn phaàn nhaän daïng cuûa noù vaøo trong reverse-path, noù phaûi duøng caùi teân maø noù ñöôïc bieát tôùi trong moâi tröôøng maø noù seõ göûi vaøo, khoâng phaûi laø moâi tröôøng maø mail töø ñoù ñeán, trong tröôøng hôïp server-SMTP ñöôïc bieát ñeán vôùi nhöõng teân khaùc nhau trong nhöõng moâi tröôøng khaùc nhau.

trang 46

Page 47: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Neáu moät message ñeán moät SMTP thaønh phaàn ñaàu tieân cuûa forward-path khoâng phaûi laø phaàn nhaän daïng cuûa SMTP ñoù, thaønh phaàn naøy khoâng bò xoaù trong forward-path vaø ñöôïc duøng ñeå xaùc ñònh SMTP keá ñeå göûi message ñeán. Trong tröôøng hôïp naøy SMTP theâm phaàn nhaän daïng cuûa noù vaøo reverse-path.

Duøng loä trình nguoàn receiver-SMTP nhaän mail ñeå chia ca ñeán moät server-SMTP khaùc. Receiver-SMTP ñoù coù theå chaáp nhaän hoaëc baùc boû coâng vieäc chia ca cho mail, nhö caùch noù chaáp nhaän hay baùc boû mail cho moät user cuïc boä. Receiver-SMTP thay ñoåi nhöõng ñoái soá leänh baèng caùch chuyeån phaàn nhaän daïng cuûa noù töø forward-path vaøo choå môû ñaàu cuûa reverse-path. Sau ñoù receiver-SMTP trôû thaønh Sender-SMTP, thieát laäp moät keânh truyeàn ñeán SMTP keá trong forward-path,vaø göûi mail ñoù cho noù.

Host ñaàu tieân trong reverse-path seõ laø host göûi caùc leänh SMTP vaø host ñaàu tieân trong forward-path seõ laø host caùc nhaän caùc leänh SMTP .

Löu yùraèng forward-path vaø reverse-path xuaát hieän trong caùc leänh vaø caùc reply SMTP, nhöng noù khoâng caàn thieát xuaát hieän trong message . Noù khoâng caàn thieát cho nhöõng ñöôøng daãn vaø cuù phaùp ñaëc bieät naøy xuaát hieän trong nhöõng tröôøng cuûa message header nhö "To:" , "From:", "CC:",….

Neáu moät server-SMTP chaáp nhaän coâng vieäc chia ca mail vaø sau ñoù thaáy forward-path khoâng ñuùng hay mail ñoù khoâng theå ñöôïc phaân phaùt ñöôïc vì baát cöù lí do naøo, thì noù phaûi xaây döïng moät message thoâng baùo "undeliverable mail" (mail khoâng theå phaân phaùt) vaø göûi noù ñeán nôi xuaát phaùt cuûa mail khoâng theå phaân phaùt ñoù(ñöôïc chæ ñònh trong reverse-path). Message thoâng baùo naøy phaûi laø töø server-SMTP taïi host ñoù. Dó nhieân nhöõng server-SMTP seõ khoâng göõi nhöõng message thoâng baùo veà nhöõng söï coá xaûy ra cho message thoâng baùo ñoù. Moät caùch ngaên chaën söï laëp laïi trong vieäc thoâng baùo loãi laø ñaëc taû moät null reverse-path trong leänh MAIL cuûa message moät thoâng baùo. Khi moät message thoâng baùo nhö vaäy ñöôïc chia ca noù ñöôïc duøng ñeå loaïi boû reverse-path null. Moät leänh MAIL vôùi null reverse-path nhö döôùi ñaây:

MAIL FROM:< > Thoâng baùo naøy naèm trong traû lôøi cho moät message ñöôïc khôûi ñoäng bôûi JOE taïi HOSTW vaø göûi thoâng qua HOSTX ñeán HOSTY vôùi chæ thò chia ca noù ñeán HOSTZ, noù laø böôùc ñaàu tieân trong vieäc traû veà message thoâng baùo .

Ví duï message thoâng baùo mail khoâng theå phaân phaùt :S: MAIL FROM:<>

trang 47

Page 48: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

R: 250 OK S: RCPT TO:<@HOSTX.ARPA:[email protected]> R: 250 OK S: DATA R: 354 send the mail data, end with . S: Date: 23 Oct 81 11:22:33 S: From: [email protected] S: To: [email protected] S: Subject: Mail System ProblemS:S: Sorry JOE, your message to [email protected] lost. S: HOSTZ.ARPA said this: S: "550 No Such User" S: .

R: 250 OK7- Thay ñoåi vai troø :Leänh TURN coù theå duøng ñeå ñaûo vai troø cuûa hai

chöông trình ñang giao tieáp treân keânh giao chuyeån.Neáu chöông trình A ñang laø Sender-SMTP hieän haønh vaø

noù göûi leänh TURN vaø nhaän moät reply OK(250) thì chöông trình A trôû thaønh receiver-SMTP.

Neáu chöông trình B ñang hieän haønh receiver-SMTP hieän haønh vaø noù göûi leänh TURN vaø nhaän moät reply OK(250) thì chöông trình B trôû thaønh Sender-SMTP.

Ñeå töø choái thay ñoåi vai troø receiver göûi reply 502Löu yù laø leänh naøy khoâng baét buoäc. Thöôøng noù

khoâng ñöôïc duøng trong tình traïng keânh giao chuyeån laø TCP. Tuy nhieân khi trò giaù cho vieäc thieát laäp keânh giao chuyeån cao, leänh naøy coù theå raát coù ích. Ví duï nhö leänh naøy coù ích trong vieäc hoå trôï laø trao ñoåi mail duøng heä thoáng public switched telephone laøm moät keânh giao chuyeån, ñaëc bieät neáu moät soá host ñeà cöû caùc host khaùc cho vieäc trao ñoåi mail.

IV. ÑAËC TAÛ SMTP A. Nhöõng leänh SMTP (Commands SMTP) 1. Ngöõ nghóa leänh :Nhöõng leänh SMTP ñònh nghóa söï truyeàn mail hay chöùc

naêng cuûa heä thoáng mail ñöôïc yeâu caàu bôûi user. Nhöõng leänh SMTP laø nhöõng chuoãi kyù töï keát thuùc baèng <CRLF>. Baûn thaân maõ leänh laø nhöõng kyù töï chöõ keát thuùc bôûi chuoãi <SP> neáu coù nhöõng tham soá theo sau vaø <CRLF> khaùc. Cuù phaùp cuûa nhöõng mailbox phaûi tuaân theo nhöõng thoaû hieäp phía ngöôøi nhaän. Nhöõng reply SMTP ñöôïc baøn ñeán trong phaàn B.

Moät söï giao dòch mail bao goàm vaøi ñoái töôïng döõ lieäu ñöôïc giao tieáp khi nhöõng ñoái soá cho caùc leänh khaùc nhau.

trang 48

Page 49: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Reverse-path laø ñoái soá cuûa leänh MAIL. Forward-path laø ñoái soá cuûa leänh RCPT. Vaø mail data laø ñoái soá cuûa leänh DATA. Ba ñoái soá vaø nhöõng ñoái töôïng döõ lieäu ñöôïc duy trì cho ñeán khi xaùc nhaän truyeàn xong bôûi söï chæ ñònh keát thuùc cuûa mail data thì thaät söï keát thuùc giao dòch. Moâ hình cho noù laø nhöõng buffer rieâng bieät ñöôïc cung caáp ñeå giöõ kieåu cuûa ñoái töôïng döõ lieäu. Moät soá leänh ñaëc tröng sinh ra thoâng tin ñöôïc gaén vaøo moät buffer ñaëc tröng, hay laøm cho moät hay nhieàu buffer bò xoaù. HELLO (HELO) : Leänh naøy duøng ñònh danh Sender-SMTP ñeán Receiver-SMTP. Tröôøng ñoái soá chöùa host name cuûa Sender-SMTP. Receiver-SMTP ñònh danh noù ñeán Sender-SMTP trong traû lôøi baét tay cho vieäc keát noái, vaø trong caâu traû lôøi cho leänh naøy.Leänh naøy vaø moät reply OK ñeå xaùc nhaän caû hai Sender-SMTP vaø Receiver-SMTP ñang trong tình traïng khôûi ñoäng, ñieàu ñoù laø: Khoâng coù moät giao dòch mail naøo ñang tieán haønh vaø taát caû caùc baûng traïng thaùi vaø buffer ñaõ ñöôïc xoaù. MAIL : Leänh naøy ñöôïc duøng khôûi taïo moät giao dòch mail trong ñoù mail data ñöôïc phaân phoái ñeán moät hay nhieàu mailbox. Feild ñoái soá chöùa moät reverse-path. Reverse-path bao goàm moät danh saùch caùc host tuyø yù vaø mailbox cuûa user. Khi danh saùch caùc host hoaøn taát noù laø moät loä trình nguoàn “trôû veà” vaø chæ ñònh mail ñoù ñöôïc chia ca thoâng qua moãi host treân danh saùch ñoù (host ñaàu tieân trong list laø host chia ca gaàn nhaát). List naøy ñöôïc duøng nhö moät loä trình nguoàn ñeå traû veà ngöôøi göûi nhöõng thoâng baùo khoâng theå phaân phaùt. Taïi moãi host chia ca noù theâm phaàn ñònh danh cuûa baûn thaân vaøo choå baét ñaàu cuûa list ñoù vaø phaûi duøng teân cuûa noù ñöôïc bieát trong IPCE nôi noù seõ chia ca mail ñeán ñoù, ñuùng hôn laø ICPE coù mail ñeán töø ñoù (neáu chuùng khaùc nhau). Trong moät soá loaïi message thoâng baùo loãi (ví duï thoâng baùo mail khoâng theå phaân phaùt) reverse-path coù theå laø null.

RECIPIENT (RCPT) : Leänh naøy duøng ñònh danh moät ngöôøi nhaän mail rieâng leû, nhieàu recipient ñöôïc ñaëc taû baèng nhieàu leänh naøy. Forward-path bao goàm moät danh saùch caùc host tuyø yù vaø moät mailbox ñích ñöôïc yeâu caàu. Khi danh saùch host ñoù hoaøn taát. Noù laø moät loä trình nguoàn vaø chæ ñònh mail phaûi ñöôïc chia ca ñeán host keá tieáp treân list ñoù. Neáu Receiver-SMTP khoâng thöïc thi chöùc naêng chia ca noù coù theå duøng ñöôïc reply naøy vaø seõ cho moät unknown local user (550). Khi mail ñöôïc chia ca, host chia ca phaûi chuyeån phaàn ñònh danh noù töø choå baét ñaàu forward-path vaø ñaët vaøo choå baét ñaàu cuûa reverse-path. Khi mail traûi ra tôùi ñích

trang 49

Page 50: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

cuoái cuøng (forward-path chæ chöùa moät mailbox ñích) receiver-SMTP cheøn noù vaøo trong mailbox ñích trong söï ñoàng yù vôùi thoaû hieäp host mail cuûa noù.

Ví duïÏ mail ñöôïc nhaän taïi host chia ca A vôùi nhöõng ñoái soá: FROM:<[email protected]> TO:<@HOSTA.ARPA,@HOSTB.ARPA:[email protected]>

Seõ ñöôïc chia ca ñeán host B vôùi ñoái soá FROM:<@HOSTA.ARPA:[email protected]> TO:<@HOSTB.ARPA:[email protected]>. Leänh naøy sinh ra ñoái soá forward-path cuûa noù ñöôïc gaén vaøo forward-path buffer. DATA(DATA) : Receiver-SMTP xöû lyù nhöõng doøng theo sau leänh naøy khi mail töø Sender-SMTP ñeán. Noù laøm cho mail data töø leänh naøy ñöôïc ghi vaøo data buffer. Mail data naøy coù theå chöùa nhöõng kyù töï cuûa 128 maõ ACSII. Data mail ñöôïc keát thuùc baèng moät doøng chæ chöùa moät daáu chaám. Ñoù laø moät daõy kyù töï "<CRLF>. <CRLF>" (xem phaàn 4.D.2). Vaø ñoù laø chæ ñònh keát thuùc cuûa mail data. Söï chæ ñònh keát thuùc moät chuoåi ñoøi hoûi ngöôøi nhaän phaûi xöû lyù vieäc löu tröõ nhöõng thoâng tin giao dòch mail ngay laäp töùc. Quaù trình xöû lyù naøy duøng thoâng tin trong reverse-path buffer, forward-path buffer, mail data buffer, vaø khi hoaøn taát leänh naøy nhöõng buffer ñoù seõ bò xoùa, nhöõng message ñöôïc chia ca seõ coù nhieàu doøng ñaùnh daáu thôøi gian. Khi moät Receiver-SMTP taïo ra “final delivery” cuûa moät message noù cheøn vaøo choå baét ñaàu cuûa mail data moät doøng return-path. Doøng return-path ñoù baûo quaûn thoâng tin trong “reverse-path” töø leänh mail. Ôû ñaây deliver final coù nghóa laø message ñoù rôøi khoûi theá giôùi SMTP. Thoâng thöôøng coù nghóa laø noù ñaõ ñöôïc chuyeån ñeán user ñích, nhöng trong moät soá tröôøng hôïp noù coù theå ñöôïc xöû lyù nöõa vaø vaø ñöôïc giao chuyeån bôûi heä thoáng mail khaùc. Coù theå cho mailbox trong return-path laø khaùc bieät vôùi mailbox thaät söï cuûa Sender-SMTP, ví duï nhö neáu nhöõng traû lôøi error ñöôïc duøng phaân phaùt moät loãi ñaëc bieät ñieàu khieån mailbox. Hai ñoaïn tröôùc yù noùi mail data cuoái cuøng seõ baét ñaàu vôùi moät doøng return-path theo sau laø moät hay nhieàu doøng ñaùnh daáu thôøi gian , sau nhöõng doøng naøy seõ laø phaàn header vaø body cuûa mail data [2].

trang 50

Page 51: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Söï ñeà caäp ñaëc bieät caàn thieát cho söï traû lôøi (response) vaø söï haønh ñoäng tieáp nöõa ñöôïc yeâu caàu khi quaù trình xöõ lyù theo sau söï chæ ñònh keát thuùc mail data laø söï thaønh coâng cuïc boä. Ñieàu naøy coù theå phaùt sinh neáu sau khi chaáp nhaän moät vaøi ngöôøi nhaän vaø data mail cuûa receiver-SMTP thaáy mail data ñoù coù theå ñöôïc phaân phaùt ñeán moät soá ngöôøi thaønh coâng nhöng laïi khoâng theå ñeán nhöõng ngöôøi khaùc (ví duï nhö xaûy ra vaán ñeà veà vieäc chæ ñònh vò trí cuûa mailbox). Trong tình traïng nhö vaäy caâu traû lôøi cho leänh DATA phaûi laø moät reply OK. Nhöng receiver-SMTP phaûi soaïn vaø göûi veà nôi xuaát xöù cuûa message ñoù moät message thoâng baùo “undelivered mail”. Moät thoâng baùo ñôn lieät keâ taát caû caùc recipient khoâng nhaän ñöôïc message, hay nhöõng message thoâng baùo rieâng leõ phaûi ñöôïc göûi cho töøng recipient moät , taát caû nhöõng thoâng baùo mail khoâng theå phaân phaùt ñöôïc göûi duøng leänh MAIL (ngay caû neáu keát quaû ñoù töø quaù trình xöû lyù moät leänh SEND, SOML, hay SAML ).

Ví duï cho ñöôøng daãn traû veà vaø nhaän ñaùnh daáu thôøi gian nhaän: Return-Path: <@GHI.ARPA,@DEF.ARPA,@ABC.ARPA:[email protected]> Received: from GHI.ARPA by JKL.ARPA ; 27 Oct 81 15:27:39 PST Received: from DEF.ARPA by GHI.ARPA ; 27 Oct 81 15:15:13 PST Received: from ABC.ARPA by DEF.ARPA ; 27 Oct 81 15:01:59 PST Date: 27 Oct 81 15:01:01 PST From: [email protected] Subject: Improved Mailing System Installed To: [email protected] This is to inform you that ... SEND (SEND) : Leänh naøy duøng khôûi taïo moät giao dòch mail trong ñoù mail data ñöôïc phaân phaùt ñeán moät hay nhieàu terminal. Tröôøng ñoái soá chöùa moät reverse-path. Leänh naøy thaønh coâng neáu message ñöôïc phaân phaùt ñeán moät terminal. Reverse-path bao goàm moät list caùc host vaø mailbox ngöôøi göûi tuyø yù khi list ñoù hoaøn taát, noù laø moät loä trình nguoàn “trôû veà” vaø chæ ñònh mail ñaõ ñöôïc chia ca thoâng qua caùc host trong list ñoù (host ñaàu tieân trong list laø host chia ca gaàn nhaát) danh saùch naøy ñöôïc duøng nhö moät loä trình nguoàn ñeå traû veà cho ngöôøi göûi nhöõng thoâng baùo veà vieäc khoâng phaân phaùt ñöôïc. Khi moãi host chia ca theâm phaàn ñònh danh vaøo trong vò trí baét ñaàu cuûa list , noù phaûi

trang 51

Page 52: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

duøng teân maø noù ñöôïc bieát ñeán trong IPCE nôi noù seõ chia ca mail tôùi ñoù , ñuùng hôn laø IPCE coù mail tôùi töø ñoù. Leänh naøy xoaù reverse-path buffer, forward-path buffer vaø mail data buffer vaø cheøn thoâng tin reverse-path töø leänh naøy vaøo trong reverse-path buffer. END OR MAIL (SOML) : Leänh naøy duøng khôûi taïo moät giao dòch mail trong ñoù mail data ñöôïc phaân phaùt ñeán moät hay nhieàu terminal hay mailbox. Cho töøng recipient, data mail ñöôïc phaân phaùt ñeán terminal cuûa ngöôøi nhaän neáu ngöôøi nhaän ñoù ñang hoaït ñoäng treân host ñoù (vaø chaáp nhaän nhöõng terminal message ), maët khaùc laø ñeán mailbox cuûa nhöõng ngöôøi nhaän ñoù. Tröôøng ñoái soá chöùa moät reverse-path . Leänh naøy thaønh coâng khi message ñöôïc phaân phaùt ñeán moät terminal hay mailbox. Reverse-path bao goàm moät danh saùch caùc host tuyø yù vaø mailbox cuûa ngöôøi göûi. Khi danh saùch caùc host ñoù hoaøn taát, noù laø moät loä trình nguoàn “trôû veà” vaø chæ ñònh mail ñoù ñaõ ñöôïc chia ca thoâng qua caùc host treân danh saùch (host ñaàu tieân trong danh saùch laø host chia ca gaàn nhaát). Danh saùch naøy ñöôïc duøng nhö moät loä trình nguoàn traû veà cho ngöôøi göûi nhöõng thoâng baùo veà vieäc khoâng theå phaân phaùt. Khi moãi host chia ca theâm phaàn ñònh danh noù vaøo choå baét ñaàu cuûa danh saùch ñoù, noù phaûi duøng teân ñöôïc bieát ñeán trong IPCE nôi noù seõ chia ca mail ñeán ñoù ñuùng hôn laø IPCE coù mail ñeán töø ñoù(neáu chuùng khaùc nhau). Leänh naøy xoaù reverse-path buffer, forward-path buffer vaø mail data buffer vaø cheøn thoâng tin reverse-path töø leänh naøy vaøo trong reverse-path buffer. SEND AND MAIL (SAML) : Leänh naøy duøng khôûi taïo moät giao dòch mail trong ñoù mail data ñöôïc phaân phaùt ñeán moät hay nhieàu terminal vaø caùc mailbox. Cho töøng ngöôøi nhaän mail ñöôïc phaân phaùt ñeán terminal cuûa ngöôøi nhaän neáu ngöôøi nhaän ñoù ñang hoaït ñoäng treân host ñoù (vaø chaáp nhaän nhöõng terminal message ) vaø cho taát caû recipient thì ñeán mailbox cuûa caùc recipient ño. Tröôøng ñoái soá chöùa moät reverse-path. Leänh naøy thaønh coâng khi message ñöôïc phaân phaùt ñeán mailbox.

Reverse-path bao goàm moät danh saùch caùc host tuyø yù vaø mailbox cuûa ngöôøi göûi. Khi danh saùch hoaøn taát noù laø moät loä trình nguoàn “trôû veà” vaø chæ ñònh mail ñaõ ñöôïc chia ca thoâng qua caùc host trong danh saùch ñoù(host ñaàu tieân trong danh saùch laø host chia ca gaàn nhaát ) Danh saùch naøy ñöôïc duøng nhö moät loä trình nguoàn traû veà cho ngöôøi göûi nhöõng thoâng baùo veà vieäc khoâng theå phaân phaùt. Khi moãi host chia ca theâm phaàn ñònh danh noù vaøo choå baét

trang 52

Page 53: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

ñaàu cuûa danh saùch ñoù noù phaûi duøng teân maø noù ñöôïc bieát ñeán trong IPCE maø noù seõ chia ca mail ñeán ñoù ñuùng hôn laø IPCE maø mail ñeán töø ñoù (neáu chuùng khaùc nhau).

Leänh naøy xoaù reverse-path buffer, forward-path buffer vaø mail data buffer vaø cheøn thoâng tin reverse-path töø leänh naøy vaøo trong reverse-path buffer.

RESET (RSET) : Leänh naøy ñònh roõ giao dòch mail hieän haønh bò huyû boû. Caùc ngöôøi göûi, recipient, mail data ñaõ löu seõ bò huyû boû vaø taát caû caùc baûng traïng thaùi, caùc buffer bò xoaù. Receiver phaûi göûi moät reply OK. VERIFY (VRFY) : Leänh naøy yeâu caàu receiver xaùc nhaän ñoái soá ñònh danh moät user. Neáu noù laø moät user name, full name cuûa user ñoù (neáu receiver bieát) vaø mailbox ñaëc taû ñaày ñuû ñöôïc traû veà.Leänh naøy khoâng aûnh höôûng ñeán reverse-path buffer, forward-path buffer vaø data mail buffer. EXPAND (EXPN) : Leänh naøy yeâu caàu receiver xaùc nhaän moät mailing list (danh saùch ñòa chæ) vaø traû veà moät thaønh phaàn trong danh saùch ñoù. Full name cuûa caùc user (neáu bieát) vaø nhöõng mailbox ñöôïc ñaëc taû ñaày ñuû ñöôïc traû veà trong moät reply nhieàu doøng. Leänh naøy khoâng aûnh höôûng ñeán reverse-path buffer, forward-path buffer vaø data mail buffer. HELP (HELP) : Leänh naøy laøm cho receiver thoâng tin giuùp ñôõ cho ngöôøi göûi leänh HELP. Leänh naøy coù theå nhaän moät ñoái soá (coù theå laø teân leänh) vaø traû veà thoâng tin chi tieát. Leänh naøy khoâng aûnh höôûng ñeán reverse-path buffer, forward-path buffer vaø data mail buffer. NOOP (NOOP) : Leänh naøy khoâng aûnh höôûng caùc tham soá hay caùc leänh ñöôïc ñöa vaøo tröôùc noù, noù ñaëc taû khoâng coù moät haønh ñoäng naøo khaùc hôn laø receiver göûi moät reply OK. Leänh naøy khoâng aûnh höôûng ñeán reverse-path buffer, forward-path buffer vaø data mail buffer. QUIT (QUIT) : Leänh naøy ñònh roõ receiver phaûi göûi moät reply OK vaø sau ñoù ñoùng keânh giao dòch . Receiver seõ khoâng ñoùng keânh giao dòch cho ñeán khi noù nhaän vaø traû lôøi cho leänh QUIT (ngay caû neáu coù moät loãi xaõy ra). Ngöôøi göûi seõ khoâng ñoùng keânh giao dòch cho ñeán khi noù göûi moät leänh QUIT vaø nhaän reply ñoù (ngay caû neáu coù moät loãi traû lôøi cho leänh tröôùc ñoù). Neáu keát noái bò ñoùng tröôùc thôøi gian mong muoán receiver seõ laøm vieäc nhö vöøa nhaän ñöôïc moät leänh RSET (boû taát caû caùc giao dòch ñang treo maø chöa laøm, nhöng khoâng “undo” nhöõng giao dòch ñaõ hoaøn taát tröôùc ñoù) ngöôøi göûi seõ haønh ñoäng nhö neáu

trang 53

Page 54: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

leänh hay giao dòch ñoù trong quaù trình xöû lyù nhaän ñöôïc moät loãi taïm thôøi (4xx). TURN (TURN) : Leänh naøy ñònh roõ Receiver-SMTP phaûi göûi moät trong hai reply sau: (1) reply OK vaø sau ñoù nhaän vai troø cuûa moät Sender-SMTP, hay (2) göûi moät reply töø choái vaø giöõ laïi vai troø moät Receiver-SMTP. Neáu program-A hieän taïi laø moät Sender-SMTP göûi moät leänh TURN vaø nhaän moät reply OK (250) thì program-A trôû thaønh Receiver-SMTP sau ñoù program-A seõ trong traïng thaùi khôûi ñoäng chæ neáu keânh giao chuyeån ñaõ ñöôïc môû, sau ñoù noù chôø nhaän moät chaøo hoûi dòch vuï ñaõ saün saøng 220. Ñeå töø choái thay ñoåi vai troø Receiver-SMTP göûi moät reply 502. Coù söï haïn cheá trong traät töï khi duøng nhöõng leänh naøy.

Ñaàu tieân trong moät cuoäc trao ñoåi phaûi laø leänh HELLO, leänh naøy coù theå ñöôïc duøng sau ñoù trong moät cuoäc trao ñoåi khaùc. Neáu ñoái soá trong leänh HELLO khoâng ñöôïc chaáp nhaän moät reply failure 501 phaûi ñöôïc traû veà vaø Receiver-SMTP ñoù phaûi ôû trong traïng cuõ.

Nhöõng leänh NOOP, HELP, EXPAND vaø VRFY coù theå ñöôïc duøng nhieàu laàn trong moät cuoäc giao dòch.

Caùc leänh MAIL, SEND, SOML, vaø SAML baét ñaàu moät giao dòch mail. Khi baét ñaàu moät giao dòch mail bao goàm moät leänh khôûi taïo giao dòch , moät hay nhieàu leänh RCPT, vaø moät leänh DATA ñoù laø moät traät töï . moät giao dòch mail coù theå ñöôïc boû qua bôûi moät leänh RSET coù theå coù hay khoâng coù nhieàu giao dòch trong moät cuoäc trao ñoåi (session).

Neáu ñoái soá cuûa leänh khôûi ñoäng giao dòch khoâng theå chaáp nhaän moät reply failure 501 phaûi ñöôïc traû veà vaø Sender-SMTP phaûi naèm trong traïng thaùi cuõ. Neáu nhöõng leänh trong cuoäc giao dòch khoâng ñuùng traät töï moät reply failure 503 ñöôïc traû veà vaø Receiver-SMTP ñoù phaûi naèm trong traïng thaùi cuõ.

Leänh cuoái cuøng trong cuoäc trao ñoåi phaûi laø leänh QUIT vaø leänh QUIT khoâng theå ñöôïc duøng nhieàu laàn trong moät cuoäc trao ñoåi.

2- Cuù phaùp leänh : Nhöõng leänh naøy bao goàm moät maõ leänh theo sau laø

moät tröôøng ñoái soá . Maõ leänh laø boán kyù töï chöõ . Nhöõng kyù töï thöôøng vaø hoa ñöôïc xöõ lyù nhö nhau . Vaäy nhöõng töø sau ñaây coù theå ñaïi dieän cho leänh MAIL: MAIL Mail mail MaIl mAIl

trang 54

Page 55: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

ÔÛ ñaây cuõng duøng moät soá kyù hieäu trình baøy cho nhöõng giaù trò cuûa tham soá, chaúng haïn nhö “TO” hay “to” cho forward-path. Maõ leänh vaø nhöõng tröôøng ñoái soá ñöôïc taùch ra bôûi moät hay nhieàu khoaûng traéng. Tuy nhieân beân trong nhöõng ñoái soá reverse-path vaø forward-path kieåu chöõ raát quan troïng. Trong moät soá host user “khanh” khaùc vôùi user “Khanh”.

Tröôøng ñoái soá goàm coù moät bieán chieàu daøi chuoåi kyù töï, keát thuùc vôùi chuoåi <CLRF>. Receiver-SMTP khoâng nhaän haønh ñoäng cho ñeán khi nhaän ñöôïc chuoåi <CLRF> naøy.

Daáu ngoaëc vuoâng bieåu thò moät tröôøng ñoái soá tuyø yù. Neáu khoâng nhaän choïn löïa naøy moät maëc ñònh phuø hôïp seõ ñöôïc aùp duïng. Sau ñaây laø nhöõng leänh SMTP:

HELO <SP> <domain> <CRLF>MAIL <SP> FROM:<reverse-path> <CRLF>RCPT <SP> TO:<forward-path> <CRLF>DATA <CRLF>RSET <CRLF>SEND <SP> FROM:<reverse-path> <CRLF>SOML <SP> FROM:<reverse-path> <CRLF>SAML <SP> FROM:<reverse-path> <CRLF>VRFY <SP> <string> <CRLF>EXPN <SP> <string> <CRLF>HELP [<SP> <string>] <CRLF>NOOP <CRLF>QUIT <CRLF>TURN <CRLF>

Cuù phaùp cuûa nhöõng tröôøng ñoái soá treân( duøng kyù hieäu BNF coù theå aùp duïng ñöôïc ôû ñaây) ñöôïc cho beân döôùi. Kyù hieäu “…” chæ ñònh moät tröôøng coù theå ñöôïc laëp moät hay nhieàu laàn. <reverse-path> ::= <path> <forward-path> ::= <path> <path> ::= "<" [ <a-d-l> ":" ] <mailbox> ">" <a-d-l> ::= <at-domain> | <at-domain> "," <a-d-l> <at-domain> ::= "@" <domain> <domain> ::= <element> | <element> "." <domain> <element> ::= <name> | "#" <number> | "[" <dotnum> "]" <mailbox> ::= <local-part> "@" <domain> <local-part> ::= <dot-string> | <quoted-string> <name> ::= <a> <ldh-str> <let-dig> <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str> <let-dig> ::= <a> | <d> <let-dig-hyp> ::= <a> | <d> | "-"

trang 55

Page 56: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

<dot-string> ::= <string> | <string> "." <dot-string> <string> ::= <char> | <char> <string> <quoted-string> ::= """ <qtext> """ <qtext> ::= "\" <x> | "\" <x> <qtext> | <q> | <q> <qtext> <char> ::= <c> | "\" <x> <dotnum> ::= <snum> "." <snum> "." <snum> "." <snum> <number> ::= <d> | <d> <number> <CRLF> ::= <CR> <LF> <CR> ::= the carriage return character (ASCII code 13) <LF> ::= the line feed character (ASCII code 10) <SP> ::= the space character (ASCII code 32) <snum> ::= one, two, or three digits representing a decimal integer value in the range 0 through 255

<a> ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case <c> ::= any one of the 128 ASCII characters, but not any <special> or <SP> <d> ::= any one of the ten digits 0 through 9 <q> ::= any one of the 128 ASCII characters except <CR>, <LF>, quote ("), or backslash (\) <x> ::= any one of the 128 ASCII characters (no exceptions) <special> ::= "<" | ">" | "(" | ")" | "[" | "]" | "\" | "." | "," | ";" | ":" | "@" """ | the control characters (ASCII codes 0 through 31 inclusive and 127)

Chuù yù daáu suyeät ngöôïc “\” laø moät kyù töï ñònh ñaët, noù ñöôïc duøng chæ ñònh kyù töï keá tieáp ñöôïc duøng moät caùch chính xaùc (thay cho söï thoâng dòch thoâng thöôøng cuûa noù) ví duï nhö "Khanh\,Sam" seõ ñöôïc duøng chæ ñònh moät kyù töï moät tröôøng chín töï ñôn vôùi daáu phaåy laø kyù töï thöù saùu cuûa tröôøng.

Thöôøng nhöõng host ñöôïc bieát ñeán baèng nhöõng caùi teân, noù ñöôïc bieân dòch thaønh ñòa chæ cuûa moãi host. Löu yù teân phaàn töû cuûa caùc Domain phaûi laø teân chính thöùc, khoâng duøng teân hieäu hay bí danh.

Thænh thoaûng moät host khoâng bieát ñeán chöùc naêng bieân dòch vaø söï giao tieáp bò khoaù. Ñeå phôùt lôø chöôùng ngaïi naøy hai caáu truùc daïng soá cuõng ñöôïc chaáp nhaän cho “names”

trang 56

Page 57: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

cuûa host. Moät daïng laø moät soá nguyeân heä thaäp phaân naèm sau kyù hieäu giôùi haïn “#” noù chæ ñònh soá naøy laø ñòa chæ cuûa host. Moät daïng khaùc laø boán soá nguyeân nhoû bao trong daáu ngoaëc vuoâng vaø caùch nhau bôûi nhöõng daáu chaám nhö "[123.255.37.2]". Noù chæ ñònh moät ñòa chæ 32 bit- ARPA internet trong boán tröôøng 8 bit.

Doøng ñaùnh daáu thôøi gian vaø doøng ñöôøng daãn trôû veà thöôøng ñöôïc ñònh nghóa nhö ví duï sau : <return-path-line> ::= "Return-Path:" <SP><reverse-path><CRLF> <time-stamp-line> ::= "Received:" <SP> <stamp> <CRLF> <stamp> ::= <from-domain> <by-domain> <opt-info> ";" <daytime> <from-domain> ::= "FROM" <SP> <domain> <SP> <by-domain> ::= "BY" <SP> <domain> <SP> <opt-info> ::= [<via>] [<with>] [<id>] [<for>] <via> ::= "VIA" <SP> <link> <SP> <with> ::= "WITH" <SP> <protocol> <SP> <id> ::= "ID" <SP> <string> <SP> <for> ::= "FOR" <SP> <path> <SP> <link> ::= The standard names for links are registered with the Network Information Center ( Teân chuaån cho nhöõng lieân keát ñöôïc ñaêng kyù vôùi Net Work Information Center) <protocol> ::= The standard names for protocols are registered with the Network Information Center. (Teân chuaån cho nhöõng protocol ñöôïc ñaêng kyù vôùi Net Work Information Center) <daytime> ::= <SP> <date> <SP> <time> <date> ::= <dd> <SP> <mon> <SP> <yy> <time> ::= <hh> ":" <mm> ":" <ss> <SP> <zone> <dd> ::= the one or two decimal integer day of the month in the range 1 to 31. <mon> ::= "JAN" | "FEB" | "MAR" | "APR" | "MAY" | "JUN" | "JUL" | "AUG" | "SEP" | "OCT" | "NOV" | "DEC" <yy> ::= the two decimal integer year of the century in the range 00 to 99. <hh> ::= the two decimal integer hour of the day in the range 00 to 24. <mm> ::= the two decimal integer minute of the hour in the range 00 to 59. <ss> ::= the two decimal integer second of the minute in the range 00 to 59.

trang 57

Page 58: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

<zone> ::= "UT" for Universal Time (the default) or other time zone designator (as in [2]).

Ví duï : Return Path Return-Path: <@CHARLIE.ARPA,@BAKER.ARPA:[email protected]>

Ví duï : doøng ñaùnh daáu thôøi gian :Received: FROM ABC.ARPA BY XYZ.ARPA ; 22 OCT 81

09:23:59 PDT Moät reply SMTP bao goàm moät soá ba chöõ soá (ñöôïc

truyeàn nhö ba kyù töï chöõ soá) theo sau laø moät soá vaên baûn (text). Soá ñoù ñöôïc daønh cho caùc chöông trình töï ñoäng ñeå xaùc ñònh traïng thaùi ñöa vaøo keá tieáp. Text ôû treân coù yù nghóa cho user con ngöôøi (khoâng phaûi maùy). Ba chöõ soá ñoù ñöôïc aán ñònh chöùa ñaày ñuû thoâng tin ñöôïc maõ hoaù Sender-SMTP khoâng caàn kieåm tra text ñoù vaø coù theå huyû boû hay chuyeån noù qua moät user thích hôïp. Ñaëc bieät text naøy coù theå ñoäc laäp vôùi Receiver-SMTP vaø ñoäc laäp vôùi ngöõ caûnh, do coù söï gioáng nhau trong nhöõng text khaùc nhau töøng maõ reply. Nguyeân lyù cuûa nhöõng maõ reply cho trong phuï luïc E. thoâng thöôøng moät reply ñöôïc ñònh nghóa laø chuoåi goàm: moät maõ ba chöõ soá, <SP>, moät doøng text, vaø <CRLF>, hay moät reply nhieàu doøng (nhö ñònh nghóa trong phuï luïc E) chæ nhöõng leänh EXPN vaø HELP coù keát quaû laø nhöõng reply nhieàu doøng trong nhöõng tình huoáng bình thöôøng, tuy nhieân nhöõng reply nhieàu doøng ñöôïc chaáp nhaän cho nhieàu leänh.

1. Nhöõng maõ Reply cho moät nhoùm caùc chöùc naêng:

500 Loãi cuù phaùp, khoâng chaáp nhaäp leänh [noù coù theå bao goàm nhöõng loãi nhö: leänh

quaù daøi]501 Loãi cuù phaùp trong nhöõng ñoái soá hay nhöõng

tham soá leänh khoâng ñöôïc cung caápdoøng leänh saitham soá cuûa leänh khoâng ñöôïc cung caáp211 Traïng thaùi heä thoáng, hay traû lôøi giuùp ñôõ

veà heä thoáng214 Message giuùp ñôõ [thoâng tin veà laøm theá naøo ñeå duøng receiver

hay yù nghóa cuûa moät leänh khoâng chuaån ñaëc bieät ; reply naøy

raát coù ích cho ngöôøi söû duïng]220 <domain> dòch vuï saún saøng

trang 58

Page 59: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

221 <domain> dòch vuï ñoùng keânh giao chuyeån 421 <domain> dòch vuï khoâng duøng ñöôïc, ñoùng

keânh giao chuyeån [noù coù theå laø moät reply cho nhieàu leänh neáu

dòch vuï ñoù bieát reply naøy phaûi shut down]250 Haønh doäng mail yeâu caàu ok, hoaøn thaønh251 User khoâng cuïc boä, seõ höôùng ñeán “forward-

path”450 Khoâng laáy haønh ñoäng mail yeâu caàu: mailbox

khoâng coù hieäu löïc [chaúng haïn nhö mailbox khoâng tìm thaáy, khoâng

truy xuaát ñöôïc] 451 Boû qua haønh ñoäng ñöôïc yeâu caàu; loãi trong

quaù trình xöû lyù551 User khoâng cuïc boä, vui loøng thöû laïi <forward-

path>452 Khoâng nhaän haønh ñoäng ñöôïc yeâu caàu : löu tröõ

cuûa heä thoáng khoâng ñuû552 Boû qua haønh ñoäng mail yeâu caàu: vöôït quaù

chæ ñònh löu tröõ553 Khoâng nhaän haønh ñoäng ñöôïc yeâu caàu :

khoâng chaáp nhaän teân mailbox [nhö sai cuù phaùp mailbox].

554 Khôûi ñoäng vieäc nhaän mail; keát thuùc vôùi <CLRF>.<CLRF> giao chuyeån bò sai.

2. Thöù töï cuûa danh saùch nhöõng maõ Reply soá :

211 Tình traïng heä thoáng, hay reply giuùp ñôõ heä thoáng.

214 Message giuùp ñôõ. Thoâng tin laøm theá naøo ñeå duøng receiver hay

yù nghóa cuûa moät leänh khoâng chuaån ñaëc bieät ; reply naøy raát coù

ích cho user.220 <domain> dòch vuï saún saøng 221 <domain> dòch vuï ñoùng keânh giao chuyeån 250 Haønh ñoäng mail yeâu caàu OK, hoaøn thaønh251 User khoâng cuïc boä; seõ höôùng ñeán <forward-

path>354 Khôûi ñoäng vieäc nhaäp mail; keát thuùc vôùi

<CLRF>. <CLRF>

trang 59

Page 60: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

421 <domain> dòch vuï khoâng söû duïng ñöôïc, ñoùng keânh giao

chuyeån {noù coù theå laø moät reply cho nhieàu leänh neáu dòch vuï ñoù

bieát reply naøy phaûi shut down]450 Khoâng laáy haønh ñoäng mail yeâu caàu; mailbox

khoâng hieäu löïc [nhö mailbox baän]450 Boû qua haønh ñoäng ñöôïc yeâu caàu ; loãi cuïc

boä trong quaù trình xöû lyù 451 Khoâng nhaän haønh ñoäng ñöôïc yeâu caàu; löu

tröõ cuûa heä thoáng khoâng ñuû.

500 Loãi cuù phaùp; khoâng chaáp nhaän leänh [noù coù theå bao goàm nhöõng loãi nhö: leänh

quaù daøi]501 Loãi cuù phaùp trong tham soá hay ñoái soá502 Leänh khoâng ñöôïc cung caáp 503 Doøng leänh sai 504 Tham soá cuûa doøng leänh khoâng ñöôïc cung

caáp550 Khoâng nhaän haønh ñoäng ñöôïc yeâu caàu ;

mailbox khoâng hieäu löïc [nhö mailbox khoâng tìm thaáy hay khoâng truy

caäp ñöôïc]551 User khoâng cuïc boä; vui loøng thöû <forward-

path>552 Boû qua haønh ñoäng maø mail yeâu caàu, vöôït

quaù chæ ñònh löu tröõ554 Khoâng nhaän haønh ñoäng ñöôïc yeâu caàu; teân

mailbox khoâng ñöôïc chaáp nhaän. [nhö sai cuù phaùp mailbox] giao chuyeån sai.

3. Söï lieân tuïc cuûa nhöõng Command & Reply :Söï giao tieáp giöõa Sender-SMTP vaø Receiver-SMTP ñöôïc

chæ ñònh laø moät cuoäc hoäi thoaïi tuaàn töï do Sender-SMTP ñieàu khieån. Chaúng haïn nhö Sender-SMTP sinh ra moät leänh vaø Receiver-SMTP traû lôøi vôùi moät reply. Sender-SMTP phaûi chôø söï traû lôøi naøy tröôùc khi göûi theâm leänh.

Moät reply quan troïng laø chaøo hoûi keát noái. Thoâng thöôøng moät Receiver-SMTP seõ göûi moät reply 220 “service ready” khi keát noái hoaøn thaønh. Sender-SMTP phaûi chôø message chaøo hoûi naøy tröôùc khi göûi caùc leänh.

trang 60

Page 61: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Löu yù: taát caû caùc reply kieåu chaøo hoûi duøng teân chính thöùc cuûa host server laø töø ñaàu tieân theo sau maõ reply

Ví duï : 220 <SP> USC-ISIF.ARPA <SP> Service ready <CRLF>

Baûng beân döôùi lieät keâ nhöõng reply thaønh coâng vaø thaát baïi cho moãi leänh noù phaûi ñöôïc gia nhaäp vaøo moät caùch nghieâm ngaët ñeå moät Receiver-SMTP coù theå thay theá text trong caùc reply nhöng yù nghóa vaø haønh ñoäng ñöôïc ñònh bôûi maõ soá vaø bôûi chuoãi command reply ñaëc tröng khoâng theå bò thay ñoåi.

*- Nhöõng chuoãi COMMAND-REPLY Moãi leänh ñöôïc lieät keâ vôùi caùc reply coù theå cuûa

noù. Nhöõng tieàn toá ñöôïc duøng tröôùc nhöõng reply coù theå laø “P” ñeå khôûi ñaàu (khoâng duøng trong SMTP) “I” cho phaàn giöõa, “S” cho söï thaønh coâng vaø “E” cho loãi. Reply 421 (dòch vuï khoâng hieäu löïc, ñoùng keânh giao chuyeån) coù theå cho moät soá leänh neáu receiver-SMTP nhaän bieát raèng noù phaûi shut down. Söï lieät keâ sau ñaây laø caáu truùc cô baûn cho sô ñoà traïng thaùi (state diagram) trong phaàn B.

CONNECTION ESTABLISHMENT (thieát laäp keát noái) S: 220 F: 421 HELLO S: 250 E: 500, 501, 504, 421 MAIL S: 250 F: 552, 451, 452 E: 500, 501, 421 RCPT S: 250, 251 F: 550, 551, 552, 553, 450, 451, 452 E: 500, 501, 503, 421 DATA I: 354 -> data -> S: 250 F: 552, 554, 451, 452 F: 451, 554 E: 500, 501, 503, 421 RSET S: 250 E: 500, 501, 504, 421 SEND S: 250 F: 552, 451, 452 E: 500, 501, 502, 421

trang 61

Page 62: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

SOML S: 250 F: 552, 451, 452 E: 500, 501, 502, 421 SAML S: 250 F: 552, 451, 452 E: 500, 501, 502, 421 VRFY S: 250, 251 F: 550, 551, 553 E: 500, 501, 502, 504, 421 EXPN S: 250 F: 550 E: 500, 501, 502, 504, 421 HELP S: 211, 214 E: 500, 501, 502, 504, 421 NOOP S: 250 E: 500, 421 QUIT S: 221 E: 500 TURN S: 250 F: 502 E: 500, 503

B- Sô ñoà traïng thaùi (STATE DIAGRAM) Döôùi ñaây laø sô ñoà traïng thaùi cho moät söï thi haønh

SMTP ñôn giaûn. Chæ moät chöõ soá ñaàu tieân cuûa nhöõng maõ reply ñöôïc söû duïng . Ñaây laø moät baûng traïng thaùi cho töøng nhoùm leänh SMTP nhöõng nhoùm leänh naøy ñöôïc xaùc ñònh baèng caùch xaây döïng moät moâ hình cho moãi leänh vaø sau ñoù gom nhöõng leänh ñoù laïi vôùi nhau vôùi nhöõng moâ hình gioáng nhau veà caáu truùc.

Cho moãi leänh coù ba keát quaû “thaønh coâng” (S), “thaát baïi” (F), “loãi” (E) trong sô ñoà traïng thaùi sau chuùng ta duøng kyù hieäu B cho “begin” vaø kyù hieäu W cho “wait for reply”.

Ñaàu tieân sô ñoà trình baøy cho haàu heát caùc leänh SMTP :

trang 62

B

E

W S

F

2cmd

4,5

1,3

Page 63: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Sô ñoà naøy moâ hình cho nhöõng leänh sau: HELO, MAIL, RCPT, RSET, SEND, SOML, SAML, VRFY, EXPN, HELP, NOOP, QUIT, TURN

Moät sô ñoà phöùc taïp hôn moâ hình cho leänh DATA :

Löu yù: “data” ôû ñaây laø moät chuoãi nhöõng doøng göûi töø Sender-SMTP ñeán Receiver-SMTP khoâng caàn söï traû lôøi cho ñeán khi doøng cuoái cuøng ñöôïc göûi.

C- Chi tieát 1. Söï thöïc thi toái thieåu :Hôïp leä ñeå laøm cho SMTP coù theå laøm vieäc, söï thöïc

thi toái thieåu sau ñöôïc yeâu caàu cho taát caû caùc Receiver-SMTPCOMMANDS -- HELO MAIL RCPT DATA RSET NOOP QUIT

2. Tính trong suoát :Khoâng coù moät söï cung caáp naøo cho tính trong suoát

döõ lieäu, chuoåi kyù töï <CRLF>.<CRLF> keát thuùc mail text vaø khoâng ñöôïc user göûi ñi. Thoâng thöôøng user khoâng nhaän bieát ñöôïc söï “ngaên caûn” nhöõng chuoåi kyù töï ñoù. Ñeå cho pheùp taát caû caùc text ñaõ soaïn thaûo cuûa user ñöôïc truyeàn moät caùch roõ raøng nhöõng thuû tuïc sau ñaây ñöôïc söû duïng.

trang 63

1,2B W

W F

S

EDATA

data

3 4,5

1,3

2

4,5

Page 64: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

1> Tröôùc khi göûi moät doøng döõ lieäu mail, Sender-SMTP kieåm tra kyù töï ñaàu tieân cuûa doøng ñoù. Neáu noù laø moät daáu chaám, moät daáu chaám phuï ñöôïc theâm vaøo ñaàu doøng.

2> Khi Receiver-SMTP nhaän moät doøng döõ lieäu mail noù kieåm tra doøng ñoù. Neáu doøng ñoù chæ coù moät daáu chaám ñôn thì noù laø keát thuùc cuûa mail. Neáu kyù töï ñaàu tieân laø moät daáu chaám vaø theo sau laø nhöõng kyù töï khaùc naèm treân cuøng doøng. Thì kyù töï ñaàu tieân ñoù bò xoaù.

Mail data coù theå chöùa caùc kyù töï maõ ASCII (128 kyù töï) taát caû caùc kyù töï ñöôïc phaân phaùt ñeán mailbox cuûa ngöôøi nhaän bao goàm phaàn ñònh daïng vaø nhöõng kyù töï ñieàu khieån khaùc. Neáu keânh chuyeån giao cung caáp moät luoàng döõ lieäu 8 bit (octet), nhöõng maõ ASCII 7 bit treân ñöôïc vaän chuyeån ñuùng ñieàu chænh laïi trong heä baùt phaân vôùi bit cao nhaát bò xoaù veà 0.

Noù coù theå caàn thieát ñeå bieán ñoåi döõ lieäu ñöôïc nhaän hay löu tröõ . Trong moät soá heä thoáng, ñieàu naøy caàn thieát cho nhöõng host duøng moät taäp hôïp kyù töï khaùc vôùi taäp ASCII , nhö taäp kyù töï cuïc boä cuûa chuùng hay döõ lieäu löu trong nhöõng baûng ghi nhieàu hôn chuoåi. Neáu nhöõng thay ñoåi treân laø caàn thieát, chuùng phaûi khoâi phuïc laïi (bieán ñoåi hai chieàu) ñöôïc neáu nhöõng bieán ñoåi ñoù ñöôïc aùp duïng cho mail ñöôïc chia ca.

3. Kích thöôùc : Coù vaøi ñoái töôïng ñoøi hoûi kích thöôùc nhoû nhaát lôùn

nhaát. Ñoù laø taát caû taát caû söï thöïc thi phaûi coù ñeå nhaän nhöõng ñoái töôïng coù kích thöôùc toái thieåu, nhöng khoâng baét buoäc phaûi göûi nhöõng ñoái töôïng lôùn hôn kích thöôùc naøy

user : Chieàu daøi toång coäng lôùn nhaát cuûa user name laø

64 kyù töï. domain : Chieàu daøi toång coäng lôùn nhaát cuûa domain

name hay soá laø 64 kyù töï. path : Chieàu daøi toång coäng lôùn nhaát cuûa moät doøng

leänh bao goàm nhöõng töø leänh vaø <CRLF> laø 512 kyù töï. text line (doøng vaên baûn) : Chieàu daøi toång coäng lôùn

nhaát cuûa doøng vaên baûn bao goàm <CRLF> laø 1000 kyù

trang 64

ÑEÅ COÙ PHAÏM VI LÔÙN NHAÁT COÙ THEÅ, THÖÏC THI KYÕ THUAÄT ÑAÙNH LÖØA

KHOÂNG GIÔÙI HAÏN CHIEÀU DAØI CUÛA NHÖÕNG ÑOÁI TÖÔÏNG SEÕ ÑÖÔÏC DUØNG

Page 65: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

töï (khoâng tính daáu chaám ôû ñaàu ñöôïc nhaân leân cho vaán ñeà trong suoát).

recipients buffer : Toång soá recipient lôùn nhaát laø 100 recipient.

* Loãi vöôït quaù quyeàn ñöôïc giôùi haïn coù theå ñöôïc baùo caùo baèng caùch duøng nhöõng maõ reply. Ví duï nhö :

500 Line too long.(doøng quaù daøi) 501 Path too long (ñöôøng daãn quaù daøi) 552 Too many recipients.(quaù nhieàu recipient) 552 Too much mail data (quaù nhieàu mail data)

PHUÏ LUÏC A. Dòch vuï vaän chuyeån TCP

Transmission Control Protocol (ñieàu khieån giao chuyeån [3]) ñöôïc duøng trong ARPA Internet vaø trong moät soá maïng theo tieâu chuaån US DoD cho caùc giao thöùc lieân maïng . * Thieát laäp keát noái : Moät keânh giao chuyeån SMTP laø moät keát noái ñöôïc thieát laäp the ngöôøi göûi process port U and the receiver process port L. noù laø moät keát noái full duplex ñôn giaûn ñöôïc duøng nhö keânh keát noái treân protocol naøy ñöôïc gaùn moät dòch vuï port 25 (31 heä möôøi) ñoù laø L=25. * Truyeàn döõ lieäu : Keát noái TCP hoå trôï truyeàn nhöõng byte 8 bit. Döõ lieäu SMTP laø nhöõng kyù töï 7 bit maõ ASCII. Moãi kyù töï ñöôïc truyeàn nhö moät byte 8 bit vôùi bit cao nhaát bò xoaù veà 0.

B. Dòch vuï vaän chuyeån NCP ARPANET Host-to-Host Protocol [4] (ñöôïc cung caáp bôûi

Network Control Program) coù theå ñöôïc duøng trong ARPANET . * Thieát laäp keát noái :

Keânh giao chuyeån SMTP ñöôïc thieát laäp qua NCP giöõa ngöôøi göûi process socket U vaø receiver process socket L. The Initial Connection Protocol [5] laø keát quaû laø keát quaû tieáp theo moät caëp keát noái simplex. Caëp keát noái naøy ñöôïc duøng nhö keânh giao chuyeån . protocol naøy ñöôïc gaùn toaøn boä socket 25 , ñoù laø L=25. * Truyeàn döõ lieäu:

Keát noái NCP data ñöôïc thieát laäp trong cheá ñoä 8 bit. SMTP data laø nhöõng kyù töï ASCII 7 bit . Moãi kyù töï ñöôïc truyeàn nhö moät byte 8 bit vôùi bit cao nhaát bò xoaù veà 0.

C. NTTS Network Independent Transport Service [6] (dòch vuï vaän

chuyeån maïng ñoäc laäp) coù theå ñöôïc duøng .

trang 65

Page 66: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

* Thieát laäp keát noái :Keânh giao chuyeån SMTP ñöôïc thieát laäp qua NTTS sender

process vaø receiver process. Sender process thi haønh CONNECT ban ñaàu vaø chôø receiver process thöïc thi ACCEPT ban ñaàu . * Truyeàn döõ lieäu :

Keát noái NTTS hoå trôï giao chuyeån caùc byte 8 bit . SMTP data laø nhöõng kyù töï ASCII 7 bit . Moãi kyù töï ñöôïc truyeàn nhö moät byte 8 bit vôùi bit cao nhaát bò xoaù veà 0.

D. Dòch vuï vaän chuyeån X.25 Noù coù theå duøng X.25 service [7] cung caáp bôûi Public

Data Networks moät caùch tröïc tieáp , tuy nhieân noù ñöôïc ñeà nghò moät protocol ñaùng tin caäy chaúng haïn nhö TCP ñöôïc duøng ôû treân keát noái X.25.

E. Nguyeân lyù cuûa caùc maõ Reply Ba chöõ soá cuûa maõ reply moãi chöõ coù moät yù nghóa

ñaëc bieät. Kyù töï ñaàu tieân bieåu thò response, good hay bad hay khoâng hoaøn taát. Moät sender-SMTP thaät seõ coù theå xaùc nhaän haønh ñoäng keá tieáp cuûa noù (tieán haønh theo keá hoaïch, laøm laïi, caét giaûm bôùt, ..) baèng moät caùch ñôn giaûn laø kieåm tra chöõ soá ñaàu tieân naøy. Moät Sender-SMTP muoán bieát moät caùch gaàn ñuùng caùc kieåu loãi xaûy ra (nhö mail system error, command syntax error) coù theå kieåm tra chöõ soá thöù hai, ñeå daønh chöõ soá thöù ba cho vieäc keát thuùc söï saép ñaët taêng daàn cuûa thoâng tin.* Coù naêm giaù trò cho chöõ soá ñaàu tieân cuûa maõ reply: 1yz Positive Preliminary reply (reply khaúng ñònh ban ñaàu ) : Leänh naøy ñöôïc chaáp nhaän nhöng haønh ñoäng yeâu caàu seõ ñöôïc giöõ hoaõn laïi, trì hoaõn söï xaùc nhaän thoâng tin trong reply naøy. Sender-SMTP seõ göõi moät leänh khaùc ñònh roõ tieáp tuïc hay boû qua haønh ñoäng naøy.[ Löu yù: SMTP khoâng coù leänh naøo thöøa nhaän kieåu reply naøy, vaødo ñoù khoâng coù leänh tieáp tuïc hay boû qua]. 2yz Positive Completion reply (reply khaúng ñònh söï hoaøn thaønh) :

Haønh ñoäng ñöôïc yeâu caàu hoaøn taát moät caùch thaønh coâng, moät yeâu caàu môùi coù theå ñöôïc baét ñaàu . 3yz Positive Intermediate reply (reply khaúng ñònh giöõa chöøng) :

Leänh naøy ñöôïc chaáp nhaän nhöng haønh ñoäng yeâu caàu seõ ñöôïc giöõ hoaõn laïi, trì hoaõn söï nhaän thoâng tin theâm. Sender-SMTP seõ göõi moät leänh khaùc ñònh roõ thoâng tin naøy. Reply naøy ñöôïc duøng trong nhöõng nhoùm leänh tuaàn töï. 4yz Transient Negative Completion reply (reply phuû ñònh söï hoaøn thaønh ngaén haïn):

trang 66

Page 67: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Leänh naøy khoâng ñöôïc chaáp nhaän vaø haønh ñoäng yeâu caàu khoâng xaûy ra, tuy nhieân traïng thaùi loãi laø taïm thôøi, haønh ñoäng coù theå ñöôïc yeâu caàu trôû laïi. Ngöôøi göûi seõ quay trôû laïi baét ñaàu chuoåi leänh (neáu coù) khoù gaùn moät nghóa “töùc thôøi” cho noù khi hai site khaùc nhau (Receiver vaø sender-SMTPs) phaûi ñoàng yù söï thoâng dòch. Moãi reply loaïi naøy coù moät giaù trò thôøi gian khaùc nhau nhöng Sender-SMTP ñöôïc khuyeán khích thöû laïi. Moät quy taéc laät trang ñeå xaùc ñònh neáu moät reply ñaëc vaøo trong loaïi 4yz hay 5yz (xem beân döôùi) thì nhöõng reply ñoù laø 4yz neáu chuùng coù theå ñöôïc laëp laïi maø khoâng caàn thay ñoåi gì trong caáu truùc leänh hay trong nhöõng thuoäc tính cuûa ngöôøi göûi hay ngöôøi nhaän (nhö moät leänh ñöôïc laëp laïi moät caùch gioáng nhau vaø Receiver –SMTP khoâng ñöa ra moät söï thöïc thi môùi). 5yz Permanent Negative Completion reply (reply phuû ñònh söï hoaøn thaønh daøi haïn):

Leänh naøy khoâng ñöôïc chaáp nhaän vaø haønh ñoäng ñöôïc yeâu caàu khoâng xaûy ra . Sender-SMTP ngaên caûn vieäc laëp laïi yeâu caàu (trong chuoåi tuaàn töï ñoù). Ngay caû moät soá hoaøn caûnh loãi “daøi haïn” coù theå hieäu chænh ñöôïc, do ñoù user muoán höôùng Sender-SMTP khôûi taïo laïi chuoåi leänh ñoù baèng caùch chæ ñaïo haønh ñoäng taïi moät soá thôøi ñieåm trong töông lai(nhö: sau khi chính taû ñaõ ñöôïc thay ñoåi, hay user ñoù thay ñoåi traïng thaùi account ) .

a/ Chöõ soá thöù hai maõ hoaù nhöõng loaïi traû lôøi(response) ñaëc tröng : * x0z Syntax : Nhöõng reply naøy xem xeùt loãi cuù phaùp, nhöõng leänh ñuùng cuù phaùp khoâng ñöa vaøo moät loaïi chöùc naêng naøo. Vaø khoâng thöïc thi caùc leänh khoâng caàn thieát. * x1z Information : Nhöõng reply naøy ñeå yeâu caàu thoâng tin, nhö traïng thaùi hay giuùp ñôõ. * x2z Connections : Nhöõng reply naøy tham khaûo ñeán keânh giao chuyeån. * x3z : Cho ñeán hieän taïi chöa ñöôïc ñaëc taû. * x4z : Cho ñeán hieän taïi chöa ñöôïc ñaëc taû. * x5z Mail system : Reply naøy chæ ñònh tình traïng cuûa receiver mail system vis-a-vis yeâu caàu truyeàn hay hoaït ñoäng heä thoáng mail khaùc .

b/ Chöõ soá thöù ba mang laïi moät möùc ñoä yù nghóa nhieàu hôn cho moãi loaïi (category)

Ñöôïc ñaëc taû bôûi chöõ soá thöù hai. Danh saùch caùc reply minh hoaï ñieàu naøy. Moãi reply text ñöôïc ñeà nghò nhieàu hôn laø leänh, vaø coù theå thay ñoåi tuyø theo leänh vôùi nhöõng keát hôïp cuûa leänh ñoù. Trong söï kieåm soaùt khaùc nhöõng maõ reply naøy phaûi theo söï ñaëc taû nghieâm ngaët trong phaàn naøy söï thöïc thi cuûa ngöôøi nhaän seõ khoâng phaùt sinh

trang 67

Page 68: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

ra maõ môùi cho tình traïng khaùc nhau khoâng ñaùng keå cuûa nhöõng gì ñöôïc ñaëc taû ôû ñaây. Nhöng nhöõng maõ thích hôïp hôn ñaõ ñöôïc ñònh nghóa saún.

Ví duï nhö, moät leänh nhö NOOP chaúng haïn noù thöïc thi thaønh coâng khoâng caàn ñeà nghò Sender-SMTP moät thoâng tin môùi naøo seõ traû veà moät reply 250. Caâu traû lôøi laø 502 khi leänh yeâu caàu moät haønh ñoäng non-site-specific khoâng thöïc thi ñöôïc. Moät söï caûi tieán cho ñieàu ñoù laø reply 504 cho moät leänh ñöôïc thöïc thi nhöng noù yeâu caàu moät tham soá khoâng thöïc thi.

Reply text coù theå daøi hôn moät doøng ñôn, trong tröôøng hôïp naøy moät text hoaøn taát phaûi ñöôïc ñaùnh daáu do ñoù ngöôøi göûi bieát khi naøo noù coù theå ngöng ñoïc reply naøy. Ñieàu naøy ñoøi hoûi moät ñònh daïng ñeå chæ ñònh moät reply nhieàu doøng.

Ñònh daïng cho caùc reply nhieàu doøng quy ñònh taát caû caùc doøng, chaáp nhaän choå cuoái cuøng vaø baét ñaàu cuûa maõ reply, theo sau ñoù laø moät daáu gaïch noái “-” (daáu tröø) theo sau laø text doøng cuoái cuøng seõ baét ñaàu vôùi maõ reply theo ngay sau ñoù laø <SP> , caùc text vaø <CRLF>. Cho ví duï:

123-First line123-Second line123-234 text beginning with numbers123 The last line

Trong moät soá tröôøng hôïp Sender-SMTP caàn tìm maõ reply theo sau laø <SP> ôû ñaàu doøng, vaø phôùt lôø taát caû caùc doøng tröôùc. Moät ít tröôøng hôïp coù döõ lieäu quan troïng cho ngöôøi göûi trong reply “text” ngöôøi göûi seõ nhaän bieát tröôøng hôïp naøy töø ngöõ caûnh hieän haønh.

trang 68

Page 69: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

PHAÀN 2GIAO THÖÙC POP3 (POST OFFICE PROTOCOL

VERSION 3)-----***-----

I . GIÔÙI THIEÄU:Nghi thöùc POP3 ñöôïc caûi tieán töø nghi thöùc POP ( Post

Office Protocol ).Treân internet moät loaïi naøo ñoù nhoû hôn node thöôøng

khoâng thöïc teá ñeå duy trì moät heä thoáng vaän chuyeån message (Message Transport System: MTS), ví duï nhö moät workstation khoâng coù ñuû taøi nguyeân (recycle, disk space) hôïp leä ñeå cho pheùp moät SMTP server vaø moät heä thoáng phaân phaùt mail cuïc boä keát hôïp giöõ thöôøng truù vaø chaïy moät caùch lieân tuïc . Thöôøng thì noù coù theå raát ñaét (hay khoâng thích hôïp) ñeå giöõ moät personal computer noái vôùi moät IP-style network trong moät thôøi gian daøi (node ñoù ñöôïc bieát seõ thieáu taøi nguyeân nhö “connectivity”) .

Maëc duø vaäy, ñeå coù theå quaûn lyù mail raát höõu hieäu treân nhöõng node nhoû hôn naøy. Vaø chuùng thöôøng hoå trôï moät User Agent (UA) ñeå giuùp ñôõ coâng vieäc ñieàu khieån mail. Ñeå giaûi quyeát vaán ñeà moät node coù theå cung caáp moät thöïc theå MTS ñöa ra moät maildrop service ñeán nhöõng node ñöôïc caáp nhoû hôn naøy. Post Office Protocol - Version 3 (POP3) ñöôïc duøng cho pheùp moät workstation truy xuaát ñoäng ñeán moät maildrop treân moät server host. Thöôøng ñieàu ñoù

trang 69

Page 70: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

coù nghóa laø POP3 ñöôïc duøng ñeå chaáp nhaän moät workstation goïi mail ñöôïc server ñang giöõ cho noù.

Khi moät user agent treân moät client host mong muoán ñöa moät message vaøo trong heä thoáng vaän chuyeån, noù thieát laäp moät keát noái SMTP ñeán host chia ca cuûa noù( host chia ca naøy coù theå, hay khoâng caàn POP3 server host cho client host ñoù).

II. THAO TAÙC CÔ BAÛN Ban ñaàu server host baét ñaàu moät POP3 service baèng

caùch laéng nghe treân TCP port 110. Khi moät client host mong muoán duøng POP3 service, noù thieát laäp moät keát noái TCP vôùi server host ñoù. Khi keát noái ñöôïc thieát laäp, POP3 server göûi moät chaøo hoûi. Client vaø server POP3 sau ñoù trao ñoåi nhöõng leänh vaø caùc traû lôøi cho ñeán khi keát noái ñoù ñöôïc ñoùng hay loaïi boû. Leänh trong POP3 bao goàm moät töø khoaù (keyword) theo sau coù theå laø moät hay nhieàu ñoái soá taát caû caùc leänh ñöôïc keát thuùc bôûi moät caëp CRLF. Caùc töø khoaù vaø ñoái soá ñöôïc taùch rieâng ra bôûi moät kyù töï traéng ñôn , töø khoaù daøi 3 hay 4 kyù töï. Moãi ñoái soá coù theå leân ñeán chieàu daøi 40 kyù töï.

Caùc traû lôøi trong POP3 bao goàm phaàn chæ ñònh traïng thaùi vaø moät töø khoaù coù theå theo sau laø thoâng tin theâm vaøo. Taát caû caùc traû lôøi ñöôïc keát thuùc bôûi moät caëp CRLF. Chæ coù hai loaïi traû lôøi laø: chæ ñònh traïng thaùi khaúng ñònh (“+OK”) vaø phuû ñònh (“-ERR”) .

Traû lôøi cho caùc leänh laø traû lôøi nhieàu doøng. Trong tröôøng hôïp naøy, noù cho pheùp chæ ñònh moät caùch roõ raøng, sau khi göûi doøng ñaàu tieân cuûa caâu traû lôøi vaø moät CRLF, moät soá doøng theâm vaøo ñöôïc göûi ñi, moãi doøng keát thuùc baèng moät caëp CRLF. Khi taát caû caùc doøng cuûa traû lôøi ñaõ ñöôïc göûi ñi bao goàm moät soá keát thuùc heä baùt phaân (termination octe) (maõ 046 heä möôøi, “.” ) vaø moät caëp CRLF. Neáu doøng naøo cuûa traû lôøi nhieàu doøng baét ñaàu vôùi termination octet doøng ñoù laø "byte-stuffed" baèng caùch (pre-pending) treo termination octet ñoù cuûa doøng traû lôøi. Keå töø ñaây moät traû lôøi nhieàu doøng ñöôïc keát thuùc vôùi naêm octet "CRLF.CRLF". Khi xem xeùt moät traû lôøi nhieàu doøng client kieåm tra xem neáu doøng ñoù baét ñaàu vôùi termintion octet. Neáu ñuùng vaø neáu nhöõng octet theo sau khaùc vôùi CRLF, octet ñaàu tieân cuûa doøng naøy (termination octet) ñöôïc boû ñi. Neáu ñuùng vaø neáu nhöõng kyù töï keát thuùc theo ngay sau noù, thì traû lôøi töø POP3 server naøy ñöôïc keát thuùc vôùi moät doøng chöùa “.CRLF” khoâng ñöôïc coi laø moät phaàn cuûa traû lôøi nhieàu doøng ñoù.

trang 70

Page 71: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Moät phieân POP3 tieán haønh qua moät soá traïng thaùi trong thôøi gian soáng cuûa noù. Khi keát noái TCP ñöôïc môû vaø moät POP3 server göûi moät chaøo hoûi. Hoäi nghò seõ ñi vaøo traïng thaùi xaùc nhaän (AUTHORIZATION). Trong traïng thaùi naøy client phaûi ñònh danh noù ñeán POP3 server. Khi client ñònh danh thaønh coâng, server thu ñöôïc nhöõng taøi nguyeân keát hôïp vôùi maildrop cuûa client, vaø hoäi nghò ñi vaøo traïng thaùi giao dòch (TRANSACTION). Trong traïng thaùi naøy client yeâu caàu caùc haønh ñoäng trong vai troø cuûa POP3 server khi client phaùt ra leänh QUIT, hoäi nghò ñi vaøo traïng thaùi caäp nhaät (UPDATE). Trong traïng thaùi naøy giaûi phoùng caùc taøi nguyeân thu nhaän ñöôïc trong traïng thaùi giao dòch vaø noùi goodbye. Sau ñoù keát noái TCP ñoùng laïi.

Moät POP3 server coù theå coù moät khoaûng thôøi gian töï ñoäng logout khoâng chuû ñoäng. Vaø noù phaûi toàn taïi trong khoaûng thôøi gian ít nhaát laø 10 phuùt. Trong khoaûn thôøi gian nhaän caùc leänh töø client ñuû ñeå reset khoaûng thôøi gian töï ñoäng logout ñoù. Ñeán khi heát hieäu löïc, hoäi nghò khoâng ñi vaøo traïng thaùi UPDATE, server seõ ñoùng keát noái TCP maø khoâng remove hay göûi moät message naøo cho client.

III. TRAÏNG THAÙI XAÙC NHAÄN (Authorization State) Khi keát noái TCP ñöôïc môû ra bôûi moät cleint. POP3 server

seõ xuaát ra moät doøng chaøo hoûi noù coù theå laø moät chuoåi naøo ñoù ñöôïc keát thuùc bôûi CRLF.

Ví duï :S: +OK POP3 server ready

Chaøo hoûi ñoù laø moät POP3 reply. POP3 server bao giôø cuõng seõ truyeàn ñi moät traû lôøi khaúng ñònh nhö chaøo hoûi treân.

Phieân POP3 hieän naèm trong traïng thaùi AUTHORIZATION. Client phaûi ñònh danh vaø xaùc nhaän noù vôùi POP3 server. Coù hai cô cheá thích hôïp ñeå thöïc hieän. Söï keát hôïp leänh USER vaø PASS , vaø leänh APOP.

Ñeå xaùc nhaän duøng söï keát hôïp leänh USER vaø PASS. Ñaàu tieân client phaûi phaùt moät leänh USER, neáu POP3 server traû lôøi vôùi moät chæ thò traïng thaùi khaúng ñònh (“+OK”), thì client coù theå phaùt ñi leänh PASS ñeå hoaøn taát söï xaùc nhaän hay leänh QUIT ñeå keát thuùc POP3 session. Neáu POP3 server traû lôøi vôùi moät chæ thò traïng thaùi phuû nhaän (“-ERR”) cho leänh USER, thì client coù theå phaùt ra moät leänh xaùc nhaän môùi hay coù theå phaùt moät leänh QUIT.

Khi client phaùt ra moät leänh PASS, POP3 server duøng caëp ñoái soá töø leänh USER vaø PASS ñeå xaùc ñònh neáu client seõ ñöôïc cho truy xuaát ñeán maildrop thích hôïp.

trang 71

Page 72: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Khi POP3 server ñaõ ñöôïc xaùc ñònh baèng caùc leänh xaùc nhaän, noù cho client truy xuaát ñeán nhöõng mailbox thích hôïp, sau ñoù POP3 server thu ñöôïc moät khoaù truy xuaát loaïi tröø treân maildrop, vì söï caàn thieát ñeå ngaên chaën message bò söûa ñoåi hay bò loaïi boû tröôùc khi hoäi nghò ñi vaøo traïng thaùi UPDATE. Neáu thu nhaän khoaù thaønh coâng POP3 server traû lôøi vôùi moät chæ ñònh traïng thaùi khaúng ñònh. Vaø luùc naøy hoäi nghò ñi vaøo traïng thaùi TRANSACTION maø khoâng coù message naøo bò ñaùnh daáu ñeå xoaù. Neáu maildrop khoâng môû ñöôïc vì moät soá lyù do naøo ñoù (ví du : moät khoaù khoâng theå nhaän ñöôïc, phía client bò töø choái truy caäp tôùi maildrop thích hôïp ñoù, hay maildrop khoâng ñöôïc phaân tích cuù phaùp ), POP3 server traû lôøi vôùi moät chæ ñònh traïng thaùi phuû ñònh (neáu moät khoaù ñöôïc thu nhaän nhöng POP3 server döï ñònh traû lôøi vôùi moät chæ ñònh traïng thaùi phuû ñònh, POP3 server phaûi giaûi phoùng khoaù tröôùc khi loaïi boû leänh ñoù ). Sau khi traû veà moät chæ ñònh traïng thaùi phuû ñònh server phaûi ñoùng keát noái, neáu server khoâng ñoùng keát noái client coù theå phaùt moät leänh xaùc nhaän môùi vaø baét ñaàu trôû laïi, hoaëc laø client phaùt ra moät leänh QUIT.

Sau khi POP3 server môû ñöôïc maildrop noù gaùn moät soá thöù töï cho moãi message vaø bieåu thò kích thöôùc cuûa moãi message trong heä baùt phaân (octet), message ñaàu tieân trong maildrop ñöôïc gaùn thöù töï laø “1”, message thöù hai laø “2” … Trong caùc leänh vaø caùc traû lôøi POP3 taát caû caùc soá thöù töï vaø kích thöôùc cuûa message ñöôïc trình baøy döïa treân heä 10 (decimal) . Ñaây laø nhöõng toùm taét cho ba leänh POP3 baøn luaän ôû

treân : USER name

- Ñoái soá: Moät chuoåi ñònh danh moät mailbox (ñöôïc yeâu caàu), noù chæ coù yù nghóa vôùi server.

- Giôùi haïn : Chæ coù theå ñöôïc cho trong traïng thaùi AUTHORIZATION sau khi POP3 chaøo hoûi hay sau khi moät leänh USER PASS khoâng thaønh coâng .

- Caâu traû lôøi coù theå : +OK teân mailbox coù hieäu löïc

-ERR khoâng chaáp nhaän teân mailbox

Ví duï Ï: C: USER mrose S: +OK mrose is a real hoopy frood ... C: USER frated S: -ERR sorry, no mailbox for frated here

trang 72

Page 73: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

PASS string- Ñoái soá: Moät password cho mailbox hay server

(ñöôïc yeâu caàu) a server/mailbox-specific password (required)

- Giôùi haïn : Chæ coù theå döôïc cho trong traïng thaùi AUTHORIZATION sau khi moät leänh user thaønh coâng.

- Discussion: (thaûo luaän) : Keå töø ñaây leänh PASS chæ coù moät ñoái soá, moät POP3 server coù theå xöû lyù khoaûng troáng trong ñoái soá naøy nhö laø moät phaàn cuûa password, thay vì laø ñeå taùch ñoái soá ra .

- Caâu traû lôøi coù theå: +OK khoaù maildrop vaø saún saøng -ERR password khoâng hieäu löïc -ERR khoâng ñöôïc pheùp khoaù maildrop

Ví duï : C: USER mrose S: +OK mrose is a real hoopy frood C: PASS secret S: +OK mrose's maildrop has 2 messages (320 octets) ... C: USER mrose S: +OK mrose is a real hoopy frood C: PASS secret S: -ERR maildrop already locked QUIT

- Ñoái soá: khoâng - Giôùi haïn: khoâng - Caâu traû lôøi coù theå: +OK

IV. TRAÏNG THAÙI GIAO DÒCH (Transaction)Khi client ñònh danh noù ñeán POP3 server thaønh coâng

vaø POP3 server ñaõ khoaù vaø môû maildrop thích hôïp, POP3 session baây giôø trong traïng thaùi TRANSACTION ø client coù theå phaùt nhieàu laàn caùc leänh POP3 sau ñaây. Sau moãi leänh POP3 server phaùt ra moät caâu traû lôøi. Cuoái cuøng client phaùt ra moät leänh QUIT vaø POP3 session ñi vaøo traïng thaùi UPDATE .

Ñaây laø caùc leänh POP3 coù hieäu löïc trong traïng thaùi TRANSACTION: STAT

- Ñoái soá: khoâng- Giôùi haïn : Chæ coù theå ñöôïc cho trong traïng thaùi

TRANSACTION.

trang 73

Page 74: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

- Discussion: (thaûo luaän) : POP3 server phaùt ra moät traû lôøi khaúng ñònh vôùi moät doøng chöùa thoâng tin cuûa maildrop. Doøng naøy ñöôïc goïi laø moät "drop listing" cho maildrop ñoù.

Thích hôïp ñeå phaân tích cuù phaùp moät caùch ñôn giaûn, taát caû caùc POP3 server yeâu caàu duøng moät ñònh daïng cho drop listings. Caâu traû lôøi khaúng ñònh goàm coù “+OK” theo sau laø moät khoaûng traéng ñôn, vaø kích thöôùc cuûa maildrop trong heä taùm. Khoâng yeâu caàu caùi gì theo sau maildrop size.

Löu yù: Vieäc ngaên caûn moät caùch maïnh meõ söï thöïc thi caùc thoâng tin phuï cung caáp trong drop listing. Maët khaùc ñieàu kieän ñöôïc baøn luaän sau, noù cho pheùp client phaân tích cuù phaùp caùc message trong maildrop.

Chuù yùù: Nhöõng message ñöôïc ñaùnh daáu xoaù khoâng ñöôïc ñeám trong toång soá

- Caâu traû lôøi coù theå: +OK nn mm

Ví duï : C: STAT S: +OK 2 320 LIST [msg]

- Ñoái soá: Moät message-number (tuyø yù) coù theå khoâng tham khaûo ñeán moät message ñöôïc ñaùnh daáu xoaù.

- Giôùi haïn : Chæ coù theå ñöôïc cho trong traïng thaùi giao dòch.

- Discussion: Neáu moät ñoái soá ñöôïc cho vaø POP3 server phaùt ra moät traû lôøi khaúng ñònh vôùi moät doøng chöùa thoâng tin cho message ñoù, doøng naøy ñöôïc goïi laø “scan listing” cho message ñoù.

Neáu khoâng coù ñoái soá ñöôïc trao cho vaø POP3 server phaùt ra moät traû lôøi khaúng ñònh thì traû lôøi ñöôïc cho laø multi-line. Sau khi khôûi taïo +OK, cho moãi message trong maildrop, POP3 server traû lôøi vôùi moät doøng chöùa thoâng tin cho message ñoù. Doøng naøy cuõng ñöôïc goïi laø moät “scan listing” cho message ñoù .

Phuø hôïp ñeå ñôn giaûn hoaù vieäc phaân tích cuù phaùp, taát caû caùc POP3 server yeâu caàu duøng moät ñònh daïng cho scan listing. Moät scan listing bao goàm soá thöù töï cuûa message ñoù, theo sau laø moät khoaûng traéng ñôn vaø kích thöôùc chính xaùc cuûa message ñoù baèng heä taùm, khoâng yeâu caàu nhöõng gì theo sau khích thöôùc message trong scan listing.

Löu yù: ÔÛû ñaây ngaên caûn moät caùch maïnh meõ söï thöïc thi caùc thoâng tin phuï cung caáp trong scan listing. Maët khaùc, ñieàu kieän ñöôïc baøn luaän sau , noù cho pheùp client phaân tích cuù phaùp caùc message trong maildrop. Nhöõng message ñöôïc ñaùnh daáu xoaù khoâng ñöôïc lieät keâ .

trang 74

Page 75: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

- Caâu traû lôøi coù theå: +OK scan listing follows -ERR no such message

Ví duï : C: LIST S: +OK 2 messages (320 octets) S: 1 120 S: 2 200 S: . ... C: LIST 2 S: +OK 2 200 ... C: LIST 3 S: -ERR no such message, only 2 messages in maildrop RETR msg

- Ñoái soá : Moät message-number (ñöôïc yeâu caàu) noù coù theå khoâng tham khaûo ñeán moät message ñöôïc ñaùnh daáu xoùa.

- Giôùi haïn : Chæ ñöôïc cho trong traïng thaùi TRASACTION - Discussion : Neáu POP3 server phaùt ra moät traû lôøi

khaúng ñònh, thì traû lôøi ñöôïc trao laø multi-line. Sau khi khôûi taïo +OK , POP3 server göûi moät message töông öùng vôùi soá thöù töï ñöôïc cho, moät caùch caån thaän ñeå byte-stuff kyù töï cuoái cuøng (nhö vôùi caùc traû lôøi multi-line) .

- Caâu traû lôøi coù theå: +OK message follows -ERR no such message

Ví duï : C: RETR 1 S: +OK 120 octets S: <the POP3 server sends the entire message here> S: . DELE msg

- Ñoái soá : Moät message-number (ñöôïc yeâu caàu) coù theå khoâng tham khaûo ñeán moät message ñöôïc ñaùnh daáu xoaù.

- Giôùi haïn : Chæ ñöôïc cho trong traïng thaùi TRANSACTION .

- Discussion : POP3 server ñaùnh daáu xoaù message ñoù. Nhöõng tham khaûo sau ñoù ñeán soá thöù töï keát hôïp vôùi message ñoù cuûa moät leänh POP3 seõ sinh ra loãi. POP3 server khoâng thaät söï xoaù message ñoù cho ñeán khi phieân POP3 ñi vaøo traïng thaùi UPDATE .

- Caâu traû lôøi coù theå: +OK message deleted

trang 75

Page 76: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

-ERR no such messageVí duï :

C: DELE 1 S: +OK message 1 deleted ... C: DELE 2 S: -ERR message 2 already deleted NOOP

- Ñoái soá: khoâng- Giôùi haïn : Chæ ñöôïc cho trong traïng thaùi

TRANSACTION - Discussion : POP3 server khoâng laøm gì heát , noù chæ

hoài aâm vôùi moät traû lôøi khaúng ñònh.- Caâu traû lôøi coù theå:

+OK Ví duï:

C: NOOP S: +OK RSET

- Ñoái soá: khoâng- Giôùi haïn : Chæ ñöôïc cho trong traïng thaùi TRANSACTION

.- Discussion : Neáu moät message naøo ñoù ñaõ ñöôïc ñaùnh

daáu xoaù bôûi POP3 server, chuùng ñöôïc boû ñaùnh daáu xoaù (unmark ). Sau ñoù POP3 server hoài aâm vôùi moät traû lôøi khaúng ñònh.

- Caâu traû lôøi coù theå: +OK

Ví duï : C: RSET S: +OK maildrop has 2 messages (320 octets)

V. TRAÏNG THAÙI CAÄP NHAÄT (Update)Khi client phaùt ra moät leänh QUIT töø traïng thaùi

TRANSACTION, phieân POP3 ñi vaøo traïng thaùi UPDATE (löu yù raèng neáu client phaùt ra moät leänh QUIT töø traïng thaùi AUTHORIZATION, POP3 session keát thuùc nhöng khoâng ñi vaøo traïng thaùi UPDATE).

Neáu phieân POP3 keát thuùc vì caùc lí do khaùc, sau ñoù moät leänh QUIT ñöôïc phaùt ra töø phía client, phieân POP3 khoâng ñi vaøo traïng thaùi UPDATE vaø seõ khoâng xoùa moät message naøo töø maildrop ñoù.

QUIT- Ñoái soá: khoâng

trang 76

Page 77: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

- Giôùi haïn: khoâng- Discussion : POP3 server loaïi boû taát caû caùc mesasage

ñöôïc ñaùnh daáu xoùa töø maildrop. Sau ñoù noù giaûi phoùng caùc khoùa truy caäp loaïi tröø (exclusive-access lock) treân maildrop ñoù vaø caùc reply veà phaàn tình traïng cuûa nhöõng thao taùc naøy. Sau ñoù keát noái TCP ñöôïc ñoùng laïi.

- Caâu traû lôøi coù theå: +OK

Ví duï : C: QUIT S: +OK dewey POP3 server signing off (maildrop empty) ... C: QUIT S: +OK dewey POP3 server signing off (2 messages left) ...

VI. CAÙC LEÄNH POP3 CHOÏN LÖÏA (Optional POP3 Commands)

Nhöõng leänh POP3 ñöôïc noùi ñeán ôû treân phaûi ñöôïc hoå trôï bôûi söï thöïc thi toái thieåu cuûa POP3 server.

Caùc leänh POP3 löïa choïn ñöôïc moâ taû sau ñaây cho pheùp moät POP3 client töï do hôn trong vieäc ñieàu khieån message, trong khi vaån giöõ moät söï thöïc thi POP3 server ñôn giaûn.

Löu yù: Soå ghi cheùp khuyeán khích nhöõng söï thöï thi nhaèm hoå trôï cho nhöõng leänh naøy thay cho vieäc phaùt trieån taêng theâm drop vaø scan listing. Thu goïn, trieát lyù cuûa soå ghi nhôù laø nhaèm ñaët moät söï thoâng minh trong vai troø cuûa client POP3 vaø khoâng cho server POP3.

TOP msg n- Ñoái soá: Moät message-number (ñöôïc yeâu caàu) noù coù

theå khoâng tham khaûo ñeán moät message ñöôïc ñaùnh daáu xoùa, vaø moät non-negative number (ñöôïc yeâu caàu) .

- Giôùi haïn : Chæ ñöôïc cho trong traïng thaùi TRANSACTION

- Discussion : Neáu POP3 server phaùt ra moät traû lôøi khaúng ñònh, thì traû lôøi ñöôïc trao laø multi-line. Sau khôûi taïo +OK , POP3 server göûi header cuûa message ñoù, doøng troáng taùch header khoûi body, vaø sau ñoù laø soá doøng chæ ñònh phaàn body cuûa message, neân caån thaän ñeå byte-stuff kyù töï cuoái cuøng (nhö vôùi taát caû caùc traû lôøi muti-line) .

Chuù yù : Neáu soá doøng ñöôïc yeâu caàu bôûi POP3 client lôùn hôn soá doøng trong body thì POP3 server göûi toaøn boä message ñoù .

- Caâu traû lôøi coù theå: +OK top of message follows -ERR no such message

trang 77

Page 78: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Ví duï : C: TOP 1 10 S: +OK S: < POP3 server göûi phaàn headers cuûa message, moät doøng troáng, vaø 10 doøng ñaàu tieân cuûa phaàn body cuûa message ñoù> S: . ... C: TOP 100 3 S: -ERR no such message UIDL [msg]

- Ñoái soá: Moät message-number (tuyø yù) neáu moät soá thöù töï ñöôïc cho, noù coù theå khoâng tham khaûo ñeán moät message ñöôïc ñaùnh daáu xoaù.

- Giôùi haïn : Chæ coù theå ñöôïc cho trong traïng thaùi TRANSACTION .

- Discussion : Neáu moät ñoái soá ñöôïc cho vaø POP3 server phaùt ra moät traû lôøi khaúng ñònh vôùi moät doøng chöùa thoâng tin cho message ñoù. Doøng naøy ñöôïc goïi laø moät “unique-id listing” cho message ñoù.

Neáu khoâng coù ñoái soá naøo ñöôïc cho vaø POP3 server phaùt ra moät traû lôøi khaúng ñònh thì caâu traû lôøi ñöôïc trao laø multi-line. Sau khi khôûi taïo –OK cho moãi message trong maildrop, POP3 server traû lôøi vôùi moät doøng chöùa thoâng tin cho message ñoù. Doøng naøy ñöôïc goïi laø moät “unique-id listing” cho message ñoù.

Hôïp leä ñeå ñôn giaûn hoaù vieäc phaân tích cuù phaùp. Taát caû caùc server ñöôïc yeâu caàu duøng moät ñònh daïng cho caùc unique-id-listing. Moät unique-id-listing bao goàm message number cuûa message theo sau laø moät khoaûng traéng vaø unique-id cuûa message. Khoâng coù thoâng tin khaùc theo sau unique-id trong unique-id-listing.

Unique-id cuûa moät message laø moät chuoåi xaùc ñònh server tuyø yù, bao goàm nhöõng kyù töï trong phaïm vi 0x21 ñeán 0x7E, noù ñònh danh moät message beân trong moät maildrop laø duy nhaát vaø noù giöõ nhö vaäy trong thôøi gian hoäi nghò. Server seõ khoâng bao giôø duøng laïi moät unique-id trong moät maildrop ñaõ cho.

Nhöõng message ñöôïc ñaùnh daáu xoaù khoâng ñöôïc lieät keâ.

- Caâu traû lôøi coù theå +OK unique-id listing follows -ERR no such message

Ví duï : C: UIDL S: +OK

trang 78

Page 79: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

S: 1 whqtswO00WBw418f9t5JxYwZ S: 2 QhdPYR:00WBw1Ph7x7 S: . ... C: UIDL 2 S: +OK 2 QhdPYR:00WBw1Ph7x7 ... C: UIDL 3 S: -ERR no such message, only 2 messages in maildrop APOP name digest

- Ñoái soá : Moät chuoåi ñònh danh moät mailbox vaø moät chuoåi MD5 digest ( yeâu caàu caû hai).

- Giôùi haïn : Chæ coù theå ñöôïc cho trong traïng thaùi AUTHORIZATION sau khi POP3 chaøo hoûi.

- Discussion : Thöôøng thì, moãi POP3 session baét ñaàu vôùi moät söï trao ñoåi USER/PASS, noù daãn ñeán moät password ñaëc taû server/user-id ñöôïc göûi leân maïng . Nhöõng söï thöïc thi cuûa POP3 client keát noái ñeán POP3 server theo moät quy taéc cô baûn ñeå kieåm tra mail môùi. Hôn nöõa khoaûng thôøi gian khôûi taïo moät phieân POP3 theo quy taéc laø naêm phuùt. Luùc ñoù khaû naêng bò ñaùnh caép password raát lôùn. Ñoøi hoûi phaûi coù moät thay ñoåi trong phöông thöùc xaùc nhaän cung caáp caû söï xaùc nhaän vaø xem laïi söï baûo veä, nhöng noù khoâng bao goàm vieäc göûi moät passsword khoâng ñöôïc maõ hoaù leân maïng. Leänh APOP cung caáp chöùc naêng naøy.

Moät POP3 server thöïc thi leänh APOP noù seõ ñöa moät doøng ñaùnh daáu thôøi gian vaøo trong banner greeting cuûa noù. POP3 client ghi nhôù doøng ñaùnh daáu thôøi gian naøy vaø sau ñoù phaùt ra leänh APOP.

Tham soá ‘name’ gioáng nhö tham soá ‘name’ trong leänh USER tham soá digest ñöôïc tính toaùn baèng caùch aùp duïng giaûi thuaät MD5 [RFC1321] cho moät chuoåi chöùa moác thôøi gian (naèm trong daáu ngoaëc troøn) theo sau laø moät share secret. Share secret laø moät chuoåi chæ ñeå nhaän bieát client vaø server.

Tham soá ‘digest’ laø moät giaù trò 16-octet noù ñöôïc göæ theo ñònh daïng cuûa heä hex.

Khi moät server POP3 nhaän ñöôïc moät leänh APOP, noù kieåm tra ‘digest’. Neáu ‘digest’ ñuùng, POP3 server phaùt ra moät traû lôøi khaúng ñònh vaø phieân POP3 ñi vaøo traïng thaùi TRANSACTION. Ngöôïc laïi noù phaùt ra moät traû lôøi phuû ñònh vaø phieân POP3 vaãn giöõ traïng thaùi AUTHORIZATION

- Caâu traû lôøi coù theå: +OK maildrop locked and ready

-ERR permission denied Ví duï :

trang 79

Page 80: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

S: +OK POP3 server ready <[email protected]> C: APOP mrose c4c9334bac560ecc979e58001b3e22fb S: +OK maildrop has 1 message (369 octets)

Trong ví duï naøy share secret laø chuoåi “tan-staaf”. Giaûi thuaät MD5 ñöôïc aùp duïng cho chuoåi <[email protected]>tanstaaf noù sinh ra moät giaù trò digest c4c9334bac560ecc979e58001b3e22fb

VI. TOÙM TAÉC CAÙC LEÄNH POP3 A. Caùc leänh caàn phaûi coù :

USER name coù hieäu löïc trong traïng thaùi AUTHORIZATION PASS string QUIT STAT coù hieäu löïc trong traïng thaùi TRANSACTION LIST [msg] RETR msg DELE msg NOOP RSET QUIT coù hieäu löïc trong traïng thaùi UPDATE

* Caùc leänh POP3 choïn löïa: APOP name digest coù hieäu löïc trong traïng thaùi AUTHORIZATION TOP msg n coù hieäu löïc trong traïng thaùi TRANSACTION UIDL [msg}

* Caùc reply POP3 : +OK -ERR

Löu y:Ù Vôùi söï chaáp nhaän caùc leänh STAT, LIST, vaø UIDL , reply maø POP3 server göûi cho caùc leänh chæ mang yù nghóa "+OK" vaø "-ERR". Nhöõng text xuaát hieän sau trply naøy seõ ñöôïc client phôùt lôø.

CAÙC CHUAÅN TRUYEÀN KHAÙC :Ngoaøi hai chuaån truyeàn treân, Mail coøn coù caùc chuaån

truyeàn khaùc nhö :

trang 80

Page 81: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

- MAIP : Chuaån MAPI döïa treân neàn taûng moâ hình COM. Chuaån naøy coù raát nhieàu chi tieát, nhieàu ñeà muïc, haøm, interface, Object...

Trong chuaån MAPI, taát caû nhöõng thaønh phaàn boä phaän ñeàu ñöôïc xem nhö laø nhöõng ñoái töôïng, muoán thao taùc vôùi nhöõng boä phaän ñoù, ñeàu phaûi theo caùch thöùc truy nhaäp vaøo moät Object, sau ñoù môùi coù theå söû duïng caùc method cuûa Interface maø Objectt töông öùng hoã trôï. Ví duï nhö ngay caû message cuõng ñöôïc xem laø moät ñoái töôïng, ñoù laø Message Object.

- ESMTP (Extender SMTP) Nghi thöùc môû roäng SMTP SMTP coù moät haïn cheá gaây khoù khaên lôùn trong vieäc

truyeàn nhaän mail laø giôùi haïn toái ña kích thöôùc noäi dung moät böùc mail chæ laø 128KB.Ngaøy nay noäi dung caùc böùc mail khoâng chæ laø daïng vaên baûn ñôn thuaàn maø coøn bao goàm hình aûnh, aâm thanh vaø nhieàu loaïi döõ lieäu khaùc nöõa, giôùi haïn 128KB trôû neân quaù nhoû.

Do vaäy ngöôøi ta ñaõ caûi tieán chuaån SMTP thaønh moät chuaån môû roäng môùi goïi laø ESMTP.

Chuaån naøy cho pheùp taêng kích thöôùc mail, noù ñöa theâm töø khoùa SIZE=nnnnnnn sau leänh khôûi ñoäng cuoäc giao dòch, nhôø ñoù ta coù theå taêng giôùi haïn kích thöôùc cuûa mail leân treân 1MB, ñuû ñeå chöùa theâm vaøo caùc aâm thanh, hình aûnh…

Ñeå bieát xem Server MTA coù theo chuaån ESMTP hay khoâng, thay vì duøng leänh HELLO ôû ñaàu moät cuoäc giao dòch, Client MTA duøng leänh môùi EHLO, neáu Server MTA coù trang bò, noù seõ traû veà maõ thaønh coâng laø 250.

Hieän nay haàu nhö chuaån ESMTP ñaõ thay theá chuaån SMTP ôû ña soá caùc heä thoáng.

Ví duï: Ñeå khôûi ñoäng moät cuoäc giao dòch vôùi kích thöôùc mail leân tôùi 1MB, doøng leänh seõ laø:

MAIL FROM :<thuan@sample1> SIZE=1000000- X.400 : Chuaån X.400 laø moät boä phaän cuûa caùc

chuaån Open Systems Interconnection ( OSI ) veà truyeàn daãn message ñieän töû ( electronic Messaging Handling System - MHS ) ñöôïc phaùt trieån bôûi toå chöùc Ñieän thoaïi vaø Truyeàn thoâng quoác teá ( Comite Consultatif International de Telegraphique et Telephonique - CCITT ), ñöôïc xaây döïng treân vieäc tham khaûo moâ hình 7 lôùp cuûa OSI vaø caùc protocol ñöôïc ñònh nghóa bôûi Toå chöùc tieâu chuaån quoác teá ( International Organization for Standardization - ISO )

*. Message theo chuaån X.400 :Moät message X.400 coù 2 thaønh phaàn : Phaàn phong bì

chöùa thoâng tin caàn thieát ñeå phaân phoái moät message vaø phaàn noäi dung chöùa thoâng tin caàn truyeàn. Phaàn phong bì

trang 81

Page 82: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

ñöôïc duøng bôûi MTA vaø phaàn Noäi dung ñöôïc duøng bôûi UA. Phaàn Noäi dung thoâng tin toå chöùc theo daïng IPM ( Interpersonal Message : Daïng thö tín caù nhaân rieâng tö ) bao goàm 2 phaàn caùch bieät nhau : Heading vaø Body. Heading bao goàm caùc thoâng tin nhö ñòa chæ nôi ñi vaø ñeán, cho bieát loaïi thö hoaëc yeâu caàu phaûn hoài….Body chöùa noäi dung caàn gôûi.

Caùc taøi lieäu veà X.400 ra ñôøi naêm 1984, vaø ñöôïc goïi laø " red book " ( vì chuùng coù bìa maøu ñoû ). Ñöôïc tu chænh vaø in laàn hai vaøo naêm 1988 vaø ñöôïc goïi laø " blue book " ( vì chuùng coù bìa xanh ).

CHÖÔNG III GIÔÙI THIEÄU INTERNET MAIL

Dòch vuï email noùi chung vaø Internet mail noùi rieâng ñaõ

trôû thaønh moät trong nhöõng dòch vuï coù ích vaø phaàn naøo coù theå noùi laø khaù quan troïng ñoái vôùi con ngöôøi trong cuoäc soáng hieän nay. Ngoaøi vieäc cung caáp moät coâng cuï giao tieáp treân maïng, laø caàu noái moïi ngöôøi laïi vôùi nhau treân khaép toaøn caàu, giuùp con ngöôøi trao ñoåi thoâng tin moät caùch mau leï. Thaät vaäy, Internet haàu nhö ngaøy nay coù maët khaép nôi, haøng ngaøy, taïi moãi thôøi ñieåm, moãi nôi khaùc nhau cuøng luùc coù bieát bao söï kieän xaûy ra, bieát bao söï kieän “buøng noå” nhöng laøm sao ngöôøi söû duïng coù theå bieát ñöôïc, ñaây khoâng coøn laø vaán ñeà khoù khaên nöõa. Vôùi nhöõng dòch vuï mail ngöôøi söû duïng coù theå cuøng ngöôøi söû duïng ñeåø boán phöông trao ñoåi thoâng tin vôùi nhau maø khoâng coøn thaáy ñöôïc khoaûng caùch thôøi gian vaø khoâng gian nöõa. Dòch vuï email ngaøy nay haàu nhö ñaõ cung caáp heát nhöõng nhu caàu cuûa ngöôøi söû duïng töø möùc ñoä chæ coù nhöõng vaên baûn Text ñôn giaûn töøng böôùc ñaõ tieán xa hôn coù theâm nhöõng chöùc naêng môùi nhö : Taøi kieäu ñính keøm, hình aûnh, aâm thanh, video.....thaät soáng ñoäng ñaày haáp daãn. Sau ñaây ta tìm hieåu vaøi neùt veà Internet Mail.

trang 82

Page 83: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

A. Caùc thaønh phaàn cuûa moät maïng EmailMoät heä thoáng email bao goàm caùc thaønh phaàn sau: - Ngöôøi göûi, ngöôøi nhaän - Boä giao tieáp vôùi heä thoáng email, ñoù chính laø

chöông trình email cuûa ngöôøi söû duïng. Heä thoáng maïng email goàm coù: - Moät vuøng ñeäm ñeå chöùa caùc message

tröôùc khi ñöôïc göûi ñi. - Moät chöông trình Client. - Moät chöông trình Server. - Caùc mailbox ñeå chöùa caùc thö nhaän ñöôïc. Trong ña soá heä thoáng maïng Email hieän nay caùc boä

giao tieáp cuûa ngöôøi söû duïng vôùi heä thoáng Email thöôøng gaén vôùi caùc chöông trình Client. Mailbox ñöôïc coi nhö laø ñòa chæ cuûa ngöôøi söû duïng, hoaëc laø moät kho chöùa ñöïng caùc döõ lieäu cuûa email.

B. Caùc thaønh phaàn cuûa moät Heä thoáng Internet Mail

User agent thay theá cho chöông trình email vaø caùc boä phaän MTA thay theá cho caùc chöông trình phía Server, Client.

Ngöôøi söû duïng töông taùc vôùi chöông trình user agent, noù thay theá cho ngöôøi söû duïng töông taùc vôùi moät kho chöùa caùc döõ lieäu email (hay chính laø MTA), cuøng luùc aáy MTA hoaït ñoâïng nhö moät ñaïi dieän cuûa maùy tính. User Agent seõ che chaén cho ngöôøi söû duïng khoûi phaûi töông taùc vôùi

trang 83

MAIL Clients

MAIL Folder

SMTP

POP3

333

Outgoing

Mail

ÿÿÿÿÿÿÿÿ

Mail

ÿÿÿÿÿÿÿÿ

Mail

ÿÿÿÿÿÿÿÿ

Mail

ÿÿÿÿÿÿÿÿ

Mail

Outgoing

Mail

Page 84: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

“moät môù” caùc heä thoáng email khaùc nhau. Cuõng töông töï MTA seõ che chaén heä thoáng email khoâng phaûi töông taùc vôùi nhöõng cô quan ñaïi dieän cuûa ngöôøi söû duïng (user agent) hay caùc MTA khaùc. Ñieày naøy giuùp cho heä thoáng email trôû neân thaân thieän deã gaàn hôn vôùi ngöôøi söû duïng - vaø ñoù cuõng chính laø muïc ñích chính cuûa caùc chöông trình mail khaùc nhau.

* User Agent (UA) :Ñaây laø chöông trình giao tieáp giöõa heä thoáng mail

X.400 vôùi ngöôøi söû duïng. Ngöôøi söû duïng chæ giao tieáp vôùi heä thoáng X.400 thoâng qua caùc User agent.

Caùc User agent cho pheùp ngöôøi söû duïng soaïn thaûo, taïo ra noäi dung caùc mail, cung caáp ñòa chæ ngöôøi nhaän vaø sau ñoù giao caùc mail cho Message Transfer Agent (MTA) ñeå göûi mail ñi.

Caùc User agent ñöôïc hieän thöïc khaùc nhau treân caùc moâi tröôøng khaùc nhau nhö DOS, Windows, Macintosh hay Unix. Ñaây chính laø caùc chöông trình Mail Client. Moät heä thoáng mail X.400 coù theå coù caùc chöông trình Client chaïy treân caùc moâi tröôøng khaùc nhau nhö treân.

* Message Transfer Agent (MTA): Caùc MTA laø caùc traïm xöû lyù mail giöõa caùc User

Agent. Mail sau khi ñöôïc soaïn ôû User Agent, noù ñöôïc göûi xuoáng MTA vaø di chuyeån töø MTA naøy ñeán MTA khaùc cho ñeán khi ñeán ñích vaø ñöôïc User Agent cuûa ngöôøi nhaän khoâi phuïc laïi. Coù theå xem MTA nhö laø moät böu cuïc.

MTA hoaït ñoäng theo moâ hình Client/Server, MTA göûi laø Client MTA trong khi MTA nhaän laø Server MTA töùc laø chöông trình MTA coù theå hoaït ñoäng ôû moät trong hai cheá ñoä : Client hay Server.

Message Store (MS) :Caùc Message Store laø nôi caùc Message sau khi ñöôïc taïo ra

ôû USER AGENT ,coù theå ñöôïc löu tröõ ôû ñoù chôø MTA ñeán laáy vaø gôûi ñi. Ñoù cuõng laø nôi caùc Message sau khi ñöôïc caùc MTA nhaän veà löu tröõ ôû ñoù chôø cho ñeán khi ngöôøi söû duïng xem Message naøy duøng moät user agent.

Vôùi söï tham gia cuûa MS, moâ hình 1988 X.400 MHS ñöôïc goïi laø moâ hình Store-and-Forward. Luùc naøy caùc user agent coù theå göûi (submit) caùc Message cho caùc MS hay tröïc tieáp göûi ñeán caùc MTA.

Moät coâng duïng cuûa MS laø khi chöông trình user agent cuûa ngöôøi nhaän khoâng hoaït ñoäng vaøo thôøi ñieåm Message ñeán maùy ñoù. Luùc naøy Message seõ ñöôïc löu tröõ trong MS.

Message Transfer System (MTS) : Laø moät boä taäp hôïp caùc MTA

trang 84

Page 85: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Message Handling System (MHS) : Laø moät boä caùc user agent vaø MTA laøm vieäc coäng taùc nhau ñeå truyeàn nhaän thoâng ñieäp.

Message Handling Environment (MHE) : Bao goàm taát caû caùc boä phaän cuûa MHS, ngöôøi söû duïng vaø moâi tröôøng truyeàn nhaän thoâng ñieäp.

C. Moâ hình Client / Server :Moät trong nhöõng nguyeân taéc söû duïng maïng laø cho

pheùp chia xeû caùc taøi nguyeân. Vieäc chia xeû naøy thöôøng ñöôïc thi haønh bôûi 2 chöông trình rieâng bieät, moãi chöông trình chaïy treân caùc maùy tính khaùc nhau. Moät chöông trình ñöôïc goïi laø Server, cung caáp taøi nguyeân, chöông trình kia ñöôïc goïi laø Client, ñeå söû duïng taøi nguyeân ñoù. Caùc chöông trình Server vaø Client thöôøng laø chaïy treân caùc maùy khaùc nhau. Moât chöông trình Server coù theå cuøng ñaùp öùng cho nhieàu chöông trình Client treân nhieàu maùy tính khaùc nhau cuøng moät luùc.

Thoâng thöôøng chöông trình Server chaïy treân moät maùy tính naøo ñoù trong maïng, coù khaû naêng cung caáp moät dòch vuï naøo ñoù. Chöông trình Client laø chöông trình giao tieáp vôùi ngöôøi söû duïng, khi nhaän yeâu caàu cuûa ngöôøi söû duïng, chöông trình Client seõ gôûi caùc yeâu caàu ñeán chöông trình Server vaø chôø keát quaû traû veà, chöông trình Server khi nhaän ñöôïc yeâu caàu, seõ thi haønh dòch vuï töông öùng vaø traû keát quaû veà cho chöông trình Client.

Söï lieân heä giöõa chöông trình Client vaø Server chæ thoâng qua nhöõng daïng thöùc thoâng ñieäp ñöôïc qui ñònh khi laäp trình coøn vieäc xöû lyù laïi Server vaø hieån thò taïi Client laø ñoäc laäp nhau. Do ñoù chöông trình Client vaø Server coù theå thay ñoåi thöôøng xuyeân maø vaãn hoaït ñoäng toát mieãn sao vaãn tuaân theo caùc giao thöùc truyeån thoâng giöõa chuùng.

D. Giao thöùc TCP / IP :

trang 85

Page 86: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Döõ lieäu trong maïng ñöôïc truyeàn vaø nhaän thoâng qua caùc giao thöùc ñöôïc qui ñònh tröôùc. Moät giao thöùc laø moät taäp hôïp nhöõng qui taéc cho vieäc truyeàn nhaän döõ lieäu giöõa caùc thieát bò maùy tính vôùi nhau.

TCP/ IP laø teân chung cho moät taäp hôïp hôn 100 giao thöùc ñöôïc söû duïng ñeå keát noái caùc maùy tính vaøo maïng, ñeå toå chöùc caùc maùy tính vaø caùc thieát bò vieãn thoâng treân moät maïng. Teân TCP/IP laø chöõ vieát taét cuûa 2 giao thöùc quan troïng nhaát trong nhoùm laø TCP (Transmission Control Protocol) vaø IP (Internet Protocol)

Maïng duøng giao thöùc TCP/IP döõ lieäu ñöôïc chia thaønh nhöõng goùi nhoû goïi laø nhöõng packet. Khi ta gôûi ñi moät thoâng ñieäp, TCP seõ chia thoâng ñieäp naøy thaønh caùc packet, moãi packet ñöôïc ñaùnh daáu bôûi moät soá thöù töï vaø ñòa chæ cuûa ngöôøi nhaän, theâm vaøo ñoù laø moät soá thoâng tin kieåm soaùt loãi. Caùc packet naøy ñöôïc gôûi leân maïng vaø coâng vieäc cuûa IP laø truyeàn taûi chuùng tôùi host töø xa kia. Taïi nôi nhaän, TCP nhaän caùc packet vaø kieåm tra loãi, gôûi traû laïi neáu goùi khoâng ñuùng, vôùi nhöõng goùi duùng, TCP söû duïng soá thöù töï ñeå taïo laïi thoâng ñieäp ban ñaàu. Toùm laïi coâng vieäc cuûa IP laø chuyeån döõ lieäu thoâ - caùc packet töø nôi naøy ñeán nôi khaùc. Coâng vieäc cuûa TCP laø quaûn lyù doøng chaûy vaø ñaûm baûo raèng döõ lieäu laø ñuùng.

TCP/IP coù nhöõng ñaëc ñieåm sau :- Ñoäc laäp vôùi caùch noái maïng- Ñoäc laäp vôùi phaàn cöùng cuûa maïng- Caùc nghi thöùc theo tieâu chuaån cuûa heä môû- Caùch ñaùnh ñòa chæ phoå duïng (Universal Addressing)- Cung caáp moät soá dòch vuï maïng ñöôïc söû duïng roäng

raõi nhö Email, FTP, Telnet…- Laø cô sôû ñeå xaây döïng caùc öùng duïng theo moâ hình

Client / Server

CAÁU TRUÙC CUÛA MOÄT BÖÙC MAIL---------***--------

Veà cô baûn, moät böùc mail bao goàm 3 phaàn chính: Phaàn phong bì: Moâ taû thoâng tin veà ngöôøi gôûi vaø ngöoøi nhaän. Do heä thoáng taïo ra. Phaàn tieâu ñeà (header): chöùa ñöïng caùc thoâng tin veà ngöôøi gôûi, ngöôøi nhaän, chuû ñeà böùc mail, ñòa chæ hoài aâm .v.v.. Caùc thoâng tin naøy moät soá ñöôïc ngöôøi söû duïng cung caáp khi gôûi mail, moät soá khaùc ñöôïc chöông trình mail theân vaøo, vaø soá coøn laïi do heä thoáng ñieàn theâm. Phaàn noäi dung (body): chöùa ñöïng noäi dung cuûa böùc mail, laø noäi dung ñöôïc taïo ra bôûi trình soaïn thaûo Editor cuûa chöông trình mail. Sau ñaây laø chi tieát cuûa töøng phaàn:

trang 86

Page 87: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

A. Phaàn phong bì (Envelope) Phaàn naøy do caùc MTA taïo ra vaø söû duïng, noù chöùa

caùc thoâng tin ñeå chuyeån nhaän email nhö ñòa chæ cuûa nôi nhaän, ñòa chæ cuûa nôi göûi. Hay noùi caùch khaùc, nghi thöùc SMTP seõ quy ñònh thoâng tin cuûa phong bì, thoâng tin naøy ñöôïc heä thoáng email ñoøi hoûi ñeå chuyeån döõ lieäu töø moät maùy tính naøy sang moät maùy tính khaùc.

B. Phaàn tieâu ñeà (header) Phaàn naøy cung caáp nhöõng thoâng tin toång quaùt veà

email nhö ngöôøi nhaän, ngöôøi göûi, ngaøy giôø nhaän... Caáu taïo goàm nhieàu tröôøng (field) caáu truùc moãi tröôøng laø moät doøng vaên baûn ASCII chuaån 7 bit nhö sau: <teân tröôøng >: <noäi dung cuûa tröôøng> Sau ñaây laø moät soá tröôøng thoâng duïng vaø yù nghóa cuûa noù :

Date: Chæ ngaøy giôø nhaän mail. From: Chæ ngöôøi göûi. To: Chæ ngöôøi nhaä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.

trang 87

Page 88: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

. 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ôùiReply to Author Traû lôøi thö cho taùc giaû (ngöôøi ñaõ

gôûi thö cho mìnhReply 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

trang 88

Page 89: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

CHÖÔNG IVTÌM HIEÅU VEÀ CAÙC HEÄ THOÁNG MAIL TREÂN HEÄ ÑIEÀU

HAØNH LINUXMoä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

trang 89

Page 90: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

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ö [email protected]. 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.

trang 90

Page 91: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Ñ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.comDoø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ì.

trang 91

Page 92: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

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 1995Received: from bignet.com by tpci.tpci.com id aa00184; 21 Sep 95

17:39 EDTReceived: from mailserv.biggernet.com ([147.77.1.1]) by

bignet.com with SMTP id <250079-4>; Thu, 21 Sep 1995 20:48:04 -0400Received: by biggernet.com (4.1/SMI-4.1)id AA00266; Thu, 21 Sep 95 17:39:03 PDTDate: Thu, 21 Sep 1995 20:39:03 -0400From: Yvonne <[email protected]>Message-Id:

<9509220039.AA00266@[email protected]>To: [email protected]: Important stuffCc: [email protected]ù 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

mailPhuï 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:

trang 92

Page 93: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

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 SENDMAILHeä 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.cfKhi 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.

trang 93

Page 94: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

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)dnlDoø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.linuxMlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10,R=25/10, A=deliver

$uMprog, P=/bin/sh, F=lsDFMeuP, S=10, A=sh -c $uMoä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)dnlNgöôø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

trang 94

Page 95: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

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)dnlCoù 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)dnlMuï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)dnlNeá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)dnldefine(RELAY_MAILER, UUCP=A)dnlDoø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

trang 95

Page 96: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

define(UUCPNODES, |uuname|sort|uniq)dnldefine(BANGIMPLIESUUCP)dnldefine(BANGONLYUUCP)dnlDoø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)dnldefine(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 mailertableBaû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

trang 96

Page 97: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

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 uucprelaysFile 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 uucpxtalbeFile 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.comMuï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 [email protected] phaûi ñöôïc vieát laïi gioáng nhö chatton!yvone, moät ñòa chæ maø UUCP coù theå söû duïng.

trang 97

Page 98: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

7. Xaây döïng file sendmail.cf töø file sendmail.m4Baâ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.cfMoä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.0Treâ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 SendmailCaù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

trang 98

Page 99: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

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 SMAILHeä 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:

trang 99

Page 100: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Find /-name Smail –print1. Caøi ñaët SmailHeä 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 -> file2Kyù 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/rmailln -s /usr/local/bin/smail /usr/lib/sendmailCaù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/smtpdTieá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 ProtocolPhaû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 :

trang 100

Page 101: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

/usr/local/bin/smail -bd -q15mMuï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 smtpdBieå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 UUCPVieä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 namevisible_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 ôû

trang 101

Page 102: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bì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.uucpNeá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 : uucpKhi 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 mailvisible_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 nameuucp_name = tpci.comNeá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öû

trang 102

Page 103: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

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 hostsmart_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 –q15Chuù 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 SmailTreâ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

trang 103

Page 104: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

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 refusedNeá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/username8. Ñ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

trang 104

Page 105: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

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 [email protected] 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æ [email protected] coù theå ñöôïc giaûi quyeát ñeå chæ ñònh moät maùy khaùc chaúng haïn nhö [email protected] 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 TCPNeá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ï:

trang 105

Page 106: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

# Our domain namevisible_domain=tpci.com# Our domain name for outgoing mailvisible_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 namesmart_host=merlin# communications protocol to smart hostsmart_transport=smtpGiaù 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.

trang 106

Page 107: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Löu ñoà toång quaùt:

trang 107

LOGIN

EXIT

Logout

CHECK MAIL

SENDMAIL

MENUMENU

SEND

RESET

EXIT

SEND MAIL

CHECK MAIL

EXITREAD

RETURN DELETE

CHECK MAIL

MAILBOX R

ETURN

EXIT

NO MAIL

RETURN

EXIT

OK

ER

RO

R

EXITRETURN

EXITRETURN

EXITREPLY

ADDRESS

READ MAIL

RETURN

Page 108: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

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.

trang 108

Page 109: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

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.

trang 109

Yes

Yes

Yes

Taïo socket

Connect server taïi port 110

Gôûi leänhUSER username \r\n

Response = +OK

Gôûi leänhPASS password \r\n

Response = +OK

Gôûi leänhPASS password \r\n

Gôûi leänhSTAT \r\n

Response = +OK

1

Baùo loãi

Ñoùng Socket

No

No

No

No

Löu Ñoà Cho Getmail

Page 110: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

trang 110

Page 111: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

HOAÏT ÑOÄNG CUÛA CHÖÔNG TRÌNH SMTP CLIENTChöông trình smtp client seõ thöïc hieän laàn löôït theo sô

ñoà sau:

trang 111

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änhRETR 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

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

Page 112: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

TRÖÔØNG ÑAÏI HOÏC BAÙCH KHOA HAØ NOÄITRÖÔØNG ÑAÏI HOÏC THUYÛ SAÛNKHOA COÂNG NGHEÄ THOÂNG TIN

ÑEÀ CÖÔNG VIEÁT ÑOÀ AÙN TOÁT NGHIEÄP

trang 112

Page 113: Tìm hiểu một số công nghệ web và xây dựng một  chương trình newsletter

ÑOÀ AÙN TOÁT NGHIEÄP GVHD: Nguyeãn Ngoïc Bình

Hoï teân sinh vieân: Ñaëng Vuõ Quoác KhaùnhLôùp 39TH – Heä chính quy.Giaùo vieân höôùng daãn: Thaày Nguyeãn Ngoïc BìnhThôøi gian laøm ñoà aùn toát nghieäp: Töø ngaøy 21/4/2002

ñeán 25/9/2002Teâ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 SMTPPhaàn II: Giao thöùc POP3

Chöông III: Giôùi thieäu veà Internet MailChöô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

trang 113