Simple Mail Transfer Protocol – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מאין תקציר עריכה
Noam (שיחה | תרומות)
שינוי מבנה הערך, תיקון מספר טעויות
שורה 2:
{{OSI}}
{{Tcp/ip}}
'''Simple Mail Transfer Protocol''' (ב[[ראשי תיבות]]: '''SMTP'''; ב[[תרגום חופשי]]: פרוטוקול פשוט להעברת דואר) הוא כיום ה[[פרוטוקול תקשורת|פרוטוקול]] הסטנדרטי להעברתלשליחת [[דואר אלקטרוני]] ב[[אינטרנט]]. SMTP מתפקד ב[[שכבת התוכנה של מודל הOSI]] וב[[שכבת התוכנה של מודל הTCP/IP]], ומשתמש במפתח port 25 של [[TCP]].
 
== תיאור הפרוטוקול ==
SMTP משמש למשלוח דואר אלקטרוני ולהעברתו בין [[שרת|שרתים]]ים שונים, עד שיגיע לשרת היעד, אך אינו מאפשר למשתמש לשלוף את הודעות הדואר שלוהמיועדות אליו מן השרת. לביצועקיימים פעולהפרוטוקולים זואחרים ישהמיועדים להשתמשלשליפה בפרוטוקוליםשל אחריםהודעות דוגמתדואר, כגון [[POP3]] או ו-[[IMAP]].
 
זהו פרוטוקול טקסטואלי (ולא [[בסיס בינארי|בינארי]]). השולח משתמש בפקודות טקסטואליות פשוטות על מנת לשלוח את ההודעה הרצויה. השרת מגיב בקוד מספרי ובדרך כלל גם בטקסט כלשהו על מנת להגיב לפקודות שנשלחו. כאשר יש צורך בהעברה של מידע בינארי נעשה שימוש ב-[[MIME]].
SMTP משתמש בקידוד Ascii טקסטואלי להעברת המידע ו-Meta-Data הנלווה לו. כדי לקדד את האותיות האנגליות משתמשים בשבע סיביות, ועוד סיבית לבדיקת זוגיות.
 
SMTP עובר מעל [[TCP]] ומשתמש בפתח (port)‏ 25 בד"כ.
כדי להעביר מידע בינארי משתמשים ב-[[MIME]].
 
שורשיו של פרוטוקול SMTP נעוצים בימים הראשונים של האינטרנט ומכאן פשטותו היחסית. הפשטות הזו מתבטאת בין השאר בהעדר מנגנון אימות 'חזק' לגבי מספר שדות וביניהם שדה השולח (From). החולשהחולשה הזוזו מאפשרת לכל אדם בעולם להתחזות לכל כתובת אחרת (למשל, @Microsoft.com).מה יששהופך מספראת ארגוניםהפרוטוקול שעובדיםלמטרה לשפרקלה אתעבור המצב[[דואר הקייםזבל (שהואאלקטרוני|"ספאמרים"]]. גן-עדןקיימות לזבלנימספר דוא"ל)יוזמות ביניהםאשר חברתמנסות יאהולהתמודד ו[http://search.yahoo.com/search?p=secure+smtp&ei=UTF-8&fr=FP-tab-web-t&fl=0&x=wrtעם הרחבתהבעיה, הפרוטוקולכגון הקייםשיטת לה- Secure SMTP[[DomainKeys]].
 
=== מציאת שרת SMTP ושימוש ב-DNS ===
איתור שרת ה-SMTP שאליו אנחנו רוצים להעביר את ההודעה נעשה על ידי בקשת [[Domain Name System|DNS]] מסוג MX ‏(Mail eXchange). כאשר לא נמצאה רשומה מסוג MX, אלא רק רשומה מסוג A, חובה להשתמש ברשומת ה-A.
 
כמו כן, שרתים רבים משתמשים בפרוטוקול ה-DNS על מנת לוודא שאכן קיים [[שם תחום]] בשם מתאים לזה שציין השולח. ברוב המקרים בקשת השליחה תידחה במידה ושם התחום לא קיים. מנגנון זה הוא חלק מההתמודדות של שרתי SMTP עם בעית [[דואר זבל אלקטרוני|דואר הזבל האלקטרוני]]. בנוסף, הועלתה לאחרונה הצעה להרחיב את רשומת TXT כך שתכיל את רשימת השרתים להם מאושר להעביר מייל. צורת רישום זה מכונה רשומת SPF.
 
==הדגמת עבודה ב־SMTP==
 
כאשר מתחבריםנתחבר למכונה מרוחקת, שבה מותקן שרת SMTP, היא מצפהתצפה לשורה המתחילה ב- HELO ולאחריה שם הלקוחהתחום של השרת המבקששמבקש להתחבר אליה. למשל:
<div style="text-align: left; direction: ltr; margin-left: 1em;">
HELO ANONYMOUSmydomain.com
</div>
לאחר מכן, נשלח MAIL FROM: וכתובת המקור של הדואר, על מנת לציין שאנחנו מעוניינים לשלוח הודעת דואר.
תגובתו, המשתנה משרת מייל אחד לשני, תתחיל תמיד במספר 250, המציין כי ההוראה שנשלחה הובנה. לאחר מכן, יצפה ל- MAIL FROM: וכתובת המקור של הדואר
<div style="text-align: left; direction: ltr; margin-left: 1em;">
MAIL FROM:<romeo@bogus.net>
</div>
בשלב הבא נשלח RCPT TO: עם כתובת היעד שלנו.
ולאחר מכן, ל- RCPT TO: וכתובת יעד מוצמדת.
<div style="text-align: left; direction: ltr; margin-left: 1em;">
RCPT TO:<juliet@fakenet.com>
</div>
הפקודה DATA מציינת את תחילת המידע שאנחנו מעוניינים לשלוח. שורה שתכיל אך ורק נקודה תציין את סוף המידע.
הוספת DATA תאפשר כתיבת המייל, עד שהסימן נקודה המצוי בשורה משלו.
<div style="text-align: left; direction: ltr; margin-left: 1em;">
DATA
שורה 32 ⟵ 38:
.
</div>
== SMTP וDNS ==
[[DNS]], קשור באופן פעולתו של SMTP באופן מיוחד. לאחר שכתובת ה[[דומיין]] אליה שייך המייל (החלק שאחרי ה@), מאותרת ע"י שרת המייל, נשלחת בקשה מיוחדת לשרת הDNS, לאתר את שרת הדואר השייך לדומיין, ברשומה המכונה [[DNS|MX]]. השרת מצדו מחזיר את הרשומה.
 
למרות כי הדבר לא נדרש ע"י הפרוטוקול, מרבית שרתי הדואר יוודאו כי קיים דומיין בשם מתאים לDOMAIN השולח. ברוב המקרים יידחו את המייל במידה והדומיין לא קיים.
 
לאחרונה, הועלתה הצעה להרחיב את רשומת [[DNS|TXT]] כך שתכיל את רשימת השרתים להם מאושר להעביר מייל. צורת רישום זה מכונה רשומת SPF,
 
==ראו גם==