เมนู

รูปแบบที่อยู่อีเมล และขีดจำกัดความยาวตามมาตรฐาน

รูปแบบที่อยู่อีเมลถูกแบ่งด้วยเครื่องหมายแอดออกเป็นสองส่วน และมาตรฐานสาธารณะกำหนดความยาวสูงสุดของแต่ละส่วนไว้ บทความนี้อธิบายว่าทำไมความถูกต้องตามมาตรฐานจึงไม่เท่ากับการถูกยอมรับ

เผยแพร่เมื่อ

  • รูปแบบอีเมล
  • การตรวจสอบข้อมูล

รูปแบบที่อยู่อีเมลดูเหมือนเรื่องง่ายที่ใครก็เดาได้ แต่เมื่อคุณต้องเขียนตัวตรวจสอบข้อมูลจริง ความง่ายนั้นหายไปทันที เพราะมีช่องว่างกว้างระหว่างสิ่งที่มาตรฐานเปิดไว้กับสิ่งที่ผู้ให้บริการปลายทางยอมรับจริง บทความนี้จะพาคุณดูว่าที่อยู่หนึ่งที่อยู่ประกอบด้วยอะไร มาตรฐานกำหนดความยาวไว้เท่าใด และทำไมการยึดมาตรฐานอย่างเดียวถึงทำให้คุณปฏิเสธที่อยู่ที่ใช้ได้จริงของผู้ใช้

ที่อยู่อีเมลหนึ่งที่อยู่แบ่งออกเป็นกี่ส่วน?

ที่อยู่ทุกที่อยู่ถูกแบ่งด้วยเครื่องหมายแอดออกเป็นสองส่วนเสมอ ส่วนหน้าคือชื่อผู้รับภายในโดเมน ซึ่งโดยทั่วไปเป็นชื่อบุคคลหรือชื่อหน่วยงาน ส่วนหลังคือชื่อโดเมน ซึ่งเป็นสิ่งที่ระบบใช้ค้นหาว่าจะส่งข้อความไปที่ใด

ความสำคัญของการแบ่งนี้อยู่ที่ว่าสองส่วนมีกฎคนละชุดและมีผู้รับผิดชอบคนละฝ่าย ส่วนหน้าเป็นเรื่องของโดเมนปลายทางที่จะกำหนดว่าอะไรถือว่าใช้ได้ ส่วนหลังเป็นเรื่องของทะเบียนโดเมนสาธารณะที่กำหนดว่าชื่อใดถูกจดไว้แล้ว

เครื่องหมายแอดต้องมีเพียงหนึ่งตัวในที่อยู่ปกติ ถ้ามีมากกว่าหนึ่งตัวโดยไม่อยู่ในรูปแบบพิเศษที่มาตรฐานเปิดไว้ ระบบจะไม่รู้ว่าควรตัดตรงไหน และที่อยู่นั้นจะใช้ไม่ได้จริงในทางปฏิบัติ

มาตรฐานกำหนดความยาวของแต่ละส่วนไว้เท่าใด?

มาตรฐานสาธารณะของงานรับส่งอีเมลกำหนดขีดจำกัดไว้สามระดับ คือส่วนหน้ายาวได้ไม่เกินหกสิบสี่ไบต์ ชื่อโดเมนยาวได้ไม่เกินสองร้อยห้าสิบห้าไบต์ และเมื่อนับทั้งที่อยู่รวมกันจะต้องไม่เกินสองร้อยห้าสิบหกไบต์โดยนับรวมวงเล็บแหลมที่ใช้ล้อมที่อยู่ในบางบริบทด้วย

สรุปเป็นตารางได้ดังนี้

ส่วนของที่อยู่ ความยาวสูงสุดตามมาตรฐาน
ส่วนหน้าซึ่งเป็นชื่อผู้รับ 64 ไบต์
ชื่อโดเมน 255 ไบต์
ทั้งที่อยู่รวมวงเล็บแหลมที่ล้อมที่อยู่ 256 ไบต์

ตัวเลขทั้งสามนี้เป็นค่าที่มาตรฐานเขียนไว้ชัดเจน และเป็นค่าที่ทีมพัฒนาควรใช้เป็นเพดานของช่องกรอกในฐานข้อมูล เพราะค่าที่สั้นกว่านี้จะตัดที่อยู่ที่ถูกต้องทิ้งอย่างถาวรโดยไม่มีทางกู้คืน

สิ่งที่ต้องแยกให้ออกคือเพดานตามมาตรฐานกับเพดานที่ผู้ให้บริการใช้จริง งานวิศวกรรมส่วนใหญ่ยอมรับที่อยู่ทั้งที่อยู่ยาวไม่เกินประมาณสองร้อยห้าสิบสี่ตัวอักษร ซึ่งเข้มกว่ามาตรฐานเล็กน้อย เป็นเรื่องของธรรมเนียมปฏิบัติในอุตสาหกรรม ไม่ใช่ค่าที่มาตรฐานกำหนด

รายละเอียดของมาตรฐานฉบับที่เกี่ยวข้องกับงานรับส่งอีเมลเผยแพร่ไว้ที่เอกสารมาตรฐานของไออีทีเอฟ ซึ่งเป็นแหล่งอ้างอิงที่เปิดให้อ่านได้เสมอ

สิ่งที่มาตรฐานอนุญาตแต่ผู้ให้บริการมักไม่รับ

กรณีแรกคือส่วนหน้าที่อยู่ในเครื่องหมายคำพูด ซึ่งมาตรฐานเปิดไว้เพื่อให้ชื่อที่มีช่องว่างหรือเครื่องหมายพิเศษใช้งานได้ ในทางปฏิบัติระบบตรวจสอบฟอร์มจำนวนมากปฏิเสธที่อยู่แบบนี้ทันที

กรณีที่สองคือวงเล็บที่ใช้เขียนคำอธิบายกำกับ ซึ่งมาตรฐานมองว่าเป็นส่วนแสดงความคิดเห็นและไม่นับเป็นส่วนของที่อยู่ แต่ระบบส่วนใหญ่ไม่รู้จักและจะถือว่าที่อยู่ผิดรูปแบบ

กรณีที่สามคือการใช้ที่อยู่ตัวเลขของเครื่องเป็นชื่อโดเมนแทนชื่อโดเมนจริง ซึ่งมาตรฐานเปิดไว้แต่ในทางปฏิบัติแทบไม่มีบริการใดยอมรับ เพราะขัดกับวิธีที่ระบบอีเมลสมัยใหม่ทำงาน

กรณีที่สี่คือส่วนหน้าที่เขียนด้วยอักษรที่ไม่ใช่ละติน ซึ่งมีส่วนขยายมาตรฐานรองรับอยู่ แต่การรองรับในผลิตภัณฑ์จริงยังไม่สม่ำเสมอ และผู้ใช้ที่กรอกที่อยู่แบบนี้มักเจอการปฏิเสธที่ไม่ชัดเจน

ข้อสรุปที่ใช้ได้คือ ความถูกต้องตามมาตรฐานกับการถูกยอมรับในทางปฏิบัติเป็นคนละเรื่อง และตัวตรวจสอบของคุณต้องไม่ตัดสินแทนผู้ให้บริการปลายทาง

ทำไมความยาวที่พอดีจึงไม่พอ?

เพราะความยาวเป็นเพียงเงื่อนไขหนึ่งในหลายเงื่อนไข และไม่ใช่เงื่อนไขที่ทำให้เกิดปัญหามากที่สุด ปัญหาที่ทีมเจอบ่อยกว่าคือการตัดช่องว่าง การปรับตัวพิมพ์ และการแปลงอักษร ซึ่งทั้งหมดเป็นเรื่องของการประมวลผล ไม่ใช่เรื่องของความยาว

อีกเหตุผลหนึ่งคือความยาวที่พอดีกับภาษาหนึ่งอาจไม่พอดีกับอีกภาษา โดเมนของบางประเทศยาวกว่าประเทศอื่นอย่างเห็นได้ชัด และส่วนหน้าที่เขียนด้วยอักษรที่ไม่ใช่ละตินอาจใช้ไบต์มากกว่าจำนวนตัวอักษรที่ผู้ใช้เห็น

เหตุผลที่สามคือเพดานของฐานข้อมูลไม่ใช่เพดานเดียวที่คุณต้องใส่ใจ หากช่องเก็บข้อมูลตั้งไว้พอดีกับเพดาน การเพิ่มขึ้นในอนาคตจะกลายเป็นการอพยพข้อมูลที่เสี่ยงและมีค่าใช้จ่าย การเผื่อไว้บ้างจึงเป็นการลงทุนที่ถูกกว่า

สำหรับนักพัฒนา: ตรวจสอบอย่างไรไม่ให้ปฏิเสธที่อยู่ที่ถูกต้อง

ข้อแรกคืออย่าใช้ตัวตรวจสอบที่เข้มเกินกว่ามาตรฐาน ตัวตรวจสอบที่พยายามยืนยันทุกกฎของมาตรฐานจะปฏิเสธที่อยู่ที่ผู้ใช้จริงใช้อยู่ และการปฏิเสธที่ผิดนั้นสร้างความเสียหายมากกว่าการปล่อยผ่านที่อยู่ผิดรูปแบบ

ข้อที่สองคือตรวจเท่าที่จำเป็นในชั้นแรก แล้วปล่อยให้การยืนยันที่อยู่จริงเป็นตัวตัดสิน การยืนยันที่อยู่จริงคือการส่งข้อความไปแล้วดูว่ามีใครรับหรือไม่ ซึ่งเป็นหลักฐานที่หนักแน่นกว่าการเดาจากรูปแบบเสมอ

ข้อที่สามคือกำหนดความยาวช่องเก็บข้อมูลให้กว้างกว่าที่คิดไว้หนึ่งระดับ โดยยึดเพดานตามมาตรฐานของแต่ละส่วนเป็นขั้นต่ำ และอย่าตัดความยาวแบบเงียบ ๆ ให้รายงานข้อผิดพลาดกลับไปแทนเมื่อข้อมูลเกินเพดาน

ข้อที่สี่คือจัดการเรื่องตัวพิมพ์และช่องว่างอย่างชัดเจน ส่วนหลังของที่อยู่ไม่ควรถือว่าตัวพิมพ์ใหญ่กับตัวพิมพ์เล็กต่างกัน ส่วนหน้าอาจต้องถือว่าต่างกันในบางระบบ จึงควรเลือกนโยบายเดียวและเขียนไว้ให้ชัด อย่าปล่อยให้แต่ละส่วนของระบบตัดสินต่างกัน

ข้อที่ห้าคือตัดช่องว่างหัวท้ายก่อนตรวจ แต่ห้ามตัดช่องว่างที่อยู่ตรงกลาง และต้องบอกผู้ใช้ด้วยว่าคุณแก้ข้อมูลให้ เพราะการแก้เงียบ ๆ ทำให้ผู้ใช้ไม่เข้าใจว่าทำไมที่อยู่ที่เคยใช้ได้จึงใช้ไม่ได้อีก

ก่อนตัดสินใจ ควรตรวจกับของจริง

ก่อนจะตั้งกฎของตัวเอง ลองส่งข้อความจริงไปยังที่อยู่รูปแบบแปลก ๆ สองสามแบบที่คุณสงสัย แล้วดูว่าปลายทางตอบกลับอย่างไร วิธีนี้ให้คำตอบที่ชัดกว่าการอ่านเอกสาร และใช้เวลาไม่นาน

จากนั้นให้ตรวจว่ากรณีทดสอบของคุณมีที่อยู่ความยาวสูงสุด ที่อยู่ที่มีเครื่องหมายพิเศษ และที่อยู่ที่เขียนด้วยอักษรอื่นอยู่ด้วย เพราะสามกรณีนี้คือสาเหตุของข้อบกพร่องที่พบได้บ่อยที่สุด หากคุณกำลังเตรียมรายการตรวจสอบก่อนเปิดใช้งาน แนวทางในเช็กลิสต์อีเมลธุรกรรมมีหัวข้อที่ใช้ต่อได้ทันที

คุณสามารถสร้างที่อยู่สำหรับรับข้อความทดสอบได้ทันทีที่เครื่องมืออีเมลชั่วคราวของเว็บไซต์นี้ และถ้าคุณสนใจว่าการตรวจสอบกับการปรับรูปแบบข้อมูลต่างกันอย่างไร ลองอ่านการตรวจสอบเทียบกับการปรับรูปแบบที่อยู่ หรือดูตัวอย่างประเทศที่ใช้ส่วนหน้าของที่อยู่ยาวผิดปกติได้ที่หน้าประเทศจีน

ที่อยู่และตัวอย่างทั้งหมดในบทความนี้ใช้เพื่ออธิบายรูปแบบและการทดสอบเท่านั้น ไม่ใช่ที่อยู่ของบุคคลหรือหน่วยงานจริง และไม่ควรใช้เป็นข้อมูลติดต่อจริงของใคร

อ่านต่อ

บทความเกี่ยวกับ อีเมลชั่วคราว (ใช้ครั้งเดียว / 10 นาที)

บทความเกี่ยวกับ อีเมลชั่วคราว (ใช้ครั้งเดียว / 10 นาที)

รายการนี้แสดงเฉพาะบทความในหัวข้อของหน้านี้