เอสเอ็มทีพี

(เปลี่ยนทางจาก SMTP)

เกณฑ์วิธีถ่ายโอนไปรษณีย์อย่างง่าย หรือ เอสเอ็มทีพี (อังกฤษ: 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 ในการส่งข้อความได้ริเริ่มขึ้นเนื่องจากเซิร์ฟเวอร์อีเมลยอดนิยมมักจะเขียนจดหมายซ้ำ เพื่อพยายามแก้ไขปัญหาในอีเมลนั้น ตัวอย่างเช่น การเพิ่มชื่อโดเมนไปยังที่อยู่ที่ไม่เหมาะสม ลักษณะการทำงานนี้มีประโยชน์เมื่อข้อความที่ได้รับการแก้ไขเป็นการส่งครั้งแรก แต่เป็นอันตรายเมื่อข้อความนั้นมาจากที่อื่นและกำลังถูกส่งต่อ การแยกเมลทั้งหมดออกเป็นการส่งและการส่งต่อ ได้รับการพิจารณาว่าเป็นวิธีการอนุญาตและสนับสนุนให้มีการเขียนในการส่งซ้ำ ในขณะที่ห้ามไม่ให้เขียนในการส่งต่อซ้ำ เนื่องจากสแปมแพร่หลายมากขึ้นจึงถูกมองว่าเป็นวิธีการให้สิทธิ์สำหรับอีเมลที่ส่งออกจากองค์กร ตลอดจนการตรวจสอบย้อนกลับ การแยกการส่งต่อและการส่งนี้ กลายเป็นรากฐานสำหรับแนวทางปฏิบัติด้านความปลอดภัยอีเมลสมัยใหม่อย่างรวดเร็ว

 
ลูกศรสีน้ำเงินแสดงถึงรูปแบบการนำโพรโตคอล SMTP ไปใช้

เนื่องจากโพรโตคอลนี้เริ่มต้นจากการใช้ข้อความแบบ 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

อ้างอิง

แก้

เชิงอรรถ

แก้
  1. The History of Electronic Mail, Tom Van Vleck: "It is not clear this protocol was ever implemented"
  2. The First Network Email, Ray Tomlinson, BBN
  3. Picture of "The First Email Computer" by Dan Murphy, a PDP-10
  4. Dan Murphy's TENEX and TOPS-20 Papers เก็บถาวร พฤศจิกายน 18, 2007 ที่ เวย์แบ็กแมชชีน
  5. RFC 2235
  6. RFC 469 – Network Mail Meeting Summary
  7. RFC 524 – A Proposed Mail Protocol
  8. RFC 772 – Mail Transfer Protocol
  9. Tldp.org
  10. draft-barber-uucp-project-conclusion-05 – The Conclusion of the UUCP Mapping Project
  11. The article about sender rewriting contains technical background info about the early SMTP history and source routing before RFC 1123.
  12. Eric Allman (1983), Sendmail – An Internetwork Mail Router (PDF), BSD UNIX documentation set, Berkeley: University of California, สืบค้นเมื่อ June 29, 2012
  13. 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

บรรณานุกรม

แก้