Hoppa till innehållet

Cookieinställningar

Välj vilka typer av cookies du tillåter. Du kan alltid ändra ditt val via Cookieinställningar längst ned på varje sida. Integritetspolicy

Nödvändiga

Alltid på

Behövs för att logga in, spara din varukorg och komma ihåg dina val. De är alltid på.

Vilka cookies?
  • weboke_sessie, weboke_klant, weboke_remember: din session och att du förblir inloggad
  • weboke_basket: din varukorg
  • wkBtwIncl: visa priser med eller utan moms
  • wok_cookies: ditt cookieval, 12 månader

Mäter vilken annons som leder till ett besök eller en beställning, så att vi inte betalar för annonser som inte ger något.

Vilka cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), upp till 90 dagar
  • OpenAI Ads, annonser i ChatGPT
  • wok_aff: via vilken partner du kom till oss (affiliateprogram), 60 dagar

4,6

Land och språk

Varje land har en egen webbplats med landets priser och moms.

Visa

SMTP: samtalet mellan mailservrar

Modul 1: Hur e-post fungerar · Lästid: 10 minuter

Lärandemål: Efter den här lektionen kan du läsa ett SMTP-samtal, förklara vad EHLO, MAIL FROM, RCPT TO och DATA gör, och se på en svarskod om ett fel är tillfälligt eller permanent.

Nyckelbegrepp: SMTP (RFC 5321), session, EHLO/HELO, MAIL FROM, RCPT TO, DATA, QUIT, svarskod (2xx, 3xx, 4xx, 5xx), utökad statuskod, tillägg (STARTTLS, AUTH, SIZE), null MX

Ett samtal i vanlig text

SMTP är ett mycket gammalt protokoll (den första versionen är från 1982) och därför mycket läsbart. Två servrar skickar textrader till varandra. Avsändaren (klienten) skickar ett kommando, mottagaren (servern) svarar med ett tresiffrigt tal och en kort förklaring. Du kan läsa ett sådant samtal ordagrant i ett felmeddelande eller en loggfil, och just därför lönar det sig att förstå det.

Nedan följer ett komplett samtal. S: är den mottagande servern, C: den sändande servern. Mejlet går från anna@example.com till jan@example.net.

S: 220 mx1.mailprovider.example ESMTP ready
C: EHLO out.hosting.example
S: 250-mx1.mailprovider.example Hello out.hosting.example [192.0.2.25]
S: 250-SIZE 52428800
S: 250-8BITMIME
S: 250-STARTTLS
S: 250 SMTPUTF8
C: STARTTLS
S: 220 2.0.0 Ready to start TLS
   (härifrån är anslutningen krypterad; klienten skickar EHLO igen)
C: EHLO out.hosting.example
S: 250 ...
C: MAIL FROM:<anna@example.com> SIZE=24310
S: 250 2.1.0 Ok
C: RCPT TO:<jan@example.net>
S: 250 2.1.5 Ok
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: From: Anna <anna@example.com>
C: To: Jan <jan@example.net>
C: Subject: Offerte
C: Date: Sun, 8 Nov 2026 10:15:00 +0100
C: Message-ID: <a1b2c3@example.com>
C:
C: Hoi Jan, hierbij de offerte.
C: .
S: 250 2.0.0 Ok: queued as 4F2A1B
C: QUIT
S: 221 2.0.0 Bye

Kommandona ett efter ett

KommandoBetydelseObservera
(anslutning)Servern hälsar med 220 och sitt namn.Detta kallas bannern. Säger servern direkt 554, vill den inte alls prata med din IP-adress (ofta en blocklista).
EHLO namn"Hej, jag är out.hosting.example." Servern svarar med de tillägg den känner till.Namnet bör vara det verkliga namnet på den sändande servern, helst samma som dess PTR-post (lektion 5.1). HELO är den gamla varianten utan tillägg.
STARTTLS"Låt oss kryptera från och med nu."Endast om servern erbjuder det. Mellan servrar är detta oftast frivilligt (lektion 5.4).
MAIL FROM:<adress>Envelope sender (envelope-avsändaren): hit går felmeddelanden.Blir senare rubrikraden Return-Path. SPF kontrollerar den här adressen. En tom avsändare <> används av servrar för egna felmeddelanden, så att en bounce aldrig ger upphov till en ny bounce.
RCPT TO:<adress>Mottagaren. Kan upprepas, en gång per mottagare.Här bör servern redan säga om adressen finns. En 550 5.1.1 vid det här tillfället är ett tydligt, direkt igenkännbart fel.
DATA"Nu kommer själva mejlet." Servern svarar 354.Därefter följer rubrikraderna, en tom rad och texten. En rad med enbart en punkt avslutar.
QUITSlut på samtalet.

Den viktigaste insikten: allt före DATA är envelope, allt efter DATA är innehållet. Det som står i MAIL FROM och det som står i rubrikraden From: levereras separat och behöver inte vara desamma. Servern levererar utifrån RCPT TO; raden To: i innehållet spelar ingen roll vid leveransen.

Svarskoderna

Den första siffran i koden är den viktigaste:

Börjar medBetydelseVad gör avsändaren?
2Lyckades.Vidare till nästa steg. 250 efter DATA betyder: servern har tagit emot mejlet och är nu ansvarig för det.
3Fortsätt, jag väntar på mer.Endast vid 354 efter DATA (och vid inloggning).
4Tillfälligt fel: inte nu, försök senare.Mejlet stannar i kön och levereras igen senare.
5Permanent fel: detta kommer inte att lyckas.Avsändaren ger upp och skickar ett felmeddelande (bounce) till envelope-avsändaren.

Efter de tre siffrorna anger moderna servrar en utökad statuskod i formen class.subject.detail (RFC 3463), till exempel 5.1.1. Den första siffran är återigen 2, 4 eller 5. Den andra siffran anger vad det handlar om: 1 = adress, 2 = brevlåda, 3 = mailsystem, 4 = nätverk och routing, 5 = protokoll, 6 = innehåll, 7 = säkerhet och policy. Några du ofta ser:

550 5.1.1  The email account that you tried to reach does not exist
452 4.2.2  Mailbox full (tillfälligt)
552 5.3.4  Message size exceeds fixed limit
451 4.7.1  Greylisted, please try again later
550 5.7.1  Message rejected (policy: spam, blocklista, DMARC)

I modul 6 lär du dig läsa en fullständig bounce och hittar en tabell med de vanligaste koderna.

Varför tillfälligt och permanent är så viktigt

En server som tvekar svarar ofta med en 4xx. Ett känt exempel är greylisting: en server som ännu inte känner till en avsändare säger första gången "försök senare". En riktig mailserver kommer tillbaka efter några minuter, många spamprogram gör det inte. Även stora mottagare använder 4xx för att bromsa takten om de ännu inte litar på en IP-adress. För dig som avsändare betyder det: fördröjning, men ingen förlust. Systemet löser det oftast själv.

En 5xx är annorlunda. Där försöker avsändaren inte igen. Får du en 5xx tillbaka måste någon ändra något: adressen, innehållet, eller inställningarna för det sändande domänet.

En fallgrop: vissa servrar ger en 5xx trots att problemet är tillfälligt (till exempel vid en full brevlåda 552 5.2.2), och andra ger en 4xx för något som aldrig kommer att lyckas. Läs därför alltid texten efter koden, inte bara siffran.

Vem är ansvarig?

Efter 250 på punkten i DATA ligger ansvaret hos den mottagande servern. Lyckas den inte därefter lägga mejlet i brevlådan, måste den själv skicka tillbaka ett felmeddelande. Det är källan till ett besvärligt fenomen: backscatter. En server som först tar emot allt och sedan senare kommer på att adressen inte finns, skickar en bounce till envelope-avsändaren. Var den förfalskad av en spammare, får en oskyldig tredje part bouncen. Därför bör servrar redan vid RCPT TO avvisa det som inte går (se även catch-all i lektion 3.3).

I praktiken: se SMTP i din egen miljö

En vanlig användare ser sällan hela SMTP-samtalet, men väl i delar:

  • i en bounce står den sista raden av samtalet, till exempel Remote-MTA: mx1.mailprovider.example och Diagnostic-Code: smtp; 550 5.1.1 ...;
  • i rubrikraderna för ett mottaget mejl står per server en Received:-rad med EHLO-namnet och IP-adressen (lektion 1.5);
  • i en panel med maillogg, som E-postspårning i DirectAdmin hos WebOké, ser du per meddelande svaret från den mottagande servern. Hos andra leverantörer kallas något liknande till exempel meddelandespårning eller mail log, och innehållet är jämförbart.

Du behöver alltså inte själv ansluta till en mailserver för att kunna läsa detta. Den som vill testa: med openssl s_client -starttls smtp -connect server:25 kan du föra samtalet för hand, men många hemleverantörer blockerar utgående trafik på port 25 (lektion 1.4).

Sammanfattning

  • SMTP är ett läsbart samtal: EHLO, (STARTTLS), MAIL FROM, RCPT TO, DATA, QUIT.
  • Allt före DATA är envelope (leverans och felmeddelanden), allt efter är innehållet med de rubrikrader du ser.
  • 2xx = lyckades, 4xx = tillfälligt (försök igen senare), 5xx = permanent (bounce).
  • Den utökade koden X.Y.Z berättar vad det handlar om; X.1 adress, X.2 brevlåda, X.7 policy och säkerhet.
  • Läs alltid texten efter koden; servrar är inte alltid konsekventa.

Quiz

1. Vilket kommando innehåller adressen dit ett felmeddelande skickas?



2. En server svarar 451 4.7.1 Greylisted, please try again later. Vad gör en bra sändande server?



3. I vilken del av samtalet står rubrikraden Subject:?



4. Vad berättar den andra siffran i 550 5.1.1?



5. Varför är det bättre att en server redan vid RCPT TO avvisar en adress som inte finns, i stället för att först ta emot mejlet?



Uppgift

Uppgift Z1.2: En domän som inte tar emot mail. Slå upp MX-posterna för example.com. Fyll i vad du hittar och välj vad en sändande server gör med mejl till info@example.com: (a) levererar till servern med prioritet 0, (b) försöker med A-posten, (c) ger upp direkt, eller (d) försöker igen senare. Programmet slår upp MX-posten live och kontrollerar svaret.

Uppgift Z1.2: En domän som inte tar emot mail

Slå upp MX-posterna för example.com och välj vad en avsändande server gör med mail till info@example.com.



Det du fyller i och det vi hittar sparar vi inte. Din webbläsare kommer ihåg dina svar och om du klarade uppgiften. Är du inloggad sparar vi bara att du klarade uppgiften (nästan) i Mina kurser; där kan du också ta bort det.

Läs mer

Stegen i dessa artiklar gäller för panelerna hos WebOké; hos andra leverantörer fungerar det på liknande sätt.

Ett ögonblick…

Ställ in dina domäner

Ställ in namnservrar, koppling till ditt webbhotell och vem som blir innehavare för varje domän.

Hämtar dina domäner…