selitetty.com

Sähköposti ja verkkotunnukset

Miten sähköposti toimii: viestin matka lähettäjältä perille

Sähköposti ei ole yksi järjestelmä vaan ketju itsenäisiä palvelimia. Kun ymmärrät ketjun, ymmärrät myös miksi viesti voi viipyä tunteja ja miksi lähettäjäkenttään saa kirjoittaa mitä tahansa.

Lyhyt vastaus

Sähköpostissa on kaksi erillistä työtä, joita hoitavat eri protokollat. Lähetys ja palvelimien välinen siirto kulkevat SMTP:llä, ja valmiin viestin nouto postilaatikosta tapahtuu IMAP:lla tai POP:lla. Viesti ei siirry laitteelta laitteelle, vaan se luovutetaan lähettäjän palvelimelle, joka etsii nimipalvelusta vastaanottajan verkkotunnuksen postipalvelimen ja tarjoaa viestiä sille. Vastaanottaja näkee viestin vasta silloin, kun hänen ohjelmansa hakee sen palvelimelta.

Sisällys
  1. Lähetys ja nouto ovat kaksi eri työtä
  2. Viestin matka vaihe vaiheelta
  3. Miksi ketjussa on useampi palvelin kuin luulisi
  4. IMAP vai POP: mitä ero tarkoittaa laitteillesi
  5. Miksi viesti viipyy: jonot ja uudelleenyritykset
  6. Mitä otsikkotiedot paljastavat
  7. Salaus siirrossa ja sen rajat
  8. Mitä tästä kannattaa ottaa käyttöön
  9. Usein kysytyt kysymykset
  10. Lähteet ja lisälukemista

Kun painat lähetä-painiketta, viesti ei siirry vastaanottajalle. Se siirtyy oman sähköpostipalvelusi palvelimelle, joka ottaa vastuun toimituksesta eteenpäin. Vastaanottajakaan ei saa viestiä suoraan: sen ottaa vastaan hänen palvelunsa palvelin, ja vastaanottaja noutaa viestin sieltä silloin kun avaa sähköpostiohjelmansa.

Tavallinen käsitys on, että sähköposti kuljettaa viestin päästä päähän kuten pikaviestisovellus. Todellisuudessa kyse on ketjusta itsenäisiä palvelimia, jotka eivät ole toistensa hallinnassa eivätkä lähtökohtaisesti luota toisiinsa. Ketju selittää sekä viiveet että sen, miksi väärennetty lähettäjäosoite on niin helppo tehdä.

Tässä artikkelissa käydään läpi lähetyksen ja noudon työnjako, viestin matka vaihe vaiheelta, IMAP:n ja POP:n ero laitteiden kannalta, otsikkotietojen lukeminen ja salauksen rajat.

Lähetys ja nouto ovat kaksi eri työtä

Sähköpostissa on kaksi täysin erillistä tehtävää, ja niitä hoitavat eri protokollat. Tämä on koko järjestelmän tärkein rakenteellinen piirre.

SMTP (Simple Mail Transfer Protocol) on siirtoprotokolla. Se työntää viestiä eteenpäin: ohjelmastasi omalle palvelimellesi ja sieltä vastaanottajan palvelimelle. SMTP ei osaa näyttää postilaatikkoa eikä hakea vanhoja viestejä. Se osaa vain toimittaa.

IMAP ja POP ovat noutoprotokollia. Ne toimivat toiseen suuntaan: sähköpostiohjelmasi ottaa yhteyden palvelimeen ja pyytää nähdä, mitä postilaatikossa on. Kumpikaan ei osaa lähettää mitään.

Jos lähettäminen toimii mutta viestit eivät tule perille, vika on eri paikassa kuin jos viestit näkyvät mutta lähetys ei onnistu. Kyse on kahdesta eri yhteydestä samaan palveluun.

Tämä työnjako näkyy heti, kun asennat sähköpostiohjelman käsin. Asetuksissa on erikseen saapuvan postin palvelin ja lähtevän postin palvelin, molemmille oma osoite ja oma portti. Ne ovat eri palveluita, vaikka sama yritys ne tarjoaisi.

Selaimessa käytettävä sähköposti piilottaa tämän jaon näkyvistä. Selain puhuu palvelun omalle verkkosivustolle tavallisella verkkoyhteydellä, ja palvelin hoitaa sekä lähetyksen että postilaatikon esittämisen sen takana. Protokollat ovat silti samat, ja ne tulevat näkyviin heti, kun otat saman tilin käyttöön puhelimen sähköpostisovelluksessa.

Protokolla Tehtävä Kuka ottaa yhteyden
SMTP Viestin jättäminen omalle palvelimelle ja siirto palvelimelta toiselle Sähköpostiohjelma tai lähettävä palvelin
IMAP Postilaatikon selaaminen ja viestien luku palvelimelta Sähköpostiohjelma
POP Viestien lataaminen palvelimelta laitteelle Sähköpostiohjelma

Viestin matka vaihe vaiheelta

Näin viesti kulkee, kun lähetät sen tavallisesta sähköpostiohjelmasta tai selaimesta.

  1. Ohjelma luovuttaa viestin omalle palvelimellesi. Ohjelma tunnistautuu tunnuksillasi ja antaa viestin lähetyspalvelimelle. Tämä vaihe vaatii aina kirjautumisen, koska palvelin ei suostu lähettämään postia kenen tahansa puolesta.
  2. Palvelin selvittää, minne viesti pitää viedä. Osoitteen @-merkin jälkeinen osa on verkkotunnus. Palvelin kysyy nimipalvelusta tuon verkkotunnuksen MX-tietuetta, joka kertoo, mikä kone ottaa vastaan verkkotunnuksen postin.
  3. Lähettävä palvelin ottaa yhteyden vastaanottavaan palvelimeen. Se ilmoittaa ensin kirjekuoren lähettäjän ja vastaanottajan ja tarjoaa vasta sitten itse viestiä.
  4. Vastaanottava palvelin tekee päätöksen. Se voi ottaa viestin vastaan, hylätä sen pysyvästi tai vastata että kokeile myöhemmin uudelleen. Tässä vaiheessa tehdään myös lähettäjän tarkistukset ja ensimmäinen arvio siitä, onko viesti ei-toivottua.
  5. Viesti lajitellaan postilaatikkoon. Vasta nyt ratkeaa, päätyykö se saapuneisiin, roskapostikansioon vai karanteeniin.
  6. Vastaanottaja noutaa viestin. Sähköpostiohjelma tai selainkäyttöliittymä hakee viestin palvelimelta, ja se ilmestyy ruudulle.

Vaiheet 1 ja 6 tapahtuvat ihmisen aikataululla. Vaiheet 2 - 5 tapahtuvat yleensä sekunneissa, mutta niissä ei ole mitään takuuta nopeudesta.

Huomaa, mitä ketjussa ei tapahdu. Laitteesi ei ota missään vaiheessa yhteyttä vastaanottajan laitteeseen. Vastaanottajan palvelin ei myöskään ilmoita sinulle onnistumisesta. Sähköposti on suunniteltu toimimaan silloinkin, kun toinen osapuoli on tavoittamattomissa vuorokausia, ja tämä valinta maksaa juuri sen, että varmuutta perillemenosta ei ole.

Miksi ketjussa on useampi palvelin kuin luulisi

Yksinkertaisimmillaan palvelimia on kaksi: lähettäjän ja vastaanottajan. Käytännössä niitä on usein enemmän.

Suuremmissa organisaatioissa posti kulkee ensin roskapostin ja haittaohjelmien suodatuspalvelun kautta, joka on oma palvelimensa ja usein eri yrityksen ylläpitämä. Sen jälkeen viesti siirtyy varsinaiselle postipalvelimelle. Postituslistat ja edelleenohjaukset lisäävät ketjuun vielä yhden askeleen: viesti otetaan vastaan yhdessä osoitteessa ja lähetetään uudestaan toiseen.

Jokainen askel on itsenäinen päätöksentekijä. Kukaan ketjussa ei ole velvollinen ottamaan viestiä vastaan, ja jokainen voi merkitä sen roskapostiksi. Tämä on syy siihen, miksi viesti voi kadota näkyvistä ilman että kukaan valehtelee: viesti otettiin vastaan, mutta lajiteltiin toiseen kansioon.

IMAP vai POP: mitä ero tarkoittaa laitteillesi

Molemmat noutavat viestejä, mutta ne suhtautuvat eri tavalla siihen, missä viestit oikeasti asuvat. Ero näkyy heti, kun käytät sähköpostia useammalla laitteella.

Kysymys IMAP POP
Missä viestit säilytetään Palvelimella, laite näyttää kopion Ladataan laitteelle, usein poistetaan palvelimelta
Usean laitteen näkymä Sama kaikilla laitteilla Jokainen laite näkee vain omat latauksensa
Luetuksi merkintä ja kansiot Synkronoituvat kaikkialle Jäävät siihen laitteeseen
Jos laite hajoaa Viestit ovat tallessa palvelimella Viestit menevät, jos varmuuskopiota ei ole
Palvelintilan kulutus Kaikki viestit vievät kiintiötä Voi vapauttaa tilaa palvelimelta

Käytännön suositus on selvä: valitse IMAP, ellei sinulla ole erityistä syytä muuhun. Nykyinen sähköpostin käyttö tapahtuu puhelimella, kannettavalla ja usein vielä työkoneella, ja POP tekee siitä sekavaa.

POP:lla on silti oma paikkansa. Jos haluat siirtää postin pois palvelusta yhdelle koneelle arkistoitavaksi tai palvelun tallennustila on loppumassa, POP tekee juuri sen mitä lupaa. Kun vaihdat palvelua kokonaan, kannattaa lukea erikseen sähköpostin siirtämisestä, koska protokollan valinta on siinä vain yksi kysymys.

Miksi viesti viipyy: jonot ja uudelleenyritykset

Sähköposti on suunniteltu kestämään katkoksia. Jos vastaanottava palvelin ei vastaa tai vastaa että se on kiireinen, lähettävä palvelin ei luovuta. Se laittaa viestin jonoon ja yrittää uudelleen.

Virheisiin on kaksi eri luokkaa, ja ero on lukijalle tärkeä:

  • Tilapäinen virhe. Vastaanottaja pyytää yrittämään myöhemmin. Viesti jää jonoon ja lähtee uudelleen tietyin välein. Yritykset jatkuvat tyypillisesti useiden tuntien tai muutaman vuorokauden ajan palvelimen asetusten mukaan.
  • Pysyvä virhe. Vastaanottaja kertoo, ettei ota viestiä vastaan lainkaan, esimerkiksi koska osoitetta ei ole olemassa. Lähettävä palvelin lopettaa yrittämisen ja lähettää sinulle palautusviestin.

Yleinen syy tunnin viiveeseen on tarkoituksellinen hidastus, jossa vastaanottava palvelin torjuu ensimmäisen yrityksen tilapäisellä virheellä ja hyväksyy vasta toisen. Oikea postipalvelin yrittää uudelleen automaattisesti, kun taas moni roskapostia lähettävä ohjelma ei vaivaudu. Menetelmä maksaa vähän ja karsii yllättävän paljon.

Toinen tyypillinen viiveen lähde on jono lähettävässä päässä. Jos lähetät saman viestin suurelle joukolle tai liität siihen ison tiedoston, oma palvelimesi voi hidastaa lähtevää liikennettä tarkoituksella. Vastaanottavat palvelimet rajoittavat myös sitä, kuinka monta viestiä yksi lähettäjä saa toimittaa lyhyessä ajassa, koska rajoittamaton nopeus olisi roskapostittajan unelma.

Kun viesti ei näytä menneen perille, kannattaa lukea palautusviesti kokonaan. Siinä on lähes aina vastaanottavan palvelimen oma selitys sekä lyhyt virhekoodi, jonka ensimmäinen numero kertoo, oliko kyse tilapäisestä vai pysyvästä esteestä.

Mitä otsikkotiedot paljastavat

Jokaisen viestin mukana kulkee joukko otsikkokenttiä, joita ohjelma ei oletuksena näytä. Ne ovat viestin metatietoa: tieto viestistä eikä itse asiasisältöä. Ne saa esiin lähes jokaisessa sähköpostiohjelmassa toiminnolla, jonka nimi on jotain sen tapaista kuin näytä alkuperäinen tai näytä lähde.

Kenttä Mitä se kertoo
Received Jokainen viestin käsitellyt palvelin lisää oman rivinsä. Uusin rivi on ylimpänä, joten ketju luetaan alhaalta ylös.
From Lähettäjä sellaisena kuin se näytetään. Lähettäjä kirjoittaa sen itse.
Return-Path Kirjekuoren lähettäjä eli osoite, johon palautusviestit menevät. Voi olla eri kuin From.
Reply-To Osoite, johon vastauksesi ohjautuu. Kannattaa vilkaista ennen kuin vastaat rahaa koskevaan viestiin.
Message-ID Viestin yksilöivä tunniste, jolla ketjut yhdistetään toisiinsa.
Authentication-Results Vastaanottavan palvelimen kirjaus siitä, miten lähettäjän tarkistukset menivät.

Kaksi asiaa kannattaa painaa mieleen. Ensinnäkin From-kenttä on pelkkää tekstiä, jonka lähettävä ohjelma kirjoittaa. Se on sama ilmiö kuin lähettäjätiedon väärentäminen puheluissa: näkyvä nimi ei ole todiste. Toiseksi Received-rivit ovat ainoa kohta, jossa näet ketjun todelliset IP-osoitteet ja palvelinnimet, mutta niistäkin luotettavia ovat vain ne rivit, jotka oman palvelusi palvelimet ovat lisänneet.

Siksi lähettäjän aitoutta ei arvioida silmämääräisesti vaan tarkistusten avulla. Ne käsitellään omassa artikkelissaan SPF:stä, DKIM:stä ja DMARC:sta, ja niiden tulos näkyy juuri Authentication-Results-kentässä.

Salaus siirrossa ja sen rajat

Nykyään lähes kaikki sähköpostiliikenne salataan siirron ajaksi. Sähköpostiohjelman ja palvelimen välinen yhteys on salattu, ja palvelinten välinen SMTP-yhteys nostetaan salatuksi erillisellä komennolla ennen viestin lähettämistä. Salauksen käytännöt ovat samat kuin verkkosivujen suojatussa yhteydessä: osapuolet sopivat salauksesta kättelyssä ja palvelin todistaa henkilöllisyytensä varmenteella.

Rajoitus on tärkeä ymmärtää. Salaus koskee yhtä siirtoväliä kerrallaan. Jokaisessa palvelimessa viesti puretaan, käsitellään ja salataan uudelleen seuraavaa väliä varten. Postipalvelimesi näkee viestiesi sisällön, samoin vastaanottajan palvelin ja jokainen suodatuspalvelu välissä.

Palvelinten välinen salaus on lisäksi perinteisesti ollut valinnaista: jos vastaanottava palvelin ei tarjoa salausta, viesti lähtee silti. Tähän on kehitetty menettelyjä, joilla verkkotunnus voi ilmoittaa vaativansa salattua yhteyttä, mutta ne ovat käytössä vaihtelevasti eikä lähettäjä voi luottaa niiden olemassaoloon.

Jos viestin sisällön pitää pysyä salassa myös palveluntarjoajilta, tarvitaan päästä päähän -salausta tai kokonaan toinen kanava. Sähköpostin oletustoiminta ei ole sellainen, ja se on rakenteellinen ominaisuus, ei asetusvirhe.

Salaus ei myöskään peitä sitä, kuka viestii kenelle ja milloin. Kirjekuoritiedot, otsikkokentät ja aikaleimat ovat välttämättömiä toimitukselle, joten ne ovat aina ketjun palvelinten nähtävissä. Viestin sisällön salaaminen ei siis muuta sitä, että liikenteestä syntyy tunnistettavaa jälkeä.

Mitä tästä kannattaa ottaa käyttöön

Käy nämä läpi omalla tililläsi, niin suurin osa arjen sähköpostiongelmista joko poistuu tai muuttuu ymmärrettäviksi.

  1. Varmista, että käytät IMAP:ia, jos luet postia useammalla kuin yhdellä laitteella. Tarkista asetus jokaisesta laitteesta erikseen, koska vanha POP-asetus jää helposti yhteen koneeseen.
  2. Opettele avaamaan otsikkotiedot omassa ohjelmassasi kerran rauhassa. Kun joskus tarvitset niitä, tilanne on yleensä kiireinen.
  3. Lue palautusviesti loppuun asti ennen kuin lähetät viestin uudelleen. Pysyvä virhe ei korjaannu uudelleenlähetyksellä.
  4. Älä oleta viestin olevan perillä vain siksi, että se on lähetetyt-kansiossa. Se kertoo vain, että oma palvelimesi otti viestin vastaan.
  5. Pidä sisältö sellaisena, että kestäisi sen näkymisen useammalle palveluntarjoajalle. Salaisuudet kuuluvat kanavaan, joka on suunniteltu niitä varten.

Kun tämä ketju on selvä, kaksi seuraavaa kysymystä ovat luontevia: miten vastaanottaja voi ylipäätään tietää, kuka viestin lähetti, ja millä perusteella osa viesteistä päätyy roskapostiin. Molemmat käsitellään tämän kokonaisuuden omissa artikkeleissa.

Usein kysytyt kysymykset

Miksi lähettämäni viesti tuli perille vasta tunnin päästä?

Todennäköisin syy on vastaanottavan palvelimen tarkoituksellinen hidastus, jossa ensimmäinen toimitusyritys torjutaan tilapäisellä virheellä. Lähettävä palvelin yrittää automaattisesti uudelleen, mutta odotusaika voi olla kymmeniä minuutteja. Toinen tavallinen syy on jono vastaanottavassa päässä.

Kumpi kannattaa valita, IMAP vai POP?

IMAP lähes aina. Se pitää viestit palvelimella, jolloin kaikki laitteesi näyttävät saman postilaatikon ja luetuksi merkinnät synkronoituvat. POP kannattaa vain, jos haluat tarkoituksella siirtää viestit yhdelle koneelle ja vapauttaa tilaa palvelimelta.

Näkeekö sähköpostipalveluni viestieni sisällön?

Kyllä. Sähköpostin salaus suojaa viestin siirtoväleillä, mutta jokaisessa palvelimessa viesti puretaan käsittelyä varten. Palveluntarjoajasi ja vastaanottajan palveluntarjoaja näkevät sisällön, ellei viestiä ole erikseen salattu päästä päähän.

Voiko lähettäjäosoitteen väärentää?

Näkyvän From-kentän voi kirjoittaa vapaasti, joten pelkkä osoite ei todista mitään. Siksi vastaanottavat palvelimet tekevät erilliset tarkistukset lähettävän palvelimen oikeudesta käyttää verkkotunnusta, ja tulos kirjataan viestin otsikkotietoihin.

Mistä tiedän, menikö viesti perille vai ei?

Varma tieto on vain palautusviesti, joka kertoo epäonnistumisesta. Lähetetyt-kansio kertoo ainoastaan, että oma palvelimesi otti viestin vastaan. Onnistuneesta toimituksesta ei tule automaattista kuittausta, ja lukukuittaus edellyttää vastaanottajan hyväksyntää.

Mikä on MX-tietue ja tarvitseeko tavallisen käyttäjän tietää siitä?

MX-tietue on verkkotunnuksen nimipalvelutieto, joka kertoo mikä palvelin ottaa vastaan tuon verkkotunnuksen sähköpostin. Tavallisen käyttäjän ei tarvitse koskea siihen, mutta oman verkkotunnuksen haltijalle se on se asetus, joka ohjaa postin oikeaan palveluun.

Voiko sähköpostin lähettää, vaikka vastaanottaja ei ole verkossa?

Kyllä, ja se on koko järjestelmän perusidea. Viesti toimitetaan vastaanottajan palvelimelle, joka säilyttää sen postilaatikossa. Vastaanottajan laite hakee viestin vasta kun se seuraavan kerran ottaa yhteyden.

Takaisin ylös