תפריט

דואר אלקטרוני זמני בחינם: מה החינם באמת עולה בצנרת בדיקה

דואר אלקטרוני זמני בחינם זול בכסף ויקר באמינות. כך נראים חלון השמירה, חסימות על דומיין משותף, מגבלות קצב ואיך צוות בלי תקציב בונה בדיקות דואר יציבות.

פורסם

  • נתוני בדיקה
  • דואר אלקטרוני
  • סביבת בדיקות

דואר אלקטרוני זמני בחינם הוא נקודת הפתיחה המובנת מאליה לצוות שצריך תיבת דואר בתוך בדיקה ואין לו שורת תקציב לשם כך. הניסוי אינו עולה דבר, אין צורך לרשום דומיין, והפעם הראשונה בדרך כלל מסתדרת. הצרה מתחילה כשגישה זו מחווטת לצינור שרץ כל לילה, כי אותן תכונות שהופכות תיבה ציבורית חינמית לנוחה הן בדיוק התכונות שהופכות אותה לבלתי מהימנה כשההיקף גדל, וזמן הבדיקה הופך מתלות של דקות לתלות של מאות הרצות בחודש.

מדריך זה מסביר מה המילה חינם באמת קונה, מדוע דומיינים ציבוריים משותפים מגיעים לרשימות חסימה, איך דומיין בשליטת הצוות משנה את החשבון, ואיך צוות בלי תקציב יכול בכל זאת לבנות בדיקות דואר שאינן נכשלות מסיבות שאין להן קשר לתוכנה. בסוף הקריאה אמורה להיות אפשרות להחליט אם החינם מספיק לבדיקה מסוימת, או שהוא רק עלות שנדחתה למועד אחר.

מה כולל דואר אלקטרוני זמני בחינם ומה הוא אינו כולל?

תיבה ציבורית חינמית כוללת כתובת על דומיין משותף, ממשק ווב לקריאת הודעות, וחלון שמירה שנמדד בדקות או בשעות. היא אינה כוללת את הדברים שנעשים חשובים ברגע שהבדיקה הופכת לשגרה: תקופת שמירה מובטחת, מכסת קצב שאפשר לתכנן לפיה, שליטה בדומיין, וכל התחייבות לגבי המועד שבו השירות משתנה או מפסיק לעבוד.

חלון השמירה הוא המשתנה הנסתר הראשון. ספקים חינמיים שומרים הודעות למשך תקופה שהם בוחרים, ורשאים לקצר אותה בלי להודיע מראש. בדיקת אימות שממתינה להודעה, מול תיבה שפגה בזמן שהבדיקה עדיין ממתינה, מייצרת כשל שנראה כמו בעיית מסירה והוא למעשה בעיית שמירה. ההבדל אינו אקדמי: מי שמחפש את הסיבה מבזבז זמן על צד השליחה, בשעה שהפתרון נמצא בצד הקליטה, בהארכת החלון או בהחלפת התיבה בתיבה שנשלטת על ידי הצוות.

מכסת הקצב היא המשתנה השני. ספקים מגבילים כמה תיבות ניתן ליצור ממקור אחד בתקופה נתונה, והמגבלה אינה מפורסמת בצורה שאפשר לתכנן לפיה. חבילת בדיקות שמייצרת תיבה לכל מקרה בדיקה תגלה את הגבול אי שם באמצע ההרצה, והכשלים יתפרסו על פני החבילה באופן שאינו צפוי מראש. כשל שמתרחש במקרה הבדיקה הארבעים ואחד ואינו מתרחש בהרצה חוזרת של אותו מקרה הוא כמעט תמיד מגבלת קצב ולא פגם בקוד.

הדומיין הוא המשתנה השלישי והגדול. כל משתמש של ספק חינמי חולק אותו דומיין, ולכן מסירת הדואר של הבדיקה היא פונקציה של מה שזרים עשו באותו שבוע. אין דרך לשפר אותה ואין דרך להסביר אותה לעמית שקורא בנייה שנכשלה, כי אין שורה בשינויי הקוד שמסבירה את ההבדל בין הרצה עוברת להרצה שנכשלת. ספק חינמי יכול גם להשעות כתובת בודדת או את כל הדומיין בלי הודעה מוקדמת, והסימפטום היחיד שנראה הוא שההודעה שממתינים לה אינה מגיעה.

מדוע דומיינים ציבוריים משותפים מגיעים לרשימות חסימה?

מוצרי הרשמה רוצים לעצור יצירה אוטומטית של חשבונות, ואחד האותות הזולים ביותר שעומדים לרשותם הוא דומיין הדואר. רשימה מפורסמת של דומיינים חד-פעמיים מאפשרת לטופס לדחות שליחה בהשוואה אחת, לפני שנבדקת סיסמה ולפני שנשלח דואר. את הרשימה מתחזקים ספקים, היא מתעדכנת ברציפות, וצורכים אותה אלפי מוצרים, ולכן שינוי בה אינו מחייב שינוי אצל מי שמשתמש בה.

המכניקה של הכניסה לרשימה כזו שגרתית. דומיין נצפה כמקבל דואר עבור כתובות שמעולם לא נרשמו, או כמנפיק כתובות בקצב שאף אדם אינו יכול לעמוד בו, או כמופיע בתלונות שימוש לרעה. כל אחת מההבחנות האלה מספיקה כדי להיכנס, ואף אחת מהן אינה מחייבת את הצוות לעשות משהו שגוי. מסלולים חינמיים גם מיוצגים ביתר ברשימות האלה, כי שירות שאינו עולה דבר הוא הכלי הזול ביותר למי שיוצר חשבונות בכמות, ודומיין שמושך תנועה כזו נרשם במהירות.

מבחינת הבדיקות, התוצאה היא שרשימת החסימה היא תלות בסביבה שאינה בבעלות הצוות. צינור שעובר ביום שישי ונכשל ביום שני לא שינה דבר במאגר שלו כדי להסביר את ההבדל, ומסלול ניפוי התקלות הרגיל—לקרוא את השינוי, לשחזר מקומית—לא ימצא דבר, כי אין שינוי לקרוא. המאמר על חסימת דומיינים חד-פעמיים מכסה את צד הזיהוי, כולל הבדיקות שחורגות מרשימת הדומיינים עצמה ומסתמכות על התנהגות הדומיין ולא רק על שמו.

יש קמט נוסף בסביבות בדיקה. צוותים רבים מבטלים את חסימת הדומיינים החד-פעמיים בסביבת הבדיקה כדי שהבדיקות שלהם יעברו, ומכאן שרשימת החסימה אינה נבחנת לעולם. פגם בלוגיקת החסימה מגיע אז לפרודקשן בלי שנבדק, והדיווח הראשון עליו מגיע ממשתמש ולא מבנייה. המסלול הנכון הוא להחזיק בדיקות נפרדות לחסימה עצמה, שמזינות כתובת של דומיין חד-פעמי בכוונה ומאמתות שהמוצר דוחה אותה.

האם בעלות על הדומיין משנה את החשבון?

היא משנה כמעט כל דבר שהיה בלתי יציב. כשהדומיין שייך לצוות, שאלת המסירה עוסקת במוניטין השליחה של הצוות ולא במוניטין משותף עם זרים, חלון השמירה הוא מה שתיבת הדואר של הצוות עושה, מכסת הקצב היא התשתית של הצוות, ואף רשימה של צד שלישי אינה מחליטה אם הבדיקה עוברת או נכשלת.

העלות אינה אפס גם כשהכסף אפס. נדרשים דומיין, רשומת MX, תיבת דואר או סקריפט עיבוד, ומישהו שמבין מדוע דואר מדומיין חדש נוחת לפעמים בתיקיית הספאם או נדחה בידי נמען. זו עלות אמיתית של תשומת לב, והיא הסיבה לכך שצוותים פונים מלכתחילה לספקים ציבוריים במקום להקים מערך משלהם.

התמורה היא חבילת בדיקות שנכשלת רק כשהתוכנה נכשלת. לתכונה הזו יש ערך גבוה ממה שנשמע, כי חבילה עם כשלים לא מוסברים מוזנחת, וחבילה מוזנחת אינה מגנה על דבר. ברגע שמסלול הדואר נמצא בשליטת הצוות, כשל בזרימת האימות מעיד על פגם בזרימת האימות ולא על מזג האוויר של ספק חיצוני. המאמר על תיבת catch-all בסביבת בדיקה מתאר את הגרסה הקטנה ביותר של המערך הזה, שבה כתובת אחת מקבלת כל הודעה וכל בדיקה קוראת את החלק שלה.

יש אפשרות אמצעית שכדאי להכיר: שירות דואר בדיקות ציבורי שמנפיק כתובות על דומיין השמור לבדיקות ולא על דומיין חד-פעמי לשימוש כללי. סביר פחות שיופיע ברשימת חסימה, כי הוא אינו משווק לצרכנים, אבל גם הוא צד שלישי, ושאלות הזמינות וחלון השמירה חלות עליו באותה מידה. ההבדל בין ספק כזה לספק צרכני הוא בהצהרות שהוא מפרסם ובקהל שהוא משרת, לא בבעלות על הדומיין.

כיצד צוות בלי תקציב צריך לתכנן בדיקות דואר אמינות?

מתחילים בהסרת המסירה מרוב הבדיקות. שרת קליטה מקומי שמקבל הודעות במקום לשלוח אותן מכסה רינדור תבניות, חילוץ קישורים וחילוץ קודים, והוא רץ באלפיות שנייה בלי תלות ברשת ובלי תלות בשירות חיצוני. המאמר על קליטת SMTP מקומית בצינור הבנייה מתייחס לכך כברירת מחדל מן הטעם הזה: רוב ההצהרות על דואר נוגעות לתוכן ולא להובלה, ותוכן אפשר לאמת בלי לצאת מהמכונה.

מסירה אמיתית נשמרת למעט בדיקות שבאמת זקוקות לה. אימות מקצה לקצה, תפוגת קישור, וההשפעה ההדדית בין שולח הדואר לספק חיצוני הם המקרים שמצדיקים הודעה אמיתית, ולרוב מדובר בודדים ולא במאות. שמירה על קבוצה קטנה היא מה שהופך את ההרצה שלה על תשתית בשליטת הצוות לבת השגה מבחינת עלות, וגם מה שמאפשר להריץ אותה בתדירות נמוכה מזו של החבילה המלאה.

אם בכל זאת משתמשים בתיבה ציבורית חינמית, כדאי לבודד אותה במשימה נפרדת. שלב צינור נפרד שמותר לו להיות לא יציב, עם ניסיון חוזר והודעת כשל ברורה, מונע מצב שבו תקלה של צד שלישי אינה ניתנת להבחנה מרגרסיה אמיתית. סימון הבדיקות האלה כך שאפשר לדלג עליהן בזמן הקפאת שחרור הוא פשרה מעשית, בתנאי שהאובדן בכיסוי נרשם במקום שהצוות רואה אותו.

בכל מסלול, כדאי שהתיבה תהיה מזוהה. קידומת שרושמת את הסביבה, את ההרצה ואת מקרה הבדיקה הופכת הודעה שהתקבלה לניתנת לאיתור ומאפשרת ניקוי מסודר בסוף. תיבה בלי תווית שצוברת הודעות במשך שנה היא אחריות של שמירת נתונים ולא נכס בדיקה. המאמר רשימת בדיקות לדואר תפעולי אוסף את ההצהרות שכדאי להרשות לעצמן אחרי שהודעה נקלטה. הכללים האלה הם גם מה שמחולל הדואר הזמני באתר הזה תוכנן סביבו, והם חלים בין אם התיבה חינמית ובין אם היא בתשלום.

אילו אפשרויות חינמיות מקובלות באמת?

אפשרות חינמית מקובלת כשמצב הכשל שלה גלוי ורדיוס הפגיעה שלה קטן. תיבה שמשתמשים בה פעם אחת, ביד, כדי לאשר שהודעת איפוס סיסמה מגיעה ומוצגת כראוי היא שימוש תקין בדומיין חד-פעמי חינמי. שום דבר אינו תלוי בה מחר, ואם הדומיין חסום רואים זאת מיד ובאופן שאינו משאיר סימן.

היא מפסיקה להיות מקובלת כשאותו סוג תיבה יושב על המסלול הקריטי של חבילה אוטומטית. אם הצינור נעצר בהמתנה להודעה שמגיעה לדומיין שמישהו אחר שולט בו, האמינות של הצינור היא פונקציה של שירות שאין לו מחויבות כלפי הצוות, אין לו תקופת הודעה מוקדמת, ואין לו תמריץ לדאוג לבנייה הזו. קל להמעיט בחשבון הזה כשהעלות הגלויה היא אפס, כי העלות הנסתרת היא תשומת הלב שנשפכת על כשלים שאינם השינוי של אף אחד.

בדיקה שימושית היא לשאול מה קורה כשהספק נעלם בלי אזהרה. אם התשובה היא שבנייה נהיית אדומה ומישהו מבזבז אחר צהריים על חקירה, האפשרות החינמית עולה יותר מדומיין. אם התשובה היא שלא ניתן להשלים בדיקה ידנית עד שנמצא מחליף, העלות מובנת ומקובלת, ואין הפתעה בחשבון.

כדאי גם למנות בכנות את עלויות המדרגה השנייה, כי חינם ממעט להישאר חינם בזמן עובדים. מישהו צריך ללמוד כיצד הספק מתנהג, לכתוב את לוגיקת הניסיון החוזר, ולענות על השאלה מדוע בניית הלילה נכשלה שוב. אפשר להכפיל את תשומת הלב הזו במספר החודשים שהחבילה רצה, ולהשוות אותה לאחר צהריים אחד של הגדרת דומיין וסקריפט קליטה. ההשוואה נוטה בדרך כלל לטובת המסלול בתשלום, וזו הסיבה שרבים מהצוותים בסופו של דבר מחזיקים דומיין משלהם. יש גם שאלה פשוטה יותר שכדאי לשאול לפני שמחליטים: האם הזרימה הנבדקת מתנהגת באותו אופן בכתובת על דומיין חינמי ובכתובת רגילה. אם המוצר חוסם דומיינים חד-פעמיים, שימוש בדומיין כזה בבדיקה בודק את מסלול הדחייה ולא את מסלול ההצלחה, וערבוב בין השניים הוא טעות נפוצה ויקרה.

למה אסור להשתמש בהודעות ובכתובות האלה?

כתובת שמופקת לבדיקה היא רשומה בדיונית. היא אינה שייכת לאדם, היא אינה נקודת קשר שמישהו עוקב אחריה, ואסור להשתמש בה כדי להתחזות למישהו, כדי לקבל גישה לחשבונות שאינם של הצוות, כדי להאריך תקופת ניסיון מעבר לתנאיה, כדי לעקוף מגבלת קצב או בקרת אימות, או כדי לקבל דואר שיש לו משמעות עבור מישהו אחר.

לנקודה האחרונה מגיע דגש בדיון תקציבי, כי הפיתוי להשתמש בתיבה חינמית למשהו שאינו בדיקות חזק במיוחד כשהמשאבים דחוקים. כתובת תמיכה, איש קשר לחיוב או נקודת שחזור סיסמה שמתארחים על דומיין שפג תוקפו הם אחריות לכל דבר שהם מחוברים אליו, וזאת בנוסף לשאלה אם הדבר מותר מלכתחילה. תיבה חינמית שנשכחה היא לא רק בדיקה שבורה אלא גם נקודת כניסה שאיש אינו מנטר.

גם להודעות שנקלטו כדאי להתייחס כאל קצרות מועד. אלה הודעות אמיתיות, הן עשויות להכיל ערכים אמיתיים שדלפו דרך תבנית של סביבת בדיקה, ותיבת בדיקה בלי מדיניות מחיקה תחזיק בסופו של דבר משהו שלא היה צריך להיות בה. מחיקה לפי לוח זמנים, ותקופת השמירה כתובה במקום שהצוות רואה ולא בזיכרון של מי שהקים את התיבה.

כל מה שנדון כאן נועד להריץ תוכנה של הצוות עצמו. כתובות ותיבות שמופקות הן נכסי בדיקה ולא זהויות, ואסור להשתמש בהן כדי לעבור אימות אמיתי, כדי לפתוח חשבון אמיתי בשם מישהו, או כדי לייצג את פרטי הקשר של מישהו.

המשך קריאה

כלים פופולריים ומדריכי שימוש