SMTP Inside Out

Paano gumagana ang internet email

Naisip mo na ba kung ano ang nangyayari kapag pinindot mo ang pindutan ng Ipadala sa iyong programa sa email? Marahil hindi, ako hulaan - hangga't ito gumagana. Ito ang eksaktong dahilan kung bakit dapat kang magtaka. Sa kaso ng isang bagay ay hindi gumagana ito ay mabuti upang malaman kung ano ang hindi gumagana. Karaniwan, iyon ang kalahati ng solusyon.

Kapag nagpadala ka ng email SMTP dumating sa pag-play. Ang SMTP ay maikli para sa Simple Mail Transfer Protocol gaya ng nilinaw sa RFC 5321: Simple Mail Transfer Protocol. Ang iyong mail client ay nagsasalita sa SMTP server gamit ang malinis at simpleng pamamaraan upang makakuha ng email mula sa isang lugar papunta sa isa pa.

Ang Flirt

Ang iyong email program ay nagiging isang SMTP client , kumokonekta sa port 25 ng iyong mail server (karaniwang ang SMTP port ) at - sabi ni EHLO . Ang mga kompyuter, sa huli, ay pantaong tao lamang at kung ano ang mahalaga ay nais na maging matapat. Sa totoo lang, hindi ito nagsisikap na maging magalang ngunit gumamit ng mga karagdagang karagdagan sa SMTP na nagdala tungkol sa dalawang lasa ng susunod na command HELO (ang SMTP command ay karaniwang binubuo ng apat na character).

Dalawang Flavors ng HELO

Ang EHLO, ang pagiging mas kamakailan ay gumagawa ng advertise ng server ang lahat ng mga karagdagang tampok (tulad ng abiso sa katayuan ng paghahatid o ang kakayahang maghatid ng mga mensahe na naglalaman maliban sa ligtas na mga karakter sa ASCII) na sinusuportahan nito.

Hindi pinapahintulutan ng bawat server ang pagbati na ito, ngunit kinakailangang tanggapin ang isang plain HELO na natural na ipinapalagay na walang karagdagang mga tampok ay naroroon. Parehong halo utos ay nangangailangan ng client upang tukuyin ang domain nito pagkatapos ng ** LO, gayunpaman. Sa pagsasagawa, ganito ang hitsura nito:

220 mail.domain.net ESMTP Server
HELO
501 HELO ay nangangailangan ng address ng domain
HELO localhost
250 mail.domain.net Hello localhost [127.0.0.1], nalulugod na matugunan kayo

(Ang aking input ay nasa italics , ang mga server output ay itim; mga linya na nagsisimula sa isang 5 ay nagpapahiwatig ng isang error .)

Ang nagpadala

Ang natitira sa protocol ay nararapat lamang ang katangiang simple. Kung nais mong magpadala ng isang email, magsisimula ka sa mga keyword MAIL MULA:. Kasunod nito ang email address ng nagpadala, tulad ng iminungkahing mula sa. Huwag kalimutang ilagay ang mga braket sa paligid ng address, bagaman (tulad ng ). Ang pagpapatuloy ng aming halimbawa, mayroon tayong:

MAIL MULA SA:
250 sender@example.com ... Nagpadala ok

Ang tatanggap

Matapos tinanggap ng server ang address ng nagpadala, maaaring ibigay ng kliyente ang address ng tatanggap. Ang utos para sa aksyon na ito, RCPT TO: muli ay sa halip na nagpapahiwatig. Gusto kong magpadala ng mail sa aking sarili :

RCPT TO: recipient@example.com
250 support@lifewireguide.com ... Tatanggap ok (ay pila)

Na ang queue ng server ay nangangahulugang lamang: maililigtas nito ang mail sa isang lugar at ipadala ito kasama ang lahat ng iba pang queued mail sa mga pagitan (halimbawa, bawat 30 minuto). Ang pag-uugali na ito ay depende sa pagsasaayos at ang server ay maaari ding maghatid ng mail agad.

Kami ay halos tapos na. Gayunman, ano pa ang nawawala, ang mahalagang bahagi: ang aktwal na mensahe.

Ang mensahe

Ngayon na ang "sobre" ay tapos na, ang data ng mensaheng email tulad ng maaaring sundin. Ang "data" na ito ay binubuo ng katawan ng email pati na rin ang mga field ng header .

Ang utos upang simulan ang estado na ginagawang tumatanggap ng server ang mensahe ay DATA . Kasunod nito ang lahat ng mga field ng header ng email message at pagkatapos ay ang katawan, parehong paggawa ng up para sa isang malaking block ng teksto (o data). Upang sabihin sa server na ang input ay tapos na ang isang tuldok sa isang linya mismo ay ginagamit (\ r \ n. \ R \ n). Kaya ipinadala ko ang aking mensahe:

DATA
354 Ipasok ang mail, magtapos na may "." sa isang linya mismo
Mensahe-ID:
Petsa: Sun, 17 Agosto 1997 18:48:15 +0200
Mula sa: Heinz Tschabitscher
Sa: Heinz Tschabitscher
Paksa: Para sa Summarize-Proust Contest

Off sa Swan's World!
.
250 SAA19153 Tinanggap ang mensahe para sa paghahatid

Oo, ito ay nangangahulugan na maaari mong sabihin ang isang pangalan na ganap na naiiba mula sa isa na napupunta sa email sa To: field. Halimbawa, maaari mong gamitin ang " listahan ng Recipient na pinigilan" .

Wakas

Maaari mo na ngayong magpadala ng maraming mga email na nais mong paulit-ulit ang mga hakbang mula sa MAIL MULA SA: sa . . Kung tapos ka na, maaari mong ihinto ang server gamit ang command na QUIT at iyan lamang ang ginagawa namin:

Quit
221 Paalam

Paano Ko Magagawa Ito?

Ang non-maliit na solusyon ay ang telnet sa iyong papalabas na mail server (maaari mong mahanap ang address nito sa mga setting ng account ng iyong email client ) sa port 25.

Ang mas madaling paraan ay ang paggamit ng Java applet na ito , na sumusubok na tularan ang SMTP protocol at gagabay sa iyo sa pamamagitan ng dialog.