SMTP ներսում դուրս

Ինչպես է ինտերնետային էլփոստը աշխատում

Երբեւէ մտածել եք, թե ինչ է կատարվում, երբ ուղարկեք Ուղարկել կոճակը ձեր էլփոստի ծրագրում: Հավանաբար ոչ, ես կռահեցի, քանի դեռ այն աշխատում է: Սա հենց այն է, ինչու պետք է մտածել, թեեւ: Եթե ​​ինչ-որ բան չի աշխատում, լավ է իմանալ, թե ինչ չի աշխատում: Սովորաբար դա կեսն է:

Երբ ուղարկեք SMTP- ը էլեկտրոնային փոստի միջոցով : SMTP- ը կարճ է Simple Mail Transfer Protocol- ի համար, ինչպես սահմանված է RFC 5321-ում: Պարզ Mail փոխանցման արձանագրություն: Ձեր փոստարկղը խոսում է SMTP սերվերի հետ `օգտագործելով այս մաքուր եւ պարզ ընթացակարգը ` մեկ վայրից մյուսին էլեկտրոնային փոստ ստանալու համար :

Ֆլիրտը

Ձեր էլփոստի ծրագիրը դառնում է SMTP- ի հաճախորդ , կապում է ձեր փոստի սերվերի 25-ին (սովորաբար SMTP նավահանգստի ) եւ - ասում է EHLO- ը : Համակարգիչները, ի վերջո, միայն մարդկային են, եւ ինչ է նշանակում, որ ուզում է լինել քաղաքավարի: Փաստորեն, դա չի փորձում ջանադրաբար լինել, այլ հետագայում լրացուցիչ հավելումներ կիրառել SMTP- ի համար, որը բերեց ՀԵԼՕ-ի հաջորդ հրամանատարության երկու ծորակ (SMTP հրաման, ընդհանուր առմամբ, բաղկացած չորս նիշից):

Հելիի երկու բուրմունք

EHLO- ը, լինելով վերջինը, սերվերը գովազդում է բոլոր լրացուցիչ հնարավորությունները (օրինակ `առաքման կարգավիճակի ծանուցումը կամ հաղորդագրությունները տրանսպորտի հնարավորությունը, որը պարունակում է անվտանգ ASCII նիշերից բացի):

Ոչ բոլոր սերվերները թույլ չեն տա այս ողջույնը, սակայն պահանջվում է ընդունել մի պարզ HELO, որը, բնականաբար, ենթադրում է, որ որեւէ այլ հատկանիշ չկա: Թե բարեւի հրամանները պահանջում են, որ պատվիրատուն հատկացնի իր տիրույթը ** LO- ից հետո: Գործնականում դա նման է մի բանին.

220 mail.domain.net ESMTP սերվեր
ՀԵԼՈ
501 HELO- ն պահանջում է տիրույթի հասցեն
HELO localhost- ը
250 mail.domain.net Hello localhost [127.0.0.1], ուրախ է հանդիպել ձեզ

(Իմ ներածումը շեղում է , սերվերների արտադրանքը սեւ է, 5-ից սկսած տողերը նշում են սխալ ):

Ուղարկողը

Արձանագրության մնացած մասը իսկապես արժանի է հատկանիշին: Եթե ​​ցանկանում եք նամակ ուղարկել, սկսում եք MAIL FROM- ի հիմնաբառերով: Դրանից հետո գալիս է ուղարկողի էլփոստի հասցեն , ինչպես առաջարկվում է: Մի մոռացեք տեղադրել հասցեի փակագծերը, թեեւ (): Շարունակելով մեր օրինակը, մենք ունենք.

Փոստից `
250 sender@example.com ... Ուղղորդիչը ok

Ստացողը

Սերվերը ստացել է ուղարկողի հասցեն, ապա հաճախորդը կարող է տալ ստացողի հասցեն: Այս գործողության հրամանը, RCPT TO: կրկին բավականին հուզիչ է: Ես ուզում եմ նամակ ուղարկել:

RCPT TO: recipient@example.com
250 support@lifewireguide.com ... Recipient ok (հերթը)

Այն, որ սերվերը հերթ կպատճառի, այն է, որ այն կփրկի տեղական տեղը եւ ուղարկեք այն մյուս բոլոր հերթական փոստերի հետ պարբերաբար (օրինակ, յուրաքանչյուր 30 րոպե): Այս վարքագիծը կախված է կոնֆիգուրացիայից, եւ սերվերը կարող է նաեւ անմիջապես առաքել փոստը:

Մենք գրեթե արեցինք: Այն, ինչ դեռ անհայտ կորած է, սակայն կարեւոր մասն է. Իրական հաղորդագրությունը:

Հաղորդագրություն

Այժմ, «ծրարը» ավարտված է, էլփոստի հաղորդագրության տվյալները, ինչպես դա կարող է հետեւել: Այս «տվյալները» բաղկացած է էլփոստի մարմնից, ինչպես նաեւ վերնագրի դաշտերից :

Պետությունը նախաձեռնելու հրամանը, որը սերվերին ընդունում է հաղորդագրությունը, DATA է : Դրանից հետո էլփոստի հաղորդագրության բոլոր վերնահողերը եւ այնուհետեւ մարմինը, կազմվում են միայն մեկ մեծ տեքստի (կամ տվյալների) համար: Սերվերին հայտնելու համար, մուտքագրումը ավարտված է ինքնուրույն գծի վրա կետը (\ r \ n. \ R \ n): Ուստի ես ուղարկում եմ իմ ուղերձը.

DATA- ն
354 Մուտքագրեք նամակ, վերջացրեք «.»: ինքնին գծի վրա
Հաղորդագրության ID- ը `
Ամսաթիվ, Sun, 17 Օգոստոս 1997 18:48:15 +0200
From: Heinz Tschabitscher
Դեպի: Heinz Tschabitscher
Թեմա `Ամփոփիչ-փռշտալ մրցույթի համար

Անջատեք Կարապի աշխարհը:
.
250 SAA19153 Հաղորդագրություն ընդունվել է առաքման համար

Այո, սա նշանակում է, որ դուք կարող եք նշել այն անունը, որն այլ կերպ է տարբերվում այնից, որն ուղարկվում է դեպի «դաշտ»: Օրինակ, կարող եք օգտագործել « Ստացողի ցուցակը ճնշված է» :

Վերջ

Այժմ կարող եք ուղարկել այնքան էլ շատ նամակներ, քանի որ ցանկանում եք քայլեր կրկնել ` MAIL FROM- ից : . Եթե ​​դրանով արված եք, կարող եք թողնել սերվերը QUIT հրամանով, եւ դա այն է, ինչ անում ենք:

QUIT
221 Goodbye

Ինչպես կարող եմ դա անել

Անսահմանափակ լուծումը telnet- ի ձեր ելքային փոստի սերվերին (դուք կարող եք գտնել հասցեն, ձեր էլփոստի հաճախորդի հաշվի կարգավորումների մեջ ) 25-րդ նավահանգստում:

Ավելի հեշտ միջոց է օգտագործել այս Java հավելվածը , որը փորձում է ընդօրինակել SMTP արձանագրությունը եւ ուղղորդում է ձեզ երկխոսության միջոցով: