เวบ/อินเตอร์เน็ตเทคโนโลยี ระบบปฏฺบัติการและซอฟท์แวร์ ซอร์สโค๊ด/โอเพนซอร์ส เทคโนโลยีฐานข้อมูล ระบบเครือข่ายและความมั่นคง เอ็มไอเอส/อีบิสสิเนส อื่น ๆ เกี่ยวกับไอ.ที. อื่น ๆ ไม่เกี่ยวกับไอ.ที.

เวบ/อินเตอร์เน็ตเทคโนโลยี

ระบบอีเมล(e-mail) แบบลึก ๆ ตอนที่ 1

เบื้องลึกเบื้องหลัง หลักการทำงาน ของระบบอีเมลล์
อัปเดท ( 21 มีนาคม 2547 ) , แสดง (45,577) , ความคิดเห็น (3) , พิมพ์  
 
เวบ/อินเตอร์เน็ตเทคโนโลยี
การเข้ารหัส VB Script (ASP) การเข้ารหัสเพื่อป้องกันข้อมูล VB
การบันทึกไฟล์ Macromedia Flash จากเวบเพจ การ Save ไฟล์ Macromedia Flash
ASP.net กับ Visual Studio .NET(2002) ปัญหาคือ VS.net จะไม่สามารถ New Project(Asp.net) ได้
ทำไมต้องมี Unicode ? เบื้องลึกของ ตัวอักษรภาษาไทย, ตัวอักษรภาษาญี่ปุ่น และภาษาอื่นๆ
รู้จัก JSP และ JavaBeans เหมือนหรือต่างกันอย่างไร concept เดียวกัน ชื่อต่างกันเพราะ ค่ายต่างกันแค่นั้นเหรอ..
คุกกี้ (Cookies) เกี่ยวอะไรกับเวบ เมื่อ เว็บเซอร์ฟเวอร์ เกิดหลงๆลืมเหมือนคนแก่
รู้จัก Streaming Media Technology แนวโน้มของเวบไซต์และเทคโนโลยีอนาคตเมื่ออินเตอร์เน็ตความเร็วสูงขึ้น
ระบบอีเมล(e-mail) แบบลึก ๆ ตอนที่ 1 เบื้องลึกเบื้องหลัง หลักการทำงาน ของระบบอีเมลล์
ระบบอีเมล(e-mail) แบบลึก ๆ ตอนที่ 2 เบื้องลึกเบื้องหลัง หลักการทำงาน ของระบบอีเมลล์
เรื่องเล็กๆ แต่ยิ่งใหญ่ ของ Database กับ Text Box อีกช่องโหว่ ที่ควรระวังเมื่อต้องเขียนโปรแกรมกับ textbox

บทความนี้จะพูดถึงการทำงานของระบบ E-mail ตั้งแต่เบื้องต้นจนไปถึงรายละเอียดลึกๆ ลงถึงระดับคำสั่งซึ่งยาวมาก จึงได้แบ่งเป็น 2 ตอน โดยช่วงแรกของตอนที่ 1 เนื้อหาจะไกล้ตัวเข้าใจง่าย แต่ช่วงหลังของตอนที่ 1 และ ตอนที่ 2 ทั้งหมดผู้อ่านผู้อ่านอาจอ่านแล้วไม่เข้าใจเพราะจะพูดถึงการทำงานเบื้องลึกจริงๆ การทำงานทั่ว ๆ ไปของ E-mail โดยสรุปมีเพียง 2 ประเภท คือ การส่ง E-mail และการรับ E-mail โดยโปรโตคอล SMTP (Simple Mail Transfer Protocol ) จะใช้ขณะที่ User agent ส่ง E-mail มาที่ MTA(Mail Tranfer Agent) ( เฉพาะแบบ offline ) และใช้ในขณะรับและส่ง E-mail ระหว่าง MTA ด้วยกัน สำหรับการใช้ mail แบบ offline คือเครื่องที่ผู้ใช้ใช้อ่าน mail ไม่ได้ติดต่อกับเครื่องที่มี mailbox ตลอดเวลา อาจเลือกดาวน์โหลด mail มาเก็บไว้ที่เครื่องของตัวเองนั้น จะมีโปรโตคอลสำหรับรับ E-mail ที่เกี่ยวข้อง ที่ใช้งานกันแพร่หลาย มีอยู่ 2 แบบ คือ โปรโตคอล POP (Post Office Protocol) และ IMAP ( Internet Message Access Protocol) ซึ่งจะทำหน้าที่ download หรือ upload จากเครื่องของผู้ใช้ไปยังเครื่องที่มี MTA อยู่

รูปแบบของข้อมูลที่ใช้ในโปรโตคอลต่าง ๆ ของ E-mail นี่ถูกกำหนดไว้ใน RFC 822 (Request For Commments Number 822) ซึ่งแบ่งส่วนประกอบภายใน E-mail เป็น 2 ส่วน คือ ส่วนที่เป็นจ่าหน้า E-mail และข้อมูลของ E-mail ในส่วนของจ่าหน้า E-mail นี้มีไว้เป็นข้อมูล เพื่อให้ส่งไปถึงผู้รับ รูปแบบของข้อมูลจะเป็นข้อความหรือ Text นำหน้าด้วยคำสำคัญ ( Keyword ) เช่น From หมายถึง ชื่อผู้ส่ง ส่วน to หมายถึง ชื่อผู้รับ เป็นต้น ซึ่งจะคล้ายกับ การที่ต้องกำหนดเมื่อบันทึก E-mail ถัดจาก คำสำคัญ ก็จะเป็นค่าของข้อมูลในชุดนั้น ๆ เช่น From ก็จะต่อด้วยชื่อของผู้ส่ง และ Reply To ก็จะต่อด้วยชื่อของ ผู้รับ เป็นต้น โดยแต่ละบรรทัด จะปิดท้าย ด้วย Carriage Return และ/หรือ Line Feed (ขึ้นอยู่กับระบบปฏิบัติการที่ใช้ เช่น Window จะปิดท้ายด้วย Carriage Return และ Line Feed ส่วนในระบบปฏิบัติการอื่น เช่น UNIX ก็อาจจะใช้เพียง Carriage Return เท่านั้น ) เป็นเครื่องหมายของการสิ้นสุดบรรทัด จะเห็นว่าในส่วนของจ่าหน้า E-mail นี้ มีข้อความที่จำเป็น คือ รายละเอียดของผู้ส่งและผู้รับ ส่วนรายละเอียด อื่น ๆ เช่น รายชื่อผู้รับสำเนา (Cc) จะมีหรือไม่มีก็ได้

มาถึงส่วนที่เป็นข้อมูลของ E-mail ซึ่งจะแบ่งย่อยออกได้เป็น 2 ส่วน คือ ส่วนหัว (header) และส่วนเนื้อความ (body) ของ E-mail ส่วนหัวนี้จะถูกสร้างขึ้นอย่างอัตโนมัติโดย user agent ของผู้ส่ง เพื่อให้ MTA ต่าง ๆ ระหว่างทางที่ส่งผ่าน E-mail ฉบับนั้นได้อ่านไปใช้งาน ซึ่งประกอบด้วยข้อมูลต่าง ๆ หลายประเภท ตัวอย่างของข้อมูลในส่วนหัวของ E-mail ได้แก่ เลขทะเบียนของ E-mail (message header) ,วันที่และเวลาที่ส่ง เป็นต้น ส่วนที่เป็นเนื้อความของ E-mail นั้นจะเป็นบรรทัดที่แยกจากส่วนหัว โดยถูกคั่นด้วยบรรทัดว่าง ๆ (null line) และในแต่ละบรรทัดของเนื้อความจะสิ้นสุดบรรทัดด้วย Carriage Return และ/หรือ Line Feed

ตามข้อกำหนด RFC 822 ในการส่ง E-mail ผ่าน internet นั้นแต่ละบรรทัดจะมีขนาดยาวไม่เกิน 1,000 ไบต์ และขนาดของ E-mailแต่ละครั้งจะไม่เกิน 64 กิโลไบต์ ซึ่งผู้ส่งไม่จำเป็นต้องสนใจว่า E-mail ที่ส่งไปนั้น จะผ่านไปที่ MTA ใดบ้าง เนื่องจาก E-mail ถูกเข้ารหัสและส่งไปถึงยัง User agent ของผู้รับปลายทาง และผ่านการถอดรหัสได้โดยอัตโนมัติ

ตัวอย่างข้อมูลในอีเมล์ (ส่วนของ Message Header )

From: deoinbox@thai.com
To: webmaster@nextproject.net
Subject: book schedule
Date: Mon, 3 Jan 94 10:50:11 CST
Received: from mail.thai.com by mailnextproject.net(5.65/1.8)
Message-Id: 9401031650.AAA7058@mail.thai.com

ส่วนของ Message Body

Hi,

We need to talk about the book schedule.
Let me know when you are available.

Thanks,
Deo

จากองค์ประกอบของโปรโตคอลและวิธีการรับส่งอีเมล์ที่กล่าวผ่านมา ทำให้การใช้อีเมล์ในปัจจุบันซึ่งทำงานแบบ Client Server สามารถทำงานได้ 3 แบบ คือ

1. แบบ Offline หรือเรียกว่า Download and Delete ซึ่งเป็นมาตราฐานทั่วไป ในการใช้งานกับอีเมล์ของอินเตอร์เน็ต ซึ่งใช้โปรโตคอล เช่น POP โดย User Agent ของผู้รับจะ download E-mail ทั้งหมดมาจาก Mail Server และลบอีเมล์เหล่านั้นออกไป ในโปรแกรมไคล์เอนต์ของอีเมล์บางโปรแกรมสามารถให้เลือกได้ว่าต้องการลบอีเมล์ที่ download มาแล้วทางฝั่งเซิร์ฟเวอร์นั้นทิ้งหรือไม่ ) ทำให้ผู้ใช้สามารถอีเมล์นั้นได้ตลอดเวลา โดยไม่จำเป็นต้องติดต่อ Mail Server อีก แต่ User Agent จะไม่รู้ว่ามีอีเมล์เข้ามาใหม่จนกว่าจะติดต่อเข้าไปยังเมล์เซิร์ฟเวอร์และ download อีเมล์เข้ามาใหม่

2. แบบ Online เป็นแบบที่อีเมล์ด้าน User Agent ของผู้รับจะต้องติดต่อกับเมล์เซิร์ฟเวอร์ของผู้รับเองตลอดเวลาที่ใช้อีเมล์ ซึ่งระบบที่ให้บริการอีเมล์แบบนี้จะสามารถเปิดแชร์ mailbox ที่ เซิร์ฟเวอร์ได้ตลอดเวลา เช่น NFS (Network File System) หรือ CIFS (Common Internet File System) เป็นต้น

3. แบบ Disconnected เป็นแบบผสมผสานระหว่างแบบ Offline และ Online โดยอาศัย mail server ของผู้รับเป็นที่หลักในการจัดเก็บข้อมูลของอีเมล์ และในส่วนเนื้อที่ของ User Agent นี้ จะเป็นที่เก็บอีเมล์สำรอง โดยเมื่อมีการ download อีเมล์มาก็จะทำงานในแบบของ Offline เพื่อลดภาระในการติดต่อกับ mail server ตลอดเวลา แต่ข้อมูลอีเมล์จะต้องไม่ถูกลบออกจากเมล์เซิร์ฟเวอร์ ผู้ใช้สามารถโหลดอีเมล์ที่แก้ไขแล้ว กลับไปยัง mail server ในภายหลังได้ เช่น การแก้ไขหรือตอบกลับอีเมล์ (Reply to) ที่ส่งมา เป็นต้น
  
 

POP3
สำหรับผู้ที่ใช้งาน E-mail บน internet มาแล้ว คงจะคุ้นเคยกับโปรโตคอลที่เรียกว่า POP กันเป็นอย่างดี เพราะเป็นโปรโตคอลที่ทำหน้าที่โหลด E-mail มาจาก MTA ไปยัง User Agent ซึ่งในปัจจุบันได้พัฒนามาจนถึง version 3 แล้ว หรือเรียกย่อ ๆ ว่า POP3 (Post Office Protocol version 3) โปรโตคอลนี้เป็นตัวแรกที่ถูกออกแบบมาเพื่อใช้รับ E-mail และเพื่อให้สนับสนุนการทำงานแบบ offline ซึ่งกลไกของ POP3 นี้จะทำงานในแบบ Offline โดยติดต่อเข้าไปยัง mail server แล้ว download E-mail ทั้งหมดมาไว้ที่ User Agent จากนั้นจะลบ E-mail ที่ server นั้น ทิ้งไป เพื่อป้องกันการ download ซ้ำ แต่ผู้ใช้จะทำงานแบบ online กับ server ไม่ได้ เนื่องจากการอ่าน E-mail จะดึง E-mail ที่เก็บไว้ใน User Agent ขึ้นมาให้อ่านหลังจากที่ download มาเก็บไว้ ซึ่งในขณะนั้น อาจไม่ได้ online อยู่กับ network ก็ได้

โปรโตคอลของ POP3 นี้จะทำงานในแบบของไคลเอนต์เซิร์ฟเวอร์ คือ มีโปรแกรม POP Server ใน mail server และ POP Client ในเครื่องของผู้รับ ซึ่งปกติจะฝังอยู่ในโปรแกรมที่เป็น User Agent เลย โปรแกรมทั้ง2 จะติดต่อกันโดยใช้คำสั่งที่เป็นรหัส ASCII คือเมื่อด้านที่รับทำคำสั่งก็จะทำงานตามคำสั่งนั้น แล้วตอบกลับมามีค่าเป็น ( +OK ) หมายถึง ทำงานได้เรียบร้อย หรือ (-ERR) หมายถึง เกิดปัญหาขึ้นทำงานไม่ได้ ซึ่งในคำสั่งที่ต้องมีการตอบกลับและส่งข้อมูลกลับมา โดยประกอบด้วยข้อมูลหลาย ๆ บรรทัดนั้น POP3 จะให้บรรทัดสุดท้ายเป็นเครื่องหมาย (.) ตามด้วย Carriage Return และ Line Feed หมายถึงการสิ้นสุดชุดข้อมูล แต่ในกรณีที่ข้อมูลบรรทัดสุดท้าย มีข้อมูลที่เป็นจุดด้วย จะใช้เทคนิคที่เรียกว่า Character Stuffing เพื่อแก้ปัญหา โดยจะเติมจุดลงไปอีก 1 ตัว เพื่อเป็นตัวบ่งชี้ ว่าข้อมูลนั้นเป็นจุด ซึ่งจะแตกต่างจากสัญลักษณ์แสดงการสิ้นสุดของข้อมูล

การทำงานของ POP3 จะทำงานร่วมกับโปรโตคอล TCP(Transmission Control Protocol ) โดยทั่วไป จะใช้ port 110 ในการติดต่อ ขั้นตอนการทำงานของ POP3 จะประกอบด้วย 3 สถานะ คือ สถานะขออนุมัติ,สถานะรับส่งรายการ และสถานะปรับปรุงข้อมูล ซึ่งในแต่ละสถานะจะรับรู้คำสั่งต่าง ๆ ของโปรโตคอลที่แตกต่างกัน ดังนี้ 

1.สถานะขออนุมัติ ( Authorization State ) เมื่อเริ่มต้นติดต่อกับเซิร์ฟเวอร์จะเป็นการ เข้าสู่สถานะการขออนุมัติ โดยไคลเอนต์จะต้องแจ้งชื่อผู้ใช้ และรหัสผ่าน ( password ) เพื่อขออนุมัติจากเซิร์ฟเวอร์ก่อน โดยไคลเอนต์จะใช้คำสั่ง USER เพื่อระบุชื่อผู้ใช้ หรือคำสั่ง PASS เพื่อกำหนด Password แต่ในกรณีที่ชื่อ Password ถูกเข้ารหัสไว้ และไม่ได้เป็นค่า ASCII ทั่วไป ไคลเอนต์จะใช้คำสั่ง APOP ทำงานแทนคำสั่ง USER และ PASS

2. สถานะรับส่งรายการ ( Transaction State ) หลังจากที่ได้รับอนุมัติจากเซิร์ฟเวอร์แล้ว ก็จะเข้าสู่สถานะที่ใช้คำสั่งในการทำงานต่าง ๆ

3.สถานะปรับปรุงข้อมูล ( Update State ) เมื่อ User Agent เลิกใช้งานด้วยคำสั่ง QUIT ของ POP3 เซิร์ฟเวอร์ก็จะเข้าสู่สถานะปรับปรุงข้อมูล เพื่อลบอีเมล์ที่ดาวน์โหลดเรียบร้อยแล้วออกไป จากนั้นก็จะเข้าสู่สถานะขออนุมัติใหม่โดยอัตโนมัติ เพื่อรอรับการทำงานครั้งต่อไป

สถานะขออนุมัติ ( Authorization State )

เมื่อ POP3 Client ติดต่อกับ POP3 Server ก็จะแสดงบรรทัดติดต่อขึ้นมาบรรทัดหนึ่ง และบอกจุดสิ้นสุดด้วย CRLF (Carriage Return Line Feed ) ตัวอย่างเช่น
 s :+OK POP3 server read 

เป็นการตอบรับของ POP3 ซึ่ง POP3 server จะแสดงเครื่องหมาย + บอกการตอบรับว่าในขณะนั้นสามารถให้บริการแก่ Client ตามที่ร้องขอ
เมื่อ POP3 อยู่ในฐานะ Authorization State แล้วก็จะทำการยืนยันแก่ POP3 server โดยมีวิธีการยืนยันอยู่สองวิธี คือ
- คำสั่ง USER รวมกับคำสั่ง PASS
- คำสั่ง APOP
  
 

การใช้คำสั่ง USER และคำสั่ง PASS ในขั้นแรก Client ต้องใช้คำสั่ง USER ก่อนถ้า POP3 Server ตอบมาด้วยสถานะบ่งชี้ว่าเป็นเครื่องหมาย + ("+OK") เครื่อง client ก็จะใส่คำสั่ง PASS เข้าไปในการทำงานหรือคำสั่ง QUIT เพื่อบอกสถานะว่าหยุดการทำงานถ้าหากสถานะบ่งชี้เป็นเครื่องหมาย - ("ERR") เครื่อง Client ต้องส่งคำสั่งไปใหม่หรือยกเลิกโดยใช้คำสั่ง Quit ไปเลยก็ได้ เมื่อเครื่อง Client ส่งคำสั่ง Pass แล้ว POP3 Server จะใช้ทั้งคำสั่ง USER และ PASS เพื่อพิจารณาว่าเครื่อง Client ใดสามารถเข้าไปใช้งานภายใน maildrop ได้

POP3 Server ได้มีการจำกัดการเข้าถึงใน Maildrop เพื่อป้องกันไม่ให้ผู้ที่ไม่มีสิทธิ์เข้าไปทำการเปลี่ยนแปลงหรือลบข้อมูลใน Maildrop ก่อนจะเข้าสู่ช่วง Update State ถ้าการ lock สำเร็จ POP3 Server ก็จะตอบสนองด้วยสถานะการบ่งชี้ เป็น + ขณะนี้ POP3 ก็จะเข้าสู่ช่วง Transaction State ซึ่งไม่มี Message ที่ถูกทำเครื่องหมาย Delete ถ้าไม่สามารถเปิด maildrop เนื่องจากเหตุผลบางประการ เช่น lock ไม่ได้ , Client ปฏิเสธการเข้าถึง Maildrop ที่เหมาะสม หรือ maildrop ไม่สามารถกระจายข้อมูลได้ , Mail Server จะแสดงสถานะบ่งชี้เป็นเครื่องหมาย - ถ้ามีการ lock แต่ POP3 Server ยังแสดงสถานะบ่งชี้เป็นเครื่องหมายลบอยู่ จะต้องดูที่สำดับการ LOCK ในการปฏิเสธคำสั่ง หลังจากได้รับตัวบ่งชี้สถานะเป็นเครื่องหมายลบ Server ก็จะปิดการติดต่อถ้า Server ยังไม่ปิดการติดต่อเครื่อง Client ก็จะส่งคำสั่งมาอีก หรือไม่ก็ใช้คำสั่ง Quit ออกไปเลยเมื่อ POP3 Server ได้เปิด Maildrop ก็จะส่งหมายเลข Message ไปยังแต่ละ Message ซึ่งขนาดของแต่ละ Messagee จะอยู่ในรูปของเลขฐาน 8 ข้อความแรกใน Maildrop จะได้รับหมายเลข Message เป็น 1ลำดับที่สอง ก็เป็น 2 ตามลำดับไปเรื่อยๆ คำสั่ง POP3 และหมายเลขจะเป็นเลขฐาน 10 ตัวอย่าง

USER name
Arguments:
String ที่ระบุใน mailbox ที่เจาะจงจะส่งไปให้ Server
Restriction:
จะถูกใช้ในช่วง Authorization State หลังจากมีการตอบรับจาก POP3 หรือหลังจากใช้คำสั่ง USER และ PASS ไม่สำเร็จ
Possible Response:
+OK มีชื่อที่ระบุไว้ใน mail box
-ERR ไม่มีชื่อที่ระบุไว้ใน mail box

Examples:
C: USER mrose
S: +OK mrose is a real hoopy frood
......................................................
C: USER frated
S: -ERR sorry, no mailbox for frated here

PASS String
Arguments:
ระบุ Password ของ Server หรือ Mailbox
Restriction:
เข้าสู่ช่วง Authorization State หลังจากคำสั่ง USER สำเร็จ
Discussion:
ต้องมีการใส่ Password ทุกครั้งซึ่ง POP3 Server จะถือว่าช่องว่างที่ใส่ลงไปนั้นเป็นPassword
Possible Responses:
+OK คือ มีการ lock maildrop และพร้อมที่จะใช้งานแล้ว
-ERR Password ไม่ถูกต้อง
-ERR ไม่สามารถ Lock Maildrop ได้

Examples:
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
Arguments: none
Restrictions: none
Possible Responses:
+OK

Examples:
C: QUIT
S: +OK dewey POP3 server signing off

Transaction State เมื่อเครื่อง Client ได้แสดงการติดต่อไปยังเครื่อง POP3 Server แล้ว POP3 Server จะทำการ Lock และเปิด Maildropที่ต้องการซึ่งตอนนี้ก็จะเป็นการเข้าสู่ Transaction State หลังจากที่ได้รับอนุมัติจาก Server ก็จะเข้าสู่สถานะในการทำงานต่าง ๆ และเมือเครื่อง Client ใช้คำสั่ง QUIT ก็จะเข้าสู่ช่วง Update State

STAT
Arguments : None
Restrictions: ถูกกำหนดในช่วง Transaction State
Discussion: POP3 Server ที่มีการตอบรับจะใช้เครื่องหมาย + ในบรรทัดที่มีข้อมูลต่าง ๆ ใน Maildrop บรรทัดนี้เรียกว่า Drop Listing ของ Maildrop นั้น เพื่อให้การทำงานง่ายขึ้น POP3 Server ทั้งหมดต้องใช้รูปแบบที่แน่นอนของ Drop Listing นั้น กรณีตอบรับจะขึ้นคำสั่ง +OK และตามด้วย Single Space และขนาดของ maildrop ในรูปของเลขฐาน 8 การนำไปใช้ขั้นพื้นฐานก็สิ้นสุดบรรทัดด้วย CRLF Pair แต่ขั้นประยุกต์อาจจะมีข้อมูลอื่น ๆ รวมอยู่ด้วย

Examples:
C: STAT
S: +OK 2 320

List ( msg )
Arguments : message number ที่มีอยู่ซึ่งไม่ได้หมายถึง Message ที่ถูก Mark ว่า Delete
Restriction: ใช้เฉพาะในช่วง Transaction State v
Discussion: ถ้ามีการใส่ Argument และสถานะของ Server เป็นเครื่องหมาย + ตามด้วยบรรทัดซึ่งบรรจุข้อมูลใน Message นั้น บรรทัดนี้เรียกว่า Scan Listing แต่ถ้าไม่มีการให้ Argument และ POP3 Server ไม่แสดงเครื่องหมาย + ก็จะมีการตอบรับเป็น Multiline หลังจากกำหนด + OK ของแต่ละ Message ใน Maildrop POP3 Server จะตอบรับด้วยบรรทัดที่บรรจุข้อมูลในข้อความนั้น ซึ่ง บรรทัดนี้เรียกว่า Scan Listing

Scan Listing ประกอบด้วย Message ตามด้วย single space และขนาดที่แท้จริง ของ Messageในรูปของเลขฐาน 8 การใช้งานพื้นฐานก็เพียงแค่จบด้วย CRLF แต่ขั้นสูงอาจจะต้องมีการใช้ข้อมูลอื่น ๆ สำหรับ Message
Possible Responses:
+OK scan listing follows
-ERR no such message

Examples:
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
Arguments: ต้องมีหมายเลข Message ซึ่งจะไม่ได้หมายถึง Message ที่ถูก Mark ว่าจะ Delete
Restrictions:ใช้เฉพาะในช่วง Transaction State
Discussion: ถ้า POP3 Server แสดงการตอบรับเป็นเครื่องหมาย + และการตอบรับเป็นแบบ Multiline หลังจากเริ่มว่า +OK แล้ว POP3 Server จะส่งข ้อความตอบรับเพื่อให้หมายเลข Message และใส่ Byte Stuff แสดงจุดสิ้นสุดของตัวอักษร
Possible Responses:
+OK message follows
-ERR no such message

Examples:
C: RETR 1
S: +OK 120 octets
S: (the POP3 server sends the entire message here)
S: .

DELE msg
Arguments:ต้องมีหมายเลข Message ซึ่งจะไม่ได้หมายถึง Message ที่ถูก Mark ว่าจะ Delete
Restrictions:ใช้เฉพาะในช่วง Transaction State
Discussions: POP3 Server จะ Mark ข้อความที่ Delete เมื่อมีการอ้างถึงหมายเลข message ที่ติดต่อกับ message ที่ Error ซึ่ง POP3 Server จะไม่ลบข้อความไปจริงๆจนกว่าจะเข้าสู่ช่วง Update State
Possible Responses :
+OK message deleted
-ERR no such message

Examples:
C: DELE 1
S: +OK message 1 deleted
...
C: DELE 2
S: -ERR message 2 already deleted

NOOP
Arguments: none
Restrictions: POP3 Server ไม่ทำอะไรจะตอบรับสถานภาพเป็นเครื่องหมาย + เท่านั้น
Possible Responses:
+OK

Examples:
C: NOOP
S: +OK

RSET
Arguments : none
Restrictions: ใช้ในช่วง Transactions State
Discussions: ถ้า POP3 Server มีข้อความที่ถูก Mark ว่า Delete ถ้าใช้คำสั่งนี้จะทำการยกเลิกการ Mark ซึ่งจะทำให้ POP3 Server จะแสดงสถานะเป็นเครื่องหมาย +
Possible Responses:
+OK

Examples:
C: RSET
S: +OK maildrop has 2 messages (320 octets)

The Update Stateเมื่อ Client ได้รับคำสั่ง Quit จาก Transaction State แล้วก็จะเข้าสู๋ช่วง Update State (กรณีที่ Client ใช้คำสั่ง Quit ในช่วง Authorization State POP3 Session จะสิ้นสุดแต่ไม่ได้ถือว่าเข้าช่วง Update State
ถ้าในช่วงของ POP3 สิ้นสุดลงด้วยเหตุผลบางประการที่ไม่ใช่เฉพาะคำสั่ง Quit POP3 Session จะไม่เข้าสู่ช่วง Update State และต้องไม่กำจัดข้อความใด ๆ ออกจาก Maildrop

QUIT
Arguments: none
Restrictions : none
Discussions: POP3 Server จะกำจัดข้อความทั้งหมดที่ถูก mark ว่าจะให้ลบจาก maildrop ซึ่งมันจะถูกลบจาก maildrop ในขั้นตอนนี้
Possible Responses:
+OK

Examples:
C: QUIT
S: +OK dewey POP3 server signing off (maildrop empty)
...
C: QUIT
S: +OK dewey POP3 server signing off (2 messages left) 


ระบบอีเมลล์ ตอนที่ 1 และ ระบบอีเมลล์ ตอนที่ 2



เขียนโดย : จักรกฤษณ์ แร่ทอง

nui
10 Jun 2005 , 03:22 AM
คำอธิบายของคุณจักรกฤษณ์ แร่ทอง อ่านยาก สำหรับผู้เริ่มต้น อยากให้ปรับวิธีการอธิบายให้เข้าใจได้ง่าย ๆ ไม่ยาก และเห็นภาพชัดเจน.. เช่น องค์ประกอบพื้นฐานของการส่งและรับเมล์ เป็นต้น.. เยี่ยมชมและเสนอแนะความคิดเห็นได้ที่นี่ครับ http://blog.citecclub.org/archive.php?u=nprotech&y=2005&m=5

จักรกฤษณ์ แร่ทอง
15 Jun 2005 , 06:14 PM
ผมก็อยากทำอย่างที่ K.nui ว่าน่ะครับ แต่บอกตรง ๆ น่ะครับ ว่าเขียนยากจริง ๆ ยากมาก ๆ แค่การทับศัพท์ บางครั้งก็ก็ไม่ไน่ใจว่าควรจะแปลหรือทับศัพท์ไปเลย .. ถ้ามีเวลาอาจขัดเกลาให้ดีกว่านี้น่ะครับ

โอ๊ค
10 ก.ย. 2552 , 11:20 AM
ขอบคุณมากครับ ได้ความรู้เพิ่มอีกแล้ว
1

ความคิดเห็น/แนะนำ/ติชม/อื่นๆ เกี่ยวกับบทความนี้
ชื่อของคุณ  : *     อีเมล : *    
ความคิดเห็น : *    
      อีเมลล์จะไม่ถูกเปิดเผย (นโยบายข้อมูลส่วนบุคคล)

Copyright © 2002 - 2017 by www.NEXTPROJECT.net All rights reserved. Policy