570 likes | 697 Views
315241 Communication of Information System. Electronic Mail เสรี ชิโนดม seree@buu.ac.th. Introduction. การประยุกต์ใช้งานของผู้ใช้ทั่วไปส่วนใหญ่จะใช้สถาปัตยกรรมแบบ client-server Electronic mail client รับ mail จากผู้ใช้และส่งไปยัง server ที่เป็นเครื่องปลายทาง
E N D
315241Communication of Information System Electronic Mail เสรี ชิโนดมseree@buu.ac.th P# 1
Introduction • การประยุกต์ใช้งานของผู้ใช้ทั่วไปส่วนใหญ่จะใช้สถาปัตยกรรมแบบ client-server • Electronic mail client รับ mail จากผู้ใช้และส่งไปยัง server ที่เป็นเครื่องปลายทาง • มีวิธีการหลายรูปแบบในการส่งจดหมายอิเลกทรอนิกส์ P# 2
Electronic mail • โปรแกรมไปรษณีย์อิเล็กทรอนิกส์เป็นบริการรับส่งจดหมายผ่านเครือข่ายคอมพิวเตอร์ เช่นเครือข่าย Internet ซึ่งให้บริการได้สะดวกและรวดเร็วกว่าการใช้บริการไปรษณีย์ธรรมดามาก • สามารถรับส่งข่าวสารได้ทั้งแบบตัวอักษร ภาพ และเสียง ทำให้การติดต่อสื่อสารไม่มีขีดจำกัด และเป็นระบบที่ได้รับความนิยมในการใช้บริการสูงในเครือข่าย P# 3
Electronic mail • ระบบไปรษณีย์อิเล็กทรอนิกส์ประกอบขึ้นด้วยองค์ประกอบที่สำคัญ 2 ส่วนคือ - ส่วนการติดต่อกับผู้ใช้ เรียกว่า user agent - ส่วนการรับส่งไปรษณีย์อิเล็กทรอนิกส์ระหว่างเครื่องคอมพิวเตอร์ในเครือข่าย เรียกว่าMessage Transfer Agent หรือ Mail Transfer Agent (MTA) • องค์ประกอบที่สำคัญอีกส่วนหนึ่งได้แก่ P# 4
User Agent • เป็นส่วนที่ผู้ใช้คุ้นเคยและรู้จักกันดี เป็นโปรแกรมคมพิวเตอร์ทางด้านผู้ใช้งานแบ่งเป็น 2 ส่วน คือส่วนของผู้ส่งและส่วนของผู้รับ • User Agent จะติดต่อเข้าสู่เครื่องบริการ (Server)โดยผ่านระบบ LAN หรือ Dial-up • เป็นส่วนที่ผู้ใข้ติดตั้งโปรแกรม client ของอีเมล์เพื่อเรียกใช้บริการอีเมล์ • เช่นโปรแกรม Pine ในระบบปฏิบัติการ UNIX, และโปรแกรม Eudoraหรือ Outlook express ในระบบปฏิบัติการ Windows P# 5
User Agent (cont.) • โปรแกรมเหล่านี้ช่วยอำนวยความสะดวก • ในการอ่านจดหมายอิเล็กทรอนิกส์ที่ได้รับ • ช่วยในการจัดเตรียมจดหมายและจัดส่ง • อำนวยความสะดวกในการจัดเก็บที่อยู่ (email address) ของผู้ใช้ที่มีการติดต่อบ่อยครั้ง P# 6
Message Transfer Agent(MTA) • ทำหน้าที่สร้างการติดต่อกับเครื่องคอมพิวเตอร์อื่นในระบบเพื่อรับส่งไปรณีย์อิเล็กทรอนิกส์ จากต้นทางไปยังผู้รับปลายทาง ซึ่งจะต้องส่งผ่านเครื่องจำนวนมากที่เชื่อมต่อกันในระบบเครือข่าย โดยโปรแกรมเหล่านี้จะช่วยส่งต่อข้อมูลเป็นทอด ๆ จนถึงเครื่องที่มี account ของผู้รับ • ถ้าส่งไปรณีย์อิเล็กทรอนิกสไม่ได้ จะส่ง error mail กลับมายังผู้ส่งได้ • เครื่องที่มี MTA ทำงานอยู่จะมี mailbox ของผู้ใช้อยู่ด้วยเรียกว่า primary mailbox และเรียกเตรื่องนั้นว่า Mail Server P# 7
MTA (cont.) • เป็นส่วนที่ต้องมี protocol ในการติดต่อที่ชัดเจน และทำหน้าที่เป็นทั้งผู้ให้บริการและผู้ขอใช้บริการในโปรแกรมเดียวกัน • โปรแกรมในส่วนนี้ที่นิยมใช้ในระบบปฏิบัติการ UNIX ได้แก่ sendmail ซึ่งเป็นโปรแกรมที่เป็นไปตามโปรโตคอลมาตรฐาน SMTP (Simple Mail Transfer Protocol) P# 8
Electronic mail paradigm • Electronic mail มีรูปแบบพื้นฐานเหมือนกับการส่งข่าวสารในสำนักงานทั่วไป • แต่รวดเร็วและค่าใช้จ่ายต่ำในการติดต่อ • ใช้ระบบ time-sharing systems ที่เกิดในปี 1960s • เนื่องจาก e-mailสามารถเข้ารหัสและสามารถโต้ตอบได้ • รวดเร็ว(Fast ) • สามารถสร้างระบบโต้ตอบแบบอัตฺโนมัติ - sorting, reply • สามารถที่จะแนบแฟ้มส่งไปได้ P# 9
Electronic mailboxes • ผู้ใช้ทุกคนจะมีตู้รับจดหมาย(mailbox) ของผู้ใช้แต่ละคน • ผู้ใช้สามารอ่านไปรษณีย์ อิเล็กทรอนิกส์โดยใช้โปรแกรมที่ทำหน้าที่อ่านจดหมาย(mail reader program ) • ปกติ ตู้รับจดหมาย ของผู้ใช้แต่ละคนจะสอดคล้องกับcomputer account หรือ user account • ผู้ใช้แต่ละคนอาจมี ตู้รับจดหมายที่แตกต่างกัน P# 10
E-mail addresses • ตู้รับจดหมายของผู้ใช้ จะถูก identified โดย e-mail address • โดยทั่วไปจะเหมือนกับ user's account ID, แต่ไม่เสมอไป • บนเครื่อง non-networked multi-user computer, e-mail addressคือ account ID (no need to identify computer) P# 11
Networked e-mail addresses • การส่งเมล์บนระบบเครือข่ายคอมพิวเตอร์จะมีความซับซ้อน • ต้องระบุชื่อเครื่องคอมพิวเตอร์ • รูปแบบของ e-mail address โดยทั่วไปจะต้องระบุชื่อเครื่องคอมพิวเตอร์และชื่อ mailbox • รูปแบบทั่วไป - user@host • รูปแบบอื่นๆ: • host1!host2!host!user • host%user P# 12
Internet mail addressing • User ต้องระบุให้ชัดเจน(site-specific ) seree Seree_Chinodom 578.4309 • Host คือ domain name • Source mail client • หาชื่อเครื่องคอมพิวเตอร์จาก DNS (MX, if vailable) • ติดต่อกับ delivery server • สำเนา mail ไปยัง server • Destination mail server • ตีความหมาย user name เพื่อหาตู้รับจดหมาย • นำ mail ไปจัดเก็บในตู้รับจดหมาย P# 13
E-mail message format • รูปแบบของไปรษณีย์อีเล็กทรอนิกส์ถูกกำหนดใน RFC 822 • จดหมายอีเล็กทรอนิกส์ทุกฉบับจะประกอบด้วยสองส่วน: • Header ประกอบด้วยรายละเอียดของข้อมูลที่จะส่ง • Body ประกอบด้วยข้อความของจดหมาย • Header และ body จะคั่นด้วยบรรทัดว่าง( blank line ) P# 14
E-mail message format Form you@Here.buu.ac.th Thu 26 16:00:00 1998 …………………………………… ……………………………………. To: you This is a message The Header Blank Line The Body P# 15
E-mail example P# 16
ข้อกำหนดของ RFC 822 • การส่งอีเมล์ผ่านอินเทอร์เน็ต แต่ละบรรทัดยาวได้ไม่เกิน 1000 ไต์ และขนาดของอีเมล์แต่ละครั้งไม่เกิน 64 KB โดยผู้ใช้ไม่ต้องสนใจว่าอีเมล์จะส่งผ่านไปที่ MTA ใดบ้าง เนื่องจากอีเมล์จะถูกเข้ารหัสและส่งไปยัง user agent ของผู้รับปลายทางและผ่านการถอดรหัสโดยอัตฺโนมัติ P# 17
E-mail headers หัวจดหมายจะมีกี่บรรทัดก็ได้ขึ้นกับ configuration ของระบบที่ตั้งไว้หรือ รูปแบบของโปรแกรม ที่ใช้ส่งจดหมายเป็นตัวกำหนด ซึ่งส่วนใหญ่จะประกอบด้วยส่วนหลักๆ ดังต่อไปนี้ P# 18
E-mail headers • From: จะถูกสร้างขึ้นโดยโปรแกรม /bin/mail • Delivery-Date: แสดงวันที่และเวลาที่แฟ้มจดหมายได้รับ • Return-Path: จะถูกสร้างขึ้นโดยโปรแกรม sendmail มีไว้เพื่อให้สามารถตอบจดหมายกลับ (Reply to sender) P# 19
E-mail headers • Date: จะให้รายละเอียดของวันและเวลาที่จดหมายถูกส่งมา • Form: จะให้รายละเอียดของชื่อเต็ม (Full name) ของผู้ส่ง • Message-Id: คล้ายกับ serial number ซึ่งเกิดจากการแปลง วัน, เวลา ชื่อไฟล์เครื่องที่ใช้ส่ง ให้มาอยู่ในรูปของ string ที่ unique • To: แสดงรายชื่อผู้รับจดหมายซึ่งจดหมายฉบับเดียวกันอาจส่งไปยังผู้รับได้มากกว่าหนึ่งคน P# 20
E-mail headers • Mail software passes unknown headers unchanged • Some software may interpret vendor-specific information P# 21
Email Body ส่วนของตัวจดหมาย คือทุกข้อความที่ถัดจากบรรทัดว่างบรรทัดแรกที่อยู่ต่อจากส่วนหัวจดหมาย ส่วนนี้เป็นส่วนที่ผู้ส่งจดหมายเป็นคนพิมพ์และแก้ไขข้อมูลจดหมายได้ตามต้องการ P# 22
Queue Directory ข้อมูลจดหมาย สามารถเก็บพักไว้ได้ชั่วคราวได้ สำหรับกรณีที่ระบบดาวน์ หรือว่าดิสค์ ที่ใช้เก็บจดหมายมีปัญหา โปรแกรม sendmail จะทำการเก็บข้อมูลจดหมายไว้ใน Queue Directory จนกว่า การส่งจดหมายจะไปถึงผู้รับโดยสมบูรณ์ dfAA07038 dfAA08000 IfAA08000 qfAA07038 qfAA08000 ภาพที่ 1 แสดงตัวอย่างของข้อมูลในคิว P# 23
Queue Directory • เมื่อจดหมายอยู่ในคิวมันจะถูกแยกเป็นสองส่วน แต่ละส่วนแยกบันทึกอยู่คนละแฟ้มข้อมูล • ข้อมูลของส่วนหัวจะถูกบันทึกในแฟ้มข้อมูลที่ชื่อขึ้นต้นด้วย qf • ข้อมูลของตัวจดหมายจะถูกบันทึกไว้ในแฟ้มข้อมูลที่ชื่อขึ้นต้นด้วย df • จากภาพ แสดงในเป็นว่ามีจดหมายสองฉบับอยู่ในคิว ฉบับหนึ่งคือ AA07038 อีกฉบับหนึ่งคือ AA08000 P# 24
Queue Directory • โปรแกรม sendmail จะเป็นตัวจัดคิวและ จะพยายามส่งจดหมายที่ค้างอยู่ในคิว จดหมายที่กำลังจะถูกส่ง จะถูกกันไว้ไม่ให้ดำเนินการใดๆ โดยจดหมายที่ถูกกันในคิวนั้น ชื่อจะขึ้นต้นด้วย If จากรูปข้างต้น จดหมายที่กำลังถูกจัดส่งคือ AA08000 P# 25
Email sending ส่งโดยเรียกใช้โปรแกรม /usr/lib/sendmail โดยทำการพิมพ์จดหมายที่จะส่งบันทึกลงแฟ้มข้อมูล โดยมีรูปแบบการส่งดังนี้ /usr/lib/sendmail Email-address < File_mail Email-address เป็นรหัสและที่อยู่ของผู้ที่ต้องการจะส่งจดหมายไปถึง File_mail คือแฟ้มข้อมูลจดหมายที่ต้องการส่ง P# 26
Email sending เมื่อโปรแกรม sendmail ถูกใช้งาน การทำงานขั้นแรกจะไปอ่าน แฟ้มข้อมูล /etc/sendmail.cfในแฟ้มข้อมูลนี้จะแสดงที่ตั้งของแฟ้มข้อมูลอื่นๆ ที่เกี่ยวข้องที่โปรแกรม sendmail จำเป็นต้องใช้ P# 27
Sendmail ภาพ แสดงแฟ้มข้อมูลที่เกี่ยวข้องกับขบวนการส่งจดหมาย P# 28
Aliases Alias เป็นขบวนการในการแปลงชื่อของชู้ใช้งานในระบบเป็นอีกชื่อหนึ่ง บางทีก็ใช้สำหรับแปลงชื่อทั่วไป (เช่น root) เป็นชื่อจริง หรือ ใช้สำหรับแปลงจากชื่อหนึ่งชื่อเป็นอีกรายการของรายชื่อหลายชื่อ P# 29
Data in e-mail • จดหมายอีเลกทรอนิกส์รุ่นแรกจะเก็บข้อมูลโดยใช้รหัส ASCII ที่เป็น 7 บิต • ไม่สามารถส่งข้อมูลที่เเป็น binary เช่นแฟ้มโปรแกรม • ต่อมามีการใช้เทคนิคสำหรับ encoding ข้อมูลแบบ binary จึงสามารถส่งข้อมูลแบบนี้ได้ • uuencode: 3 8-bit binary values as 4 ASCII characters (6 bits each) • สามารถแนบแฟ้มและมีการป้องกันข้อมูลได้ P# 30
MIME • Multipart Internet Mail Extensions • เป็นเทคนิคการเข้ารหัสและถอดรหัสในการรับส่งอีเมล์ • ทำให้สามารถส่งข้อมูลที่เป็น programs, pictures, audio clips ไปในจดหมายได้ • โปรแกรมที่ทำหน้าที่รับหรือส่งอีเมล์จะทำหน้าทีแปลงและถอดรหัสโดยอัตโนมัติ • เทคนิคของMINE จะแปลงรหัส ASCIIทั่วไปซึ่งมี 8 บิต ให้เป็นค่า 7 บิต(ให้บิตที่ 0 มีค่าเป็น 0เสมอ) P# 31
MIME • ข้อมูลของ MINE ประกอบด้วย 2 ส่วนคือ • ส่วนหัว หรือ Content Transfer Encoding เก็บรายละเอียดของข้อมูลที่เข้ารหัสไว้ • ส่วนของข้อมูลที่เข้ารหัสแล้ว • Header includes: MIME-Version: 1.0 Content-Type: Multipart/Mixed; Boundary = Mime_separator • แต่ละบรรทัดจะให้รายละเอียดการเข้ารหัส เช่น Plain text includes: Content-type: text/plain P# 32
MIME (cont) • MIME is compatible with existing mail systems • Everything encoded as ASCII • Headers and separators ignored by non-MIME mail systems • MIME encapsulates binary data in ASCII mail envelope P# 33
Programs as mail recipients • สามารถจัดการกับ e-mailbox โดยใชโปรแกรมดำเนินการ • จดหมายที่รับเข้ามาจะประมวลผลรโดยอัติโนมัติ • ตัวอย่าง - mailing list subscription administration • เป็นการประมวลผลแบบ client-server • Client ส่งอีเมล์มา • Server ส่งอีเมล์ตอบกลับ P# 34
Mail transfer • การติดต่อสื่อสารผ่าน E-mailประกอบด้วยขบวนการ 2ส่วน : • ผู้ใช้ส่ง mail โดยใช้โดยใช้โปรแกรมที่ทำหน้าที่เป็นส่วนการติดต่อกับผู้ใช้( e-mail interface program ) • โปรแกรมที่ทำหน้าที่ส่ง mail (Mail transfer program) ส่ง mail ไปยังปลายทาง • รออีเมล์เพื่อจัดเก็บลงใน queues เพื่อรอส่งออก • นำจดหมายที่พร้อมส่งทำการตรวจสอบว่าใครเป็นผู้รับ • ทำหน้าที่เป็น client และติดต่อกับ server ของผู้รับจดหมาย • ส่งข่าวสารไปที่ server เพื่อการส่งจดหมาย P# 35
SMTP • Simple Mail Transfer Protocol (SMTP) เป็นโปรโตคอลมาตราฐานสำหรับการรับส่ง mail จากเครื่องต้นทางไปยังปลายทาง • เป็นส่วนที่ทำการส่งเมล์ทีมีความเชื่อถือได้ • ใช้ TCP และทำหน้าที่ส่งข่าวสารระหว่าง clientและserver • หน้าที่อื่น ๆ: • E-mail address lookup • E-mail address verification P# 36
SMTP(cont.) • เมื่อเริ่มการติดต่อ SMTP จะกำหนดให้ user agent ของผู้ส่งส่งคำสั่ง HELLO พร้อรายละเอียดด้านผู้ส่งออกไป จากนั้นจะส่งคำสั่ง MAIL เพื่อแจ้งให้ Server เตรียมรับอีเมล์ • ส่วนของ Server เมื่อพร้อมที่จะรับก็จะตอบกลับด้วยคำสั่ง OK • จากนั้นด้านส่งก็จะส่งโดยใช้คำสั่ง RCTP เพื่อกำหยดอีเมล์แต่ละฉบับที่ส่งไป • การส่งข้อมูลของอีเมล์จะระบุด้วยคำสั่ง DATA P# 37
SMTP(cont.) • การส่งอีเมล์ของ SMTP มีคำสั่งอื่นเพื่ออำนวยความสดวกในการใช้งานเช่น • VRFY ใช้ตรวจสอบความถูกต้องของชื่อและ mailbox • EXPNใช้จัดการและตรวจสอบรายชื่อจากลิตส์ • TURN ใช้สลับให้ client ของผู้ส่งทำหน้าที่รับข้อมูลจาก Server แทน • เมื่อรับคำสั่งแล้ว Server จะทำหน้าที่ตรวจสอบความถูกต้องของคำสั่งและทำงานตามคำสั่งและส่งผลตอบกลับมา P# 38
SMTP(cont.) • ข้อมูลที่ตอบกลับจะอยู่ในรูป Text ที่เป็น ASCII โดยประกอบด้วย • ตัวเลขนำหน้าข้อความ 3 หลัก ทำหน้าที่แสดงสถานะการทำงานของ Server และเปลียนแปลงสถานะการทำงานของ SMTP • คั่นด้วยช่องว่างแล้วตามด้วยข้อความซึ่งปิดท้ายด้วย carriage return และ line feed เช่น • 500 syntax error, command unrecognized • 503 bad sequence of commands P# 39
SMTP protocol exchange 220 coral.bucknell.edu Sendmail 5.65v3.0 (1.1.8.2/29Aug94-0956AM) Sat, 5 Apr 1997 06:47:12 -0500 HELO regulus.eg.bucknell.edu 250 coral.bucknell.edu Hello regulus.eg.bucknell.edu, pleased to meet you MAIL FROM: droms 250 droms... Sender ok RCPT TO: droms 250 droms... Recipient ok DATA 354 Enter mail, end with "." on a line by itself This is a test mail message. . 250 Ok QUIT 221 coral.bucknell.edu closing connection P# 40
Multiple recipients on one computer • สมมุติว่าต้องการส่งข่าวสารถึง seree@bucc4.buu.ac.th, zap@bucc4.buu.ac.th และ pan@bucc4.buu.ac.th • SMTP จะอนุญาตให้ clientส่งจดหมายเพียง 1 ฉบับแต่ส่งไปให้คนทั้งสามได้ • Server จะทำหน้าที่สำเนาจดหมาย 3 ฉบับเพื่อทำการส่ง P# 41
Mailing lists and forwarders • E-mail addresses สามารถที่จะจัดเก็บเป็นกลุ่มบัญชีรายชื่อได้เรียกว่า Mailing list • Mail exploder หรือ mail จะ forward สำเนาของเอกสารไปยัง e-mail addressesที่จัดเก็บใน mailing list • UNIX mail program sendmail provides simple mail aliases • Mailing list processor, e.g., listserv, can also interpret subscription management commands P# 42
Mailing lists P# 43
Mail gateways • Mailing list เป็นขบวนการที่ใช้ทรัพยากรมากในองค์กรขนาดใหญ่ • อาจใช้เครื่องคอมพิวเตอร์แยกต่างหากในการประมวลผล : mail gateway • ทำหน้าที่กำหนดเครื่องปลายทางที่ทำหน้าที่รับไปรษณีย์อีเลกทรอนิกส์ทั้งหมด • เช่น bucc4.buu.ac.th • ใช้ MX records ระบุใน DNS เพื่อส่ง mailทั้งหมดไปยัง gateway P# 44
Mail gateways P# 45
Mail gateways and forwarding • ผู้ใช้ภายในองค์กรอาจต้องการอ่านเมล์จากเครื่องภายในของแผนก • สามารถที่จะทำการ forwarded เมล จาก mail gateway ได้ • Messageจะถูกส่งผ่านเครื่องคอมพิวเตอร์เป็นทอด ๆ • Hops จะถูกบันทึกในระเบียนส่วนหัว(header ) • Forwarded mail อาจเป็น proprietary (non-SMTP)ของระบบการรับส่ง mail นั้นๆก็ได้ P# 46
Mail gateways and e-mail addresses • องค์กรอาจกำหนดรูปแบบเดียวในการกำหนดชื่อสำหรับ external mail • แต่ภายในอาจสามารถรับอีเมล์ได้หลายรูปแบบและหลายชื่อที่แตกต่างกันสำหรับผู้ใช้คนเดียว • Mail gateways จะทำหน้าที่ในการtranslate e-mail addresses Ralph_Droms droms@regulus.eg.bucknell.edu Dan_Little dlittle@mail.bucknell.edu Ruth_Miller miller@charcoal.eg.bucknell.edu P# 47
Mailbox access • Where should mailbox be located? • ผู้ใช้ต้องการ access mail จากเครื่องคอมพิวเตอร์ของผู้ใช้เอง • เราไม่นิยมที่จะใช้ desktop computer ทำเป็น mail server เนื่องจาก • ไม่สามารถที่จะทำงานตลอดเวลา • ต้องมี OS แบบ Multitasking • ต้องใช้หน่วยเก็บความจำปริมาณมาก • ใช้ TELNET จาก remote computer ไปที่ mail server P# 48
Mail access protocols • แทนที่จะใช้ TELNETติดต่อโดยตรงไปยัง mail host เพื่ออ่านอีเมล์จาก remote computer • โปรโตคอล TCP/IP มี Post Office Protocol (POP) สำหรับทำหน้าที่อ่าน remote mailbox • เครื่องคอมพิวเตอร์ที่เก็บ mail boxes วิ่ง POP server • ผู้ใช้ runs POP client ที่เครื่องของตนเอง( local computer) • POP client สามารถเข้าถึงและอ่านอีเมล์จาก mailbox • ต้องกำหนด password • Local computer ใข้ SMTP เป็นตัวส่งอีเมล์ออก(outgoing mail ) P# 49