เอสเอ็มทีพี
ชุดโพรโทคอลอินเทอร์เน็ต |
---|
ชั้นโปรแกรมประยุกต์ |
Transport layer |
Internet layer |
Link layer |
เกณฑ์วิธีถ่ายโอนไปรษณีย์อย่างง่าย หรือ เอสเอ็มทีพี (อังกฤษ: Simple Mail Transfer Protocol; SMTP) เป็นโพรโทคอลการสื่อสารสำหรับการส่งจดหมายอิเล็กทรอนิกส์ ตามมาตรฐานอินเทอร์เน็ต เอสเอ็มทีพีถูกกำหนดครั้งแรกในปี พ.ศ. 2525 โดยเอกสารคำร้องขอความคิดเห็น RFC 821 และได้รับการปรับปรุงขยายเป็น Extended SMTP โดย RFC 5321 ในปี พ.ศ. 2551 ซึ่งเป็นโพรโตคอลที่มีการใช้งานหลากหลายในปัจจุบัน เซิร์ฟเวอร์เมลและตัวกระทำการถ่ายโอนข้อความอื่น ๆ ใช้เอสเอ็มทีพีเพื่อส่งและรับข้อความเมล โดยเซิร์ฟเวอร์เอสเอ็มทีพีมักใช้เกณฑ์วิธีควบคุมการขนส่งข้อมูล (Transmission Control Protocol) บนพอร์ตหมายเลข 25
โปรแกรมไคลเอนต์อีเมลระดับผู้ใช้ โดยทั่วไปจะใช้เอสเอ็มทีพี สำหรับการส่งข้อความไปยังเซิร์ฟเวอร์อีเมลเพื่อสำหรับการส่งต่อเท่านั้น และโดยทั่วไปจะส่งอีเมลขาออกไปยังเซิร์ฟเวอร์อีเมลที่พอร์ต 587 หรือ 465 ตามระบุในเอกสารคำร้องขอความคิดเห็น RFC 8314 สำหรับการดึงข้อความนั้นใช้โพรโทคอล IMAP และ POP3 เป็นมาตรฐาน แต่สำหรับเซิร์ฟเวอร์ที่เป็นซอฟต์แวร์ลิขสิทธิ์มักใช้โพรโตคอลที่มีลิขสิทธิ์เช่น Exchange ActiveSync
ประวัติ
[แก้]รูปแบบต่าง ๆ ของการส่งข้อความอิเล็กทรอนิกส์แบบ หนึ่งต่อหนึ่ง ถูกนำมาใช้ในคริสต์ทศวรรษ 1960 ผู้ใช้ทำการสื่อสารโดยใช้ระบบที่พัฒนาขึ้นสำหรับคอมพิวเตอร์เมนเฟรมโดยเฉพาะ เนื่องจากคอมพิวเตอร์มีการเชื่อมต่อถึงกันมากขึ้นโดยเฉพาะอย่างยิ่งใน ARPANET ของรัฐบาลสหรัฐ จึงมีการพัฒนามาตรฐานเพื่ออนุญาตให้มีการแลกเปลี่ยนข้อความระหว่างระบบปฏิบัติการ เอสเอ็มทีพีเติบโตขึ้นจากมาตรฐานเหล่านี้ที่พัฒนาขึ้นในช่วงทศวรรษ 1970
เอสเอ็มทีพี มีรากฐานมาจากการแผนดำเนินงานสองอย่างที่อธิบายไว้ในปี พ.ศ. 2514: Mail Box Protocol ซึ่งการนำมาใช้งานถูกโต้แย้ง[1] แต่มีการพูดถึงในเอกสารคำร้องขอความคิดเห็น RFC 196 และ RFC อื่น ๆ และโปรแกรม SNDMSG ซึ่งอ้างอิงจากเอกสารคำร้องขอความคิดเห็น RFC 2235 เรย์ ทอมลินสัน (Ray Tomlinson) จากบริษัท BBN คิดค้นคอมพิวเตอร์ TENEX สำหรับใช้ในการส่งข้อความเมลผ่าน ARPANET[2][3][4] ขณะนั้นมีเครื่องแม่ข่ายน้อยกว่า 50 โฮสต์ที่เชื่อมต่ออยู่กับ ARPANET[5]
การใช้งานเพิ่มเติม ได้แก่ FTP Mail[6] และ Mail Protocol ทั้งคู่เริ่มต้นในปี พ.ศ. 2516[7] การพัฒนายังคงดำเนินต่อไปตลอดช่วงคริสต์ทศวรรษ 1970 จนกระทั่ง ARPANET เปลี่ยนเข้าสู่อินเทอร์เน็ตสมัยใหม่ในราวปี พ.ศ. 2523 จากนั้น จอน พอสเตล (Jon Postel) ได้เสนอเกณฑ์วิธี Mail Transfer Protocol ในปี พ.ศ. 2523 ซึ่งการพึ่งพาการส่งจดหมายผ่านโพรโตคอล FTP เริ่มถูกนำออกไป[8] เอสเอ็มทีพีได้รับการเผยแพร่ในชื่อ RFC 788 ในเดือนพฤศจิกายน พ.ศ. 2524 โดย พอสเตล
มาตรฐาน SMTP ได้รับการพัฒนาในช่วงเวลาเดียวกันกับ Usenet ซึ่งเป็นเครือข่ายการสื่อสารแบบหนึ่งต่อหลายเครือข่ายที่มีความคล้ายคลึงกัน
เอสเอ็มทีพีเริ่มใช้กันอย่างแพร่หลายในช่วงต้นคริสต์ทศวรรษ 1980 ในขณะนั้นมันเป็นส่วนเสริมของเมล Unix to Unix Copy Program (UUCP) ซึ่งเหมาะกว่าสำหรับการจัดการการโอนอีเมลระหว่างเครื่องที่เชื่อมต่อเป็นระยะ ๆ ในทางกลับกัน SMTP จะทำงานได้ดีที่สุดเมื่อทั้งเครื่องส่งและรับเชื่อมต่อกับเครือข่ายตลอดเวลา ทั้งสองใช้กลไกการจัดเก็บและส่งต่อ (store and forward) และเป็นตัวอย่างของเทคโนโลยีแบบพุช แม้ว่ากลุ่มข่าวของ Usenet จะยังคงถ่ายทอดด้วยโพรโตคอล UUCP ระหว่างเซิร์ฟเวอร์[9] แต่การใข้ UUCP สำหรับการส่งผ่านเมลได้หายไปเกือบหมด[10] พร้อม ๆ กันกับการกำหนด "bang paths" ที่ใช้เป็นส่วนหัวของการกำหนดเส้นทางของข้อความ[11]
โปรแกรมตัวกระทำการส่งผ่านเมล Sendmail ซึ่งเผยแพร่ในชุดกระจายซอฟต์แวร์เบิร์กลีย์ซอฟต์แวร์ดิสทริบิวชัน 4.1cBSD ในปี พ.ศ. 2525 ไม่นานหลังจากคำร้องขอความคิดเห็น RFC 788 เผยแพร่ในเดือนพฤศจิกายน พ.ศ. 2524 เป็นหนึ่งในโปรแกรมตัวกระทำการถ่ายโอนอีเมลรายแรกที่ใช้เกณฑ์วิธี SMTP[12] เมื่อเวลาผ่านไป BSD Unix กลายเป็นระบบปฏิบัติการที่ได้รับความนิยมมากที่สุดบนอินเทอร์เน็ต Sendmail จึงกลายเป็น MTA (ตัวกระทำการรับส่งอีเมล) ที่พบบ่อยที่สุด[13] โปรแกรมเซิร์ฟเวอร์ ที่ใช้เอสเอ็มทีพี ที่ได้รับความนิยมอื่น ๆ ได้แก่ Postfix, qmail, Novell GroupWise, Exim, Novell NetMail, Microsoft Exchange Server และ Oracle Communications Messaging Server
การส่งข้อความ (RFC 2476) และ SMTP-AUTH (RFC 2554) ได้รับการแนะนำในปี พ.ศ. 2541 และ 2542 ทั้งสองอย่างนี้อธิบายถึงแนวโน้มใหม่ในการส่งอีเมล จากเดิมเซิร์ฟเวอร์เอสเอ็มทีพีมักจะอยู่ภายในองค์กร ทำหน้าที่รับอีเมลจากภายนอกองค์กร และส่งต่อข้อความจากในองค์กรไปยังภายนอก แต่เมื่อเวลาผ่านไปในทางปฏิบัติเซิร์ฟเวอร์เอสเอ็มทีพี (ตัวกระทำการถ่ายโอนอีเมล) ได้ขยายบทบาทเป็นตัวกระทำการรับส่งข้อความสำหรับโปรแกรมตัวกระทำการรับส่งอีเมลของผู้ใช้ ซึ่งบางส่วนทำการส่งต่อจดหมายจากภายนอกองค์กร (เช่นผู้บริหารของ บริษัท ต้องการส่งอีเมลขณะเดินทางโดยใช้เซิร์ฟเวอร์ SMTP ขององค์กร) ปัญหานี้อันเป็นผลมาจากการขยายตัวและความนิยมอย่างรวดเร็วของเวิลด์ไวด์เว็บหมายความว่า เอสเอ็มทีพีต้องรวมกฎและวิธีการเฉพาะสำหรับการส่งต่ออีเมล และรับรองความถูกต้องของผู้ใช้เพื่อป้องกันการละเมิด เช่นการส่งต่ออีเมลที่ไม่พึงประสงค์ (สแปม) ความพยายามตามคำร้องขอความคิดเห็น RFC 2476 ในการส่งข้อความได้ริเริ่มขึ้นเนื่องจากเซิร์ฟเวอร์อีเมลยอดนิยมมักจะเขียนจดหมายซ้ำ เพื่อพยายามแก้ไขปัญหาในอีเมลนั้น ตัวอย่างเช่น การเพิ่มชื่อโดเมนไปยังที่อยู่ที่ไม่เหมาะสม ลักษณะการทำงานนี้มีประโยชน์เมื่อข้อความที่ได้รับการแก้ไขเป็นการส่งครั้งแรก แต่เป็นอันตรายเมื่อข้อความนั้นมาจากที่อื่นและกำลังถูกส่งต่อ การแยกเมลทั้งหมดออกเป็นการส่งและการส่งต่อ ได้รับการพิจารณาว่าเป็นวิธีการอนุญาตและสนับสนุนให้มีการเขียนในการส่งซ้ำ ในขณะที่ห้ามไม่ให้เขียนในการส่งต่อซ้ำ เนื่องจากสแปมแพร่หลายมากขึ้นจึงถูกมองว่าเป็นวิธีการให้สิทธิ์สำหรับอีเมลที่ส่งออกจากองค์กร ตลอดจนการตรวจสอบย้อนกลับ การแยกการส่งต่อและการส่งนี้ กลายเป็นรากฐานสำหรับแนวทางปฏิบัติด้านความปลอดภัยอีเมลสมัยใหม่อย่างรวดเร็ว
เนื่องจากโพรโตคอลนี้เริ่มต้นจากการใช้ข้อความแบบ ASCII เท่านั้นจึงไม่สามารถจัดการกับไฟล์ไบนารี หรืออักขระในภาษาที่ไม่ใช่ภาษาอังกฤษจำนวนมากได้ มาตรฐานเช่น Multipurpose Internet Mail Extensions (MIME) ได้รับการพัฒนาเพื่อเข้ารหัสไฟล์ไบนารี สำหรับการถ่ายโอนผ่าน SMTP Mail Transfer Agent (MTA) ที่พัฒนาขึ้นหลังจากโปรแกรมตัวกระทำการส่งผ่านเมล Sendmail มีแนวโน้มที่จะใช้งานแบบ 8-bit-clean เพื่อให้สามารถใช้กลยุทธ์ "just send eight" เป็นทางเลือกในการส่งข้อมูลข้อความตามต้องการ (ในการเข้ารหัสอักขระแบบ 8 บิตแบบ ASCII) ผ่านเอสเอ็มทีพี ยังคงมีปัญหาอาการภาษาต่างดาว (Mojibake) เนื่องจากการแมปชุดอักขระที่แตกต่างกันระหว่างผู้ผลิตซอฟต์แวร์ แม้ว่าที่อยู่อีเมลจะยังคงอนุญาตเฉพาะ ASCII โปรแกรมตัวกระทำการส่งผ่านเมล MTA แบบ 8 บิตในปัจจุบันมีแนวโน้มที่จะรองรับส่วนขยาย 8BITMIME ซึ่งอนุญาตให้ส่งไฟล์ไบนารีได้โดยง่ายเกือบจะเหมือนการส่งข้อความธรรมดา เมื่อเร็ว ๆ นี้ส่วนขยาย SMTPUTF8 ถูกสร้างขึ้นเพื่อรองรับข้อความ UTF-8 ซึ่งอนุญาตให้มีเนื้อหาและที่อยู่ระหว่างประเทศในสคริปต์ที่ไม่ใช่อักษรละติน เช่น อักษรซิริลลิก หรืออักษรจีน
นักวิทยาการคอมพิวเตอร์หลายคนได้มีส่วนร่วมในการสร้างข้อกำหนดหลักของเอสเอ็มทีพี ได้แก่ Jon Postel, Eric Allman, Dave Crocker, Ned Freed, Randall Gellens, John Klensin และ Keith Moore
อ้างอิง
[แก้]เชิงอรรถ
[แก้]- ↑ The History of Electronic Mail, Tom Van Vleck: "It is not clear this protocol was ever implemented"
- ↑ The First Network Email, Ray Tomlinson, BBN
- ↑ Picture of "The First Email Computer" by Dan Murphy, a PDP-10
- ↑ Dan Murphy's TENEX and TOPS-20 Papers เก็บถาวร พฤศจิกายน 18, 2007 ที่ เวย์แบ็กแมชชีน
- ↑ RFC 2235
- ↑ RFC 469 – Network Mail Meeting Summary
- ↑ RFC 524 – A Proposed Mail Protocol
- ↑ RFC 772 – Mail Transfer Protocol
- ↑ Tldp.org
- ↑ draft-barber-uucp-project-conclusion-05 – The Conclusion of the UUCP Mapping Project
- ↑ The article about sender rewriting contains technical background info about the early SMTP history and source routing before RFC 1123.
- ↑ Eric Allman (1983), Sendmail – An Internetwork Mail Router (PDF), BSD UNIX documentation set, Berkeley: University of California, สืบค้นเมื่อ June 29, 2012
- ↑ Craig Partridge (2008), The Technical Development of Internet Email (PDF), IEEE Annals of the History of Computing, vol. 30, IEEE Computer Society, pp. 3–29, doi:10.1109/MAHC.2008.32, คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ พฤษภาคม 12, 2011
บรรณานุกรม
[แก้]- Hughes, L (1998). Internet E-mail: Protocols, Standards and Implementation. Artech House Publishers. ISBN 978-0-89006-939-4.
- Hunt, C (2003). sendmail Cookbook. O'Reilly Media. ISBN 978-0-596-00471-2.
- Johnson, K (2000). Internet Email Protocols: A Developer's Guide. Addison-Wesley Professional. ISBN 978-0-201-43288-6.
- Loshin, P (1999). Essential Email Standards: RFCs and Protocols Made Practical. John Wiley & Sons. ISBN 978-0-471-34597-8.
- Rhoton, J (1999). Programmer's Guide to Internet Mail: SMTP, POP, IMAP, and LDAP. Elsevier. ISBN 978-1-55558-212-8.
- Wood, D (1999). Programming Internet Mail. O'Reilly. ISBN 978-1-56592-479-6.