ID อีเมลพร้อมเส้นประที่ส่วนท้ายของส่วนท้องที่


19

มันเป็นอีเมลที่ถูกต้องหรือไม่หากอีเมลมีเส้นประ (-) ที่ส่วนท้ายของอีเมลท้องถิ่น ตัวอย่างเช่น,

an.unusual.email-@mydomain.com

หรือเพื่อพูดคุยทั่วไปอักขระใด ๆ เหล่านี้ ( Characters !#$%&'*+-/=?^_``{|}~ (ASCII: 33, 35-39, 42, 43, 45, 47, 61, 63, 94-96, 123-126)) ซึ่งใช้ได้ในส่วนของอีเมลที่จุดเริ่มต้นและ / หรือจุดสิ้นสุดของรหัสอีเมลหรือไม่

Google บอกว่ามันไม่ถูกต้องดังนั้นในขณะที่ฉันถือว่ามันไม่ถูกต้องเช่นกันแม้ว่า RFC จะยกเว้นอักขระ [จุด] เพียงอย่างเดียวจากการเริ่มต้นด้วยและ / หรือสิ้นสุดส่วนท้องถิ่น

ข้อผิดพลาด GMail สำหรับกรณีข้างต้น

หมายเหตุ: ฉันไม่ได้กังวลเกี่ยวกับส่วนของโดเมนเพราะมันมีส่วนเกี่ยวข้องมากขึ้นเนื่องจากวิธี DNS ซึ่งทำให้คำถามและคำตอบมีความซับซ้อน

https://social.technet.microsoft.com/Forums/ie/en-US/69f393aa-d555-4f8f-bb16-c636a129fc25/what-are-valid-and-invalid-email-address-characters


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

ลิงก์อ้างอิงที่ดีดูเหมือนว่า Google ถือว่าอีเมลนั้นไม่ถูกต้องในขณะที่ Microsoft ไม่มีปัญหาใด ๆ
Jimson Kannanthara James

1
การแชร์สิ่งนี้นับตั้งแต่ที่คุณนำขึ้น Google: Gmail จะละเว้นช่วงเวลาใด ๆ ในที่อยู่อีเมลดังนั้นหากอีเมลของคุณคือ "anunusualemail@gmail.com" คุณจะได้รับจดหมายที่ส่งถึง "an.unusual.email@gmail.com" นอกจากนี้ยังละเว้น pluses ท้ายอีเมล: "anunusualemail+something@gmail.com"
mowwwalker

1
ในบริการอีเมลของฉันเองฉันสามารถแบนตัวอักษร "u" จากชื่อผู้ใช้ เพียงเพราะว่า.
Agent_L

คำตอบ:


60

มันเป็นอีเมลที่ถูกต้องหรือไม่หากอีเมลมีเส้นประ (-) ที่ส่วนท้ายของอีเมลท้องถิ่น [... ] Google บอกว่ามันไม่ถูกต้องดังนั้นในขณะนี้ฉันถือว่ามันไม่ถูกต้องเช่นกันแม้ว่า RFC จะยกเว้นอักขระ [dot] เพียงตัวเดียวจากการเริ่มต้นด้วยและ / หรือสิ้นสุดส่วนท้องถิ่น

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


Google หรือบุคคลอื่น ๆ จะต้องยอมรับที่อยู่อีเมลที่ถูกต้องทั้งหมดหากแบบฟอร์มขอที่อยู่อีเมลที่ถูกต้องและมีอยู่จริง (อาจมาจากผู้ให้บริการ) ตัวอย่างเช่นจะเป็นข้อผิดพลาดหากช่องถึง: / Cc:ของ Gmail ปฏิเสธที่อยู่ที่ถูกต้อง

แต่ฟิลด์ที่คุณไฮไลต์ไม่ได้ขอให้คุณใช้ที่อยู่อีเมลที่มีอยู่ มันขอชื่อบัญชีในระบบ Googleซึ่งจะเป็นพื้นฐานสำหรับที่อยู่อีเมลเมื่อสร้างบัญชีแล้วเท่านั้น ไม่มีอะไรที่จะห้ามของ Google หรือคนอื่นจากการ จำกัด การตั้งค่าของชื่อที่ถูกต้องบัญชี (หรือจริงๆแม้แต่ชื่อกล่องจดหมาย) คือในระบบของตัวเอง

หรือกล่าวอีกนัยหนึ่งคือการกำหนดอักขระที่อนุญาตสำหรับ 'local-part' เท่านั้นหมายความว่าเซิร์ฟเวอร์แอปพลิเคชันเมล SMTP ต้องยอมรับที่อยู่ดังกล่าวในส่วนหัว RFC 822 และคำสั่ง SMTP - แต่มันไม่ได้พูดอะไรเกี่ยวกับความสามารถในการสร้างกล่องจดหมาย (แท้จริงแล้วย้อนกลับไปเมื่อมีการเขียน RFC อีเมลก่อนหน้านี้และกล่องจดหมายส่วนใหญ่ยังคงเชื่อมโยงกับบัญชีระดับระบบปฏิบัติการชื่อของพวกเขามีข้อ จำกัด ที่คล้ายคลึงกันหรือเข้มงวดยิ่งขึ้น)

ตัวอย่างเช่นส่วนนี้ของ RFC 5321 (ส่วน 4.1.2 ด้านล่าง ABNFs) กล่าวอย่างชัดเจนว่าโฮสต์ที่รับได้รับอนุญาตและแน่นอนควรมีข้อ จำกัด ที่เข้มงวดมากในการตั้งชื่อกล่องจดหมายของตัวเอง:

ในขณะที่คำจำกัดความข้างต้นสำหรับ Local-part ค่อนข้างอนุญาตสำหรับการทำงานร่วมกันสูงสุดโฮสต์ที่คาดว่าจะได้รับจดหมาย SHOULD หลีกเลี่ยงการกำหนดกล่องจดหมายที่ Local-part ต้องการ (หรือใช้) ฟอร์ม Quoted-string หรือที่ Local-part เป็นตัวพิมพ์ใหญ่ -sensitive

ดังนั้นแม้ว่าanunusualemail-@gmail.com จะถูกต้องตามหลักไวยากรณ์ แต่เพียงอย่างเดียวไม่ได้หมายความว่า Google จะต้องอนุญาตให้คุณสร้าง


6
ในฐานะที่เป็นบันทึกย่อด้านที่น่าสนใจ google จะละเว้นเครื่องหมายจุดในที่อยู่อีเมล ( gmail.googleblog.com/2008/03/… ) ซึ่งไม่ได้ระบุไว้ใน RFC ดังนั้น myname@gmail.com จึงไปที่เดียวกันกับ my.name@gmail.com หรือ myname@gmail.com
childofsoong

4
@JimsonKannantharaJames โดยทั่วไปหากคุณต้องการตรวจสอบว่าอีเมลถูกต้องหรือไม่คุณควรส่งอีเมลไปยังที่อยู่นั้นจริง ๆ แล้วบังคับให้ผู้ใช้ดำเนินการ การตรวจสอบใด ๆ ที่อิงตามไวยากรณ์ของที่อยู่ควรเป็นเพียงการจับผู้ใช้ที่พิมพ์ผิด
Michael Mior

1
@grawity โอ้ฉันรู้ว่า - ฉันกำลังแสดงความคิดเห็นเพื่อให้ตัวอย่างของสิ่งอื่นที่ไม่ได้ระบุไว้ใน RFC แต่ได้รับอนุญาต
childofsoong

1
@ user71659 หากคุณหลีกเลี่ยงอักขระควบคุมไม่ถูกต้องในกรณีที่จำเป็นคุณมีปัญหาที่ใหญ่กว่า ในที่สุดอีเมลที่ถูกป้อนโดยผู้ใช้และการป้อนข้อมูลของผู้ใช้ควรถือว่าเป็นอันตรายเสมอ การสมมติว่าฟิลด์ในฐานข้อมูลของคุณปลอดภัยเนื่องจากกฎการตรวจสอบบางอย่างอาจเป็นอันตรายได้ จะเกิดอะไรขึ้นเมื่อสองสามเดือนต่อมามีคนอื่นเติมข้อมูลในฟิลด์นั้นจากฟอร์มอื่นซึ่งไม่มีการตรวจสอบเดียวกัน
ไมเคิล Mior

2
@ user71659 คุณกำลังพูดถึงปัญหาที่แตกต่างกันสองรายการและทำการโต้แย้ง MichaelMior ถูกต้องอย่างสมบูรณ์แบบให้กับรัฐที่จะตรวจสอบว่าที่อยู่อีเมลที่มีอยู่คุณจะต้องส่งอีเมลไปยังที่อยู่ที่ต้องกระทำของผู้ใช้
kumarharsh

7

G Suite (Google Apps อย่างเป็นทางการสำหรับโดเมนของคุณ) อนุญาตให้ใช้เครื่องหมายขีดคั่น (ขีดกลาง) ในที่อยู่อีเมลแม้จะเป็นอักขระตัวสุดท้าย

ชื่อผู้ใช้สามารถประกอบด้วยตัวอักษร (az), ตัวเลข (0-9), ขีดกลาง (-), ขีดล่าง (_), เครื่องหมายอัญประกาศเดี่ยว ('), และจุด (.)

ที่มา: แนวทางชื่อและรหัสผ่าน

ตามที่คุณระบุไว้ Gmail ไม่อนุญาตให้ใช้เครื่องหมายขีดกลางในที่อยู่อีเมล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.