Moduuli 1 · 1.5
Otsikkorivien lukeminen: mistä tämä viesti tuli?
Moduuli 1: Näin sähköposti toimii · Lukuaika: 11 minuuttia
Oppimistavoite: Tämän oppitunnin jälkeen osaat avata viestin otsikkorivit, lukea Received-rivit oikeassa järjestyksessä ja päätellä Authentication-Results-tiedoista, menivätkö SPF, DKIM ja DMARC läpi.
Keskeiset käsitteet: otsikkorivit (headers), RFC 5322, Received, Return-Path, From, Reply-To, Message-ID, DKIM-Signature (d=, s=), Authentication-Results, ARC, X-otsikkorivit, alkuperäinen viesti
Mitä et yleensä näe
Sähköpostiohjelmasi näyttää viestistä vain muutaman rivin: lähettäjä, aihe, päivämäärä, vastaanottajat. Todellisuudessa jokaisessa viestissä on kymmeniä otsikkorivejä (headers) yläosassa, ennen varsinaista tekstiä. Ne lisää lähettäjän ohjelma ja jokainen palvelin, jonka kautta viesti kulkee matkalla. Yhdessä ne muodostavat viestin matkakertomuksen.
Se, joka osaa lukea otsikkorivejä, voi vastata moniin kysymyksiin itse: onko tämä viesti todella pankistani? Miksi se saapui vasta kahden tunnin kuluttua? Miksi se on roskapostissa? Toimiiko oma DKIM:ni? Monet tämän kurssin tehtävät pyytävät sinua tarkastelemaan otsikkorivejä. Tällä oppitunnilla opit, miten se tehdään.
Otsikkorivien avaaminen
Jokaisessa ohjelmassa on oma nappinsa tätä varten:
| Ohjelma | Mistä |
|---|---|
| Gmail (verkkoversio) | Kolme pistettä viestin oikeassa reunassa, Näytä alkuperäinen |
| Outlook (uusi ja selainversio) | Kolme pistettä, Näytä, Näytä viestin tiedot |
| Outlook (klassinen) | Avaa viesti, File, Ominaisuudet, kenttä "Internet-otsikot" |
| Apple Mail (Mac) | Valikko Näytä, Viesti, Kaikki otsikot (tai Raaka lähdekoodi) |
| Thunderbird | Valikko Näytä, Viestin lähdekoodi (Ctrl+U) |
| Roundcube (webmail) | Avaa viesti, More, Näytä lähdekoodi (tai Otsikot) |
Puhelimella tämä ei yleensä onnistu. Lähetä viesti silloin liitteenä itsellesi, tai avaa se webmailissa.
Esimerkki
Jan saa viestin Annalta. Näin tärkeimmät otsikkorivit näyttävät (lyhennettynä):
Return-Path: <anna@example.com>
Delivered-To: jan@example.net
Received: from mx1.mailprovider.example (localhost [127.0.0.1])
by mailbox3.mailprovider.example with LMTP; Sun, 08 Nov 2026 10:15:09 +0100
Received: from out.hosting.example (out.hosting.example [192.0.2.25])
by mx1.mailprovider.example with ESMTPS id 4F2A1B
for <jan@example.net>; Sun, 08 Nov 2026 10:15:07 +0100
Received: from [198.51.100.77] (helo=[10.0.0.12])
by out.hosting.example with ESMTPSA (TLS1.3)
(authenticated as anna@example.com); Sun, 08 Nov 2026 10:15:04 +0100
Authentication-Results: mx1.mailprovider.example;
spf=pass smtp.mailfrom=example.com;
dkim=pass header.d=example.com header.s=x;
dmarc=pass header.from=example.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=x;
h=From:To:Subject:Date:Message-ID; bh=...; b=...
From: Anna <anna@example.com>
To: Jan <jan@example.net>
Subject: Offerte
Date: Sun, 8 Nov 2026 10:15:00 +0100
Message-ID: <a1b2c3@example.com>Received-rivit: alhaalta ylöspäin
Jokainen palvelin, joka välittää viestiä eteenpäin, lisää Received:-rivin ylimmäksi. Vanhin rivi on siis alimpana, uusin ylimpänä. Lue ne alhaalta ylöspäin seurataksesi viestin matkaa:
- Alin rivi: Annan kannettava (IP
198.51.100.77, hänen kotiliittymänsä) toimittaa viestin palvelimelleout.hosting.example, käyttäenESMTPSA:aa (A tarkoittaa authenticated: hän kirjautui sisään) ja TLS 1.3:a. Klo 10:15:04. - Keskimmäinen rivi:
out.hosting.example(192.0.2.25) toimittaa viestin palvelimellemx1.mailprovider.example, joka on example.net:n MX. Klo 10:15:07. - Ylin rivi: postipalvelin siirtää viestin sisäisesti Janin postilaatikkoon (LMTP). Klo 10:15:09.
Received-rivi on aina muotoa from <kuka tarjosi viestin> by <kuka otti sen vastaan> with <protokolla>; <aika>. Sulkujen sisällä sanan from jäljessä on se, mitä vastaanottava palvelin itse havaitsi: todellinen nimi (PTR) ja todellinen IP-osoite. Tämä osa on luotettava siinä määrin kuin luotat kyseiseen vastaanottavaan palvelimeen. Sitä, mitä lähettäjä itse ilmoitti (helo=), ei voi tarkistaa.
Kaksi käytännön kikkaa:
- Viiveen etsiminen: vertaa aikoja. Jos kahden rivin välissä on kaksi tuntia, viesti on ollut niin kauan jonossa. Huomioi aikavyöhykkeet (
+0100,+0000). - Todellisen lähettäjäpalvelimen löytäminen: etsi ylin Received-rivi, jonka on kirjoittanut vastaanottajan oma palvelin, ja katso mitä sanan
fromjäljessä lukee. Kaikki sen alapuolella on lähettävän osapuolen kirjoittamaa ja voi teoriassa olla keksittyä. Esimerkissä192.0.2.25on palvelin, joka toimitti viestin vastaanottajalle; sen perusteella arvioidaan SPF ja maine.
Osoitteet
| Otsikkorivi | Mikä se on | Kuka sen asettaa |
|---|---|---|
Return-Path | Envelope sender eli envelopin lähettäjä (MAIL FROM, oppitunti 1.2). Tänne palautuvat bounce-viestit. SPF tarkistaa tämän domeenin. | Vastaanottava palvelin, toimituksen yhteydessä |
From | Näkyvä lähettäjä. DMARC suojaa tämän domeenin. | Lähettäjä |
Reply-To | Mihin vastaus menee, jos sen pitää erota From-kentästä. | Lähettäjä |
To, Cc | Näkyvät vastaanottajat. BCC ei näy tässä. | Lähettäjä |
Delivered-To | Postilaatikko, johon viesti todella toimitettiin (hyödyllinen uudelleenohjausten yhteydessä). | Vastaanottava palvelin |
Message-ID | Viestin yksilöllinen tunnus. Hyödyllinen viestin löytämiseen lokista. | Lähettäjä |
Huijareiden tunnettu kikka: From, joka muistuttaa pankkiasi, mutta Reply-To osoittaa aivan toiseen osoitteeseen. Jos epäilet jotain, tarkista aina domeeni kentissä From ja Return-Path, sekä Authentication-Results.
Authentication-Results: vastaanottajan arvio
Vastaanottava palvelin kirjoittaa Authentication-Results-riville (RFC 8601) tarkistustensa tulokset:
spf=pass smtp.mailfrom=example.com: toimittaneen palvelimen IP löytyyReturn-Path-kentän domeenin SPF-tietueesta.dkim=pass header.d=example.com header.s=x: domeeninexample.comDKIM-allekirjoitus, avaimella (selectorilla)x, täsmää.dmarc=pass header.from=example.com:From-kentän domeeni on kohdistettu onnistuneen SPF:n tai DKIM:n kanssa, joten DMARC on hyväksytty.
Muita mahdollisia tuloksia: fail (ei täsmää), softfail (SPF päättyy merkkiin ~all eikä IP ole listalla), neutral, none (ei tietuetta), temperror (tilapäinen DNS-virhe) ja permerror (tietue on rikki, esimerkiksi kaksi SPF-tietuetta). Mitä nämä tarkalleen tarkoittavat ja miten ne korjataan, käsitellään moduulissa 4.
Huomaa: luota vain vastaanottajan omaan Authentication-Results-tietoon (nimi edessä, tässä mx1.mailprovider.example). Väärennetty viesti voi sisältää oman, keksityn Authentication-Results-rivin. Hyvät palvelimet poistavat sen, mutta eivät kaikki.
DKIM-Signature: allekirjoitus
Otsikkorivi DKIM-Signature on itse allekirjoitus. Kahta kenttää tarvitset usein:
d=allekirjoittava domeeni (tässäexample.com);s=selector, avaimen nimi (tässäx).
Niiden avulla löydät julkisen avaimen DNS:stä: x._domainkey.example.com. Tehtävissä ja ongelmatilanteissa joudut usein etsimään juuri nämä kaksi arvoa. Viestillä voi olla useita DKIM-allekirjoituksia, esimerkiksi yksi omasta domeenistasi ja yksi lähetyspalvelusta. Oppitunnilla 4.3 käsitellään tätä tarkemmin.
Joskus näet myös ARC-Seal, ARC-Message-Signature ja ARC-Authentication-Results. ARC (RFC 8617) on tapa, jolla välissä olevat asemat, kuten postituslista tai uudelleenohjauspalvelin, tallentavat mitä tarkistuksia tehtiin ennen kuin ne muuttivat viestiä. Sinun ei tarvitse osata lukea niitä vielä nyt.
X-otsikkorivit
Otsikkorivit, jotka alkavat merkeillä X-, eivät ole standardoituja. Roskapostisuodattimet laittavat niihin oman pisteytyksensä, kuten X-Spam-Status: No, score=1.2 tai X-Spam-Flag: YES. Tämä auttaa selvittämään, miksi jokin päätyi roskapostiin. Ne vaihtelevat palveluntarjoajittain.
Yhteenveto
- Otsikkorivit ovat viestin matkakertomus. Avaa ne komennolla "näytä alkuperäinen", "viestin lähdekoodi" tai vastaavalla.
- Lue Received-rivit alhaalta ylöspäin. Rivi, jonka vastaanottajan palvelin kirjoitti, kertoo mikä IP toimitti viestin.
Return-Pathon envelope sender (SPF:ää varten),Fromnäkyvä lähettäjä (DMARC:ia varten),Reply-Tokertoo mihin vastaukset menevät.Authentication-Resultsantaa arvion SPF:stä, DKIM:stä ja DMARC:sta; luota vain vastaanottavan palvelimen omaan tietoon.DKIM-Signature-rivillä ond=(domeeni) jas=(selector); yhdessä ne kertovat avaimen sijainnin:s._domainkey.d.
Tietovisa
Tehtävä
Tehtävä Z1.5: Otsikkorivien jäsennyttäminen. Lähetä itsellesi viesti eri osoitteesta (esimerkiksi työosoitteestasi henkilökohtaiseen osoitteeseesi tai toisinpäin), avaa otsikkorivit ja liitä ne lomakkeeseen. Jos sinulla ei ole toista osoitetta, käytä tehtävän mukana tulevaa esimerkkitiedostoa kopregels-1.txt. Täytä sen jälkeen itse: palvelimen IP-osoite, joka toimitti viestin vastaanottajalle, domeeni Return-Path-kentässä, DKIM-allekirjoituksen domeeni ja selector, sekä SPF:n, DKIM:n ja DMARC:n tulos. Ohjelma jäsentää samat otsikkorivit, hakee DKIM-avaimen reaaliajassa ja asettaa oman tuloksensa rinnalle omaasi verrattavaksi. Otsikkorivejäsi ei tallenneta.
Lue lisää
Näiden artikkelien vaiheet koskevat WebOkén hallintapaneeleita; muilla palveluntarjoajilla toiminta on vastaavaa.
- Sähköpostin perillemenon tarkistaminen DirectAdminin Email Tracking -toiminnolla
- DirectAdmin-ohje 9.3: E-mail Tracking: mihin sähköpostini katosi?
- Onko tämä sähköposti oikeasti WebOkélta? Tunnista tietojenkalastelu ja käytä etukoodia
- Ilmainen DNS-kurssi 4.4: DKIM: allekirjoitus sähköpostisi alla
- RFC 5322 (viestin rakenne), RFC 8601 (Authentication-Results), RFC 6376 (DKIM), RFC 8617 (ARC)
