דואר בינלאומי: IDN, EAI ו־SMTPUTF8
כתובת עברית נראית פשוטה, אבל כמה תקנים שונים עובדים יחד כדי להעביר אותה ברשת. הנה המפה המלאה — בלי לערבב בין התפקידים שלהם.
איך הודעה בכלל מגיעה ליעד?
לפני שנצלול למונחים, כדאי להבין מה קורה מאחורי הקלעים כששולחים הודעה. נניח שמישהו כותב אל דניאל-לוי@מייל.קום. הכתובת מורכבת משני חלקים: מה שאחרי ה־@ (הדומיין, ״מייל.קום״) מזהה את הארגון שמנהל את הדואר, ומה שלפניו (החלק המקומי, ״דניאל-לוי״) מזהה את התיבה בתוך אותו ארגון. שרת הדואר קורא אותם בסדר הזה — קודם לאן, ואז למי.
- מוצאים את השרת האחראי. שרת הדואר של השולח לוקח את הדומיין ופונה ל־DNS בשאלה: מי מקבל דואר עבור ״מייל.קום״? זו שאילתת
MX(Mail Exchange), ו־DNS מחזיר את שם השרת שאחראי לקבל את הדואר של הדומיין. - מתחברים ומוסרים. השולח פותח בחיבור
SMTPאל אותו שרת, אומר לו מיהו השולח ומיהו הנמען, ומעביר את גוף ההודעה. זהו פרוטוקול המסירה של הדואר ברשת. - מפרשים את החלק המקומי. השרת המקבל מסתכל על ״דניאל-לוי״ ומחליט מה לעשות: להעביר את ההודעה לתיבה אמיתית של המשתמש, לאחסן אותה בתיבה מקומית, או לדחות אם הנמען לא קיים. אצלנו זה בדיוק הרגע שבו מאתרים את כתובת ההעברה של המשתמש ומעבירים את ההודעה לשם.
שני החלקים האלה עוברים בעולם בינלאומי בדרכים שונות: זיהוי הדומיין ב־DNS נשען על IDN ו־Punycode, ואילו העברת חלק מקומי בעברית לאורך מסלול המסירה נשענת על EAI ו־SMTPUTF8. שאר המדריך מפרק כל אחד מהם.
אותה כתובת, שתי בעיות שונות
ראינו ששרת הדואר קורא את שני חלקי הכתובת בנפרד. אותו פיצול חוזר גם בעולם הבינלאומי: לכל חלק מנגנון בינאום משלו, ואסור לערבב ביניהם.
- אחרי ה־@
IDNו־Punycodeמייצגים את שם הדומיין במערכת ה־DNS.- לפני ה־@
EAIו־SMTPUTF8מאפשרים תווים כמו עברית בפרוטוקול הדואר.
ההבחנה חשובה: Punycode מטפל בדומיין בלבד. הוא אינו דרך להמיר את החלק המקומי, ולכן כתובת עברית מלאה אינה הופכת לכתובת ASCII רגילה באמצעות Punycode.
IDN ו־Punycode: הדומיין
IDN הוא שם דומיין בינלאומי שנכתב ב־Unicode. כדי שמערכות DNS ותיקות יוכלו לטפל בו, כל תווית שאינה ASCII מקודדת לצורה תואמת ASCII שמתחילה ב־xn--. הקידוד הזה נקרא Punycode, והוא חלק מכללי IDNA.
שתי הצורות מתארות אותו דומיין
בדרך כלל האפליקציה מציגה את הצורה הקריאה ומבצעת את ההמרה בעצמה. הצורה המקודדת עשויה להופיע בהגדרות DNS, ביומני שרת, בקישורים או באפליקציה שאינה מציגה IDN.
EAI ו־SMTPUTF8: הכתובת וההעברה
EAI — קיצור של Email Address Internationalization — הוא שם כולל להרחבות שמאפשרות כתובות וכותרות דואר ב־Unicode. הרחבת SMTPUTF8 היא החלק בפרוטוקול SMTP שמאפשר להעביר מעטפה וכותרות הכוללות UTF-8.
- השרת המקבל מפרסם את היכולת
SMTPUTF8בתשובתEHLO. - אם ההודעה זקוקה לה, השרת השולח מציין
SMTPUTF8בפקודתMAIL FROM. - שרת שלא מפרסם את היכולת אינו מבטיח שיוכל לקבל כתובת עם תווים שאינם ASCII.
לכן די בכך שהדומיין יהיה בינלאומי כדי להשתמש ב־IDN, אבל כתובת שהחלק המקומי שלה בעברית זקוקה לתמיכת EAI/SMTPUTF8 לאורך מסלול המסירה הרלוונטי.
איפה MIME נכנס לתמונה?
MIME מתאר את תוכן ההודעה: סוגי גוף וקבצים מצורפים, קידודי העברה וייצוג של טקסט בכותרות מסוימות. הוא מאפשר, למשל, נושא ושם תצוגה בעברית גם בעולם הדואר הוותיק.
אבל MIME אינו הופך כתובת מקומית עברית לכתובת ASCII ואינו מחליף SMTPUTF8. אפשר לשלוח הודעה עם נושא עברי לכתובת ASCII בלי EAI; כתובת כמו דניאל-לוי@מייל.קום עדיין זקוקה לתמיכה המתאימה עבור ״דניאל-לוי״.
תאימות בעולם האמיתי
- דפדפנים, DNS ורוב האפליקציות המודרניות תומכים היטב בדומיינים בינלאומיים.
- תמיכה בכתובת מקומית שאינה ASCII אינה אחידה בכל ספק, טופס הרשמה או מערכת ישנה.
- טופס שמסרב לכתובת עברית אינו בהכרח מעיד שהכתובת אינה תקינה; ייתכן שהאימות שלו מיושן.
- אין המרה כללית ובטוחה של חלק מקומי עברי ל־ASCII. לפעמים ספק מציע כתובת חלופית, אבל זו מדיניות של הספק ולא Punycode.
- כשכתובת משמשת להתחברות או לשחזור חשבון חשוב לוודא מראש שהשירות מקבל אותה ושולח אליה בהצלחה.
למה כל כך הרבה טפסים באתרים דוחים כתובת עברית?
זה לא באג נקודתי אלא פער בתקן עצמו. ההגדרה של ״כתובת אימייל תקינה״ בתקן ה־HTML — זו ש־<input type="email"> ורוב האתרים מסתמכים עליה — מתירה בחלק המקומי תווי ASCII בלבד (הכלל atext מ־RFC 5322), בלי שום מקום לעברית, כך שכתובת עברית נחשבת אצלה לא־תקינה עוד לפני שהיא מגיעה לשרת. התקן אמנם מגדיר את הפורמט הזה במפורש כ״הפרה מכוונת״ של RFC 5322, אבל מנימוק של פשטות מעשית — לא כדי לחסום כתובות בינלאומיות — והתוצאה היא שכתובות EAI פשוט לא נלקחו בחשבון. הפער פתוח ומתועד ב־GitHub של התקן אך טרם תוקן.
מילון קצר
Unicode / UTF-8- מערכת התווים והקידוד שמייצגים עברית ושפות אחרות.
IDN / IDNA- שמות דומיין בינלאומיים והכללים למיפוי שלהם לצורה שה־DNS מכיר.
Punycode- הקידוד שמייצג תווית דומיין בינלאומית באמצעות תווי ASCII.
EAI- משפחת התקנים לדואר ולכתובות בינלאומיים.
SMTPUTF8- הרחבת SMTP שמעבירה כתובות וכותרות UTF-8.
MIME- המסגרת לסוגי תוכן, קידודים, קבצים מצורפים וטקסט בכותרות הודעה.
לעיון טכני: IDNA, מבוא ל־EAI ו־ SMTPUTF8.