יציאת SMTP

איך הדוא"ל באינטרנט עובד

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

כאשר אתה שולח דוא"ל SMTP נכנס לפעולה. SMTP הוא קצר עבור Simple Mail Transfer Protocol כפי שהוגדר ב RFC 5321: Simple Mail Transfer Protocol. לקוח הדואר שלך מדבר לשרת SMTP באמצעות הליך זה נקי ופשוט כדי לקבל דוא"ל ממקום אחד למשנהו.

הפלירטוט

תוכנית הדוא"ל שלך הופך לקוח SMTP , מתחבר ליציאה 25 של שרת הדואר שלך (בדרך כלל את יציאת ה- SMTP ) ו - אומר EHLO . מחשבים, בסופו של דבר, הם רק אנושיים ומה שחשוב הוא שהוא רוצה להיות מנומס. למעשה, הוא אינו מנסה להיות מנומס, אלא להשתמש בתוספות מאוחרות יותר ל- SMTP שהביאו שתי טעמים בפקודה HELO מאוחר יותר (פקודת SMTP מורכבת בדרך כלל מארבעה תווים).

שני טעמים של HELO

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

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

שרת דואר ESMTP
שלום
501 HELO דורשת כתובת דומיין
HELO localhost
250 mail.domain.net שלום localhost [127.0.0.1], שמח לפגוש אותך

(הקלט שלי הוא נטוי , פלט השרתים הוא שחור, שורות המתחילות עם 5 מציינות שגיאה ).

השולח

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

MAIL מאת:
250 sender@example.com ... אישור השולח

המקבל

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

RCPT אל: recipient@example.com
250 support@lifewireguide.com ... מקבל אישור (יהיה תור)

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

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

ההודעה

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

הפקודה ליזום המדינה שגורמת לשרת לקבל את ההודעה היא DATA . בעקבות זה כל שדות הכותרת של הודעת הדואר האלקטרוני ולאחר מכן את הגוף, הן לפצות על בלוק אחד גדול של טקסט (או נתונים). כדי לספר לשרת כי קלט הוא סיים נקודה על קו עצמו משמש (\ r \ n. \ R \ n). אז אני שולח את המסר שלי:

נתונים
354 הזן דואר, בסוף עם "." על שורה בפני עצמה
מזהה הודעה:
תאריך: ראשון, 17 אוגוסט 1997 18:48:15 +0200
מאת: היינץ צכביטשר
אל: היינץ Tschabitscher
נושא: לסיכום תחרות פרוסט

הנחה על העולם של ברבור!
.
250 SAA19153 ההודעה התקבלה למשלוח

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

הסוף

עכשיו אתה יכול לשלוח הודעות דוא"ל רבות ככל שתרצה לחזור על השלבים מ MAIL FROM: ל . . אם אתה מסיים עם זה, אתה יכול להפסיק את השרת עם הפקודה QUIT וזה בדיוק מה שאנחנו עושים:

לְהַפְסִיק
שלום

איך אני יכול לעשות את זה?

הפתרון הלא טריוויאלי הוא Telnet לשרת הדואר היוצא שלך (אתה יכול למצוא את הכתובת שלו בהגדרות החשבון של לקוח הדוא"ל שלך) ביציאה 25.

הדרך הקלה יותר היא להשתמש ביישום Java זה , שמנסה לחקות את פרוטוקול ה- SMTP ומנחה אותך דרך תיבת הדו-שיח.