SMTP Inside Out

Kako funkcioniše internet adresa e-pošte

Da li ste se ikada zapitali šta se događa kada pritisnete dugme Pošalji u programu za e-poštu? Verovatno ne, pretpostavljam - sve dok to funkcioniše. To je upravo razlog zašto bi se trebalo pitati. U slučaju da nešto ne uspeva, dobro je znati šta ne radi. Obično je to polovina rešenja.

Kada pošaljete e-poštu SMTP dolazi u igru. SMTP je kratak za Simple Mail Transfer Protocol kao što je definirano u RFC 5321: Simple Mail Transfer Protocol. Vaš klijent pošte razgovara sa SMTP serverom koristeći ovu čistu i jednostavnu proceduru da biste dobili e-poštu sa jednog mesta na drugo.

Flert

Vaš program za e-poštu postaje SMTP klijent , povezuje se sa portom 25 vašeg mail servera (obično SMTP port ) i - kaže EHLO . Računari su, na kraju, samo ljudi i ono što računa je da želi biti ljubazni. Zapravo, ne pokušava biti ljubazan, ali da kasnije dodate SMTP-u koji su doveli do dva ukusa kasnije HELO naredbe (SMTP komanda obično se sastoji od četiri karaktera).

Dva ukusa HELO-a

EHLO, budući da je noviji, server server oglašava sve dodatne funkcije (kao što je obaveštenje o statusu isporuke ili mogućnost prenosa poruka koje sadrže različite bezbedne ASCII znake) koje podržava.

Ni svaki server neće dozvoliti ovaj pozdrav, ali je neophodno prihvatiti običan HELO koji prirodno pretpostavlja da nema dodatnih funkcija. Obe komande hello zahtevaju od klijenta da odredi svoj domen nakon ** LO, međutim. U praksi, ovo izgleda nešto poput:

220 mail.domain.net ESMTP server
ZDRAVO
501 HELO zahteva adresu domene
HELO localhost
250 mail.domain.net Zdravo lokalni [127.0.0.1], drago mi je što smo se upoznali

(Moj ulaz je kurziv , izlaz servera je crn, linije koje počinju sa 5 pokazuju grešku .)

Sender

Ostatak protokola zaista zaslužuje atribut jednostavan. Ako želite poslati e-poštu, počnite sa ključnim riječima MAIL FROM:. Nakon toga dolazi adresa e-pošte pošiljaoca, kako je to predložilo. Ne zaboravite da postavite zagrade oko adrese, mada (kao što je ). Nastavak našeg primera, imamo:

MAIL OD:
250 sender@example.com ... Sender ok

Primalac

Nakon što server prihvati adresu pošiljaoca, klijent može da dâ adresu primaoca. Komanda za ovu akciju, RCPT TO: opet je prilično sugestivna. Želim da pošaljem mail sebi :

RCPT TO: recipient@example.com
250 support@lifewireguide.com ... Primalac ok (će se pojaviti u redu)

Da će server čekati samo znači: lokalno će sačuvati poštu i poslati ga zajedno sa svim ostalim redovima pošte u intervalima (na primer, svakih 30 minuta). Ovo ponašanje zavisi od konfiguracije i server može odmah isporučiti poštu.

Skoro smo gotovi. Međutim, ono što još uvek nedostaje je važan deo: stvarna poruka.

Poruka

Sada kada je "koverta" završena, podaci e-poruke kao što je to moguće mogu slijediti. Ovi "podaci" čine telo e-pošte, kao i polja zaglavlja .

Komanda za iniciranje države koja serveru prihvata poruku je DATA . Nakon toga su sva polja zaglavlja poruke e-pošte, a zatim tijelo, kako da se sastave samo za jedan veliki blok teksta (ili podataka). Da kažete serveru da je ulaz završen, upotrebljava se tačka na liniji (\ r \ n. \ R \ n). Zato šaljem svoju poruku:

DATA
354 Unesite poštu, završite sa "." na samoj liniji
Message-ID:
Datum: ned, 17 avg 1997 18:48:15 +0200
Iz: Heinz Tschabitscher
Za: Heinz Tschabitscher
Predmet: Za Summarize-Proust Contest

Off to the Swan's World!
.
250 SAA19153 Poruka prihvaćena za isporuku

Da, ovo znači da možete da navedete ime potpuno drugačije od onog u kome e-mail ide u polje To:. Na primjer, možete koristiti "Primedbe primaoca " .

Kraj

Sada možete poslati što više e-poruka kako želite ponoviti korake od MAIL FROM: to . . Ako ste završili s tim, možete napustiti server sa komandom QUIT i to je upravo ono što radimo:

QUIT
221 Zbogom

Kako mogu to da uradim?

Ne-trivijalno rešenje je telnet do vašeg servera za odlaznu poštu (možete pronaći svoju adresu u podešavanjima naloga klijenta e-pošte ) na portu 25.

Lakši je način upotrebe ovog Java apleta koji pokušava da imitira SMTP protokol i vodi vas kroz dijalog.