SMTP Inside Out

Miten internet-sähköposti toimii

Oletko koskaan miettinyt, mitä tapahtuu, kun painat Lähetä- painiketta sähköpostiohjelmassasi? Luultavasti ei - niin kauan kuin se toimii. Juuri tästä syystä sinun pitäisi ihmetellä. Jos jotain ei toimi, on hyvä tietää, mikä ei toimi. Yleensä se on puolet ratkaisusta.

Kun lähetät sähköpostia, SMTP tulee esiin. SMTP on lyhyt Simple Mail Transfer -protokollalle, kuten on määritelty RFC 5321: ssä Simple Mail Transfer Protocol. Sähköpostiasiakkaasi puhuu SMTP-palvelimelle käyttäen tätä puhdasta ja yksinkertaista menettelytapaa sähköpostin saamiseksi paikasta toiseen.

Flirtti

Sähköpostiohjelmasi tulee SMTP-asiakas , joka yhdistää sähköpostipalvelimesi porttiin 25 (yleensä SMTP-porttiin ) ja - sanoo EHLO . Tietokoneet loppujen lopuksi ovat vain ihmisiä, ja se, mitä on, on se, että se haluaa olla kohtelias. Itse asiassa se ei yritä olla kohtelias vaan käyttää myöhemmät lisäykset SMTP: hen, jotka ovat tuottaneet kaksi myöhemmän HELO- komennon makua (SMTP-komento koostuu yleensä neljästä merkistä).

Kaksi HELOn makua

EHLO, joka on viimeaikainen, tekee palvelimesta mainontaa kaikki lisäominaisuudet (kuten toimituksen tilailmoitus tai kyky kuljettaa viestejä, jotka sisältävät muita kuin turvallisia ASCII-merkkejä).

Kaikki palvelimet eivät salli tämän tervehdyksen, mutta sen on hyväksyttävä tavallinen HELO, joka luonnollisesti olettaa, ettei lisäominaisuuksia ole. Molemmat hello-komennot edellyttävät, että asiakas määrittää verkkotunnuksensa ** LO: n jälkeen. Käytännössä tämä näyttää jotain:

220 mail.domain.net ESMTP-palvelin
HELO
501 HELO vaatii verkkotunnuksen osoitteen
HELO localhost
250 mail.domain.net Hei localhost [127.0.0.1], tyytyväinen tavata

(Oma syöttö on kursiivilla , palvelimien tulostus on musta, rivit, jotka alkavat 5: llä, osoittavat virheen .)

Lähettäjä

Loput protokollasta todella ansaitsevat attribuutin yksinkertaiseksi. Jos haluat lähettää sähköpostia, aloitat avainsanalla MAIL FROM:. Tämän jälkeen lähettäjän sähköpostiosoite on lähettäjän ehdottaman mukaan. Älä kuitenkaan unohda laittaa sulkeita osoitteen ympärille, vaikka (kuten ). Jatkamalla esimerkkiä meillä on:

MAIL FROM:
250 sender@example.com ... Lähettäjä ok

Vastaanottaja

Kun palvelin on hyväksynyt lähettäjän osoitteen, asiakas voi antaa vastaanottajan osoitteen. Tämän toiminnon käsky, RCPT TO: uudelleen on melko viitteellinen. Haluan lähettää postia itselleni :

RCPT TO: vastaanottaja@esimerkki.fi
250 support@lifewireguide.com ... Vastaanottaja ok (tulee jonoon)

Se, että palvelin on jonossa, merkitsee vain sitä: se tallentaa postin paikallisesti ja lähettää sen yhdessä kaikkien muiden jonossa olevien viestien kanssa välein (esimerkiksi 30 minuutin välein). Tämä käyttäytyminen riippuu konfiguroinnista ja palvelin voi myös toimittaa postin välittömästi.

Olemme melkein valmiit. Mikä vielä puuttuu, on tärkeä osa: todellinen viesti.

Viesti

Nyt kun "kirjekuori" on valmis, sähköpostiviestin tiedot kuten se voi olla. Tämä "tieto" koostuu sähköpostin kehosta sekä otsikkokentistä .

Komento käynnistää tila, joka tekee palvelimen hyväksyvän viestin, on DATA . Tämän jälkeen kaikki sähköpostiviestin otsikkokentät ja sitten keho, molemmat muodostavat vain yhden suuren tekstin (tai datan) lohkon. Jos haluat kertoa palvelimelle, että tulo on päättynyt, käytetään pisteen linjaa itseäsi (\ r \ n. \ R \ n). Joten lähetän viestini:

DATA
354 Anna posti, lopeta "." linjalla itsessään
Viestin tunnus:
Päivämäärä: Sun, 17 Aug 1997 18:48:15 +0200
Lähettäjä: Heinz Tschabitscher
Lähettäjä: Heinz Tschabitscher
Aihe: Summarize-Proust-kilpailu

Swanin maailmaan!
.
250 SAA19153 Viesti hyväksytään toimitettavaksi

Kyllä, tämä tarkoittaa, että voit ilmoittaa nimen, joka poikkeaa täysin siitä, mihin sähköpostiosoite menee To: -kenttään. Voit esimerkiksi käyttää " Vastaanottajaluettelo tukahdutettu" .

Loppu

Voit nyt lähettää niin monta sähköposteja kuin haluat toistaa vaiheet MAIL FROM: - kohdasta . . Jos olet valmis siihen, voit lopettaa palvelimen QUIT- komennolla ja juuri se mitä me teemme:

LOPETTAA
221 Hyvästi

Miten voin tehdä tämän?

Ei-triviaali ratkaisu on telnet lähtevän postin palvelimelle (osoite löytyy sähköpostiohjelmasi tilin asetuksista ) portissa 25.

Helpompi tapa on käyttää tätä Java-applettia , joka yrittää jäljitellä SMTP-protokollaa ja opastaa sinut valintaikkunaan.