Vad är Simple Mail Transfer Protocol (SMTP)?
Simple Mail Transfer Protocol (SMTP) är en teknisk standard för att överföra elektronisk post (e-post) över ett nätverk. Liksom andra nätverksprotokoll möjliggör SMTP att datorer och servrar kan utbyta data oberoende av deras underliggande hårdvara eller programvara. Precis som användningen av en standardiserad form för att adressera ett kuvert möjliggör posttjänsten att fungera, standardiserar SMTP sättet e-post reser från avsändare till mottagare, vilket gör omfattande e-postleverans möjlig.
SMTP är ett leveransprotokoll för e-post, inte ett protokoll för att hämta e-post. En posttjänst levererar post till en brevlåda, men mottagaren måste fortfarande hämta posten från brevlådan. På samma sätt levererar SMTP ett e-postmeddelande till en e-postleverantörs mejlserver, men separata protokoll används för att hämta det meddelandet från mejlservern så att mottagaren kan läsa det.
Hur fungerar SMTP?
Alla nätverksprotokoll följer en fördefinierad process för att utbyta data. SMTP definierar en process för att utbyta data mellan en e-postklient och en mejlserver. En e-postklient är det användaren interagerar med: datorn eller webbapplikationen där de får åtkomst till och skickar e-postmeddelanden. En mejlserver är en specialiserad dator för att skicka, ta emot och vidarebefordra e-postmeddelanden; användare interagerar inte direkt med mejlserverar.
Här är en sammanfattning av vad som händer mellan e-postklienten och mejlservern för att ett e-postmeddelande ska börja skickas:
SMTP-anslutning öppnas: Eftersom SMTP använder Transmission Control Protocol (TCP) som sitt transportprotokoll, börjar denna första steg med en TCP-anslutning mellan klient och server. Sedan börjar e-postklienten e-postsändningsprocessen med en specialiserad ”Hello”-kommando (HELO eller EHLO, beskriven nedan).
E-postdata överförs: Klienten skickar servern en serie kommandon tillsammans med det faktiska innehållet i e-posten: e-postens rubrik (inklusive destination och ämnesrad), e-postens kropp och eventuella ytterligare komponenter.
Mail Transfer Agent (MTA): Servern körs ett program som kallas en Mail Transfer Agent (MTA). MTA kontrollerar mottagarens e-postadress domän, och om den skiljer sig från avsändarens, frågar den Domain Name System (DNS) för att hitta mottagarens IP-adress. Detta är som om ett postkontor letar upp en brevmottagares postnummer.
Anslutning stängs: Klienten meddelar servern när överföringen av data är klar, och servern stänger anslutningen. Vid detta tillfälle kommer servern inte att ta emot ytterligare e-postdata från klienten om inte klienten öppnar en ny SMTP-anslutning. Vanligtvis är den första mejlservern inte det faktiska e-postmeddelandets slutdestination. Servern, efter att ha mottagit e-post från klienten, upprepar denna SMTP-anslutningsprocess med en annan mejlserver. Den andra servern gör samma sak, tills e-postmeddelandet till sist når mottagarens inkorg på en mejlserver som kontrolleras av mottagarens e-postleverantör.
Jämför denna process med hur ett brev reser från avsändare till mottagare. En brevbärare tar inte ett brev direkt från avsändaren till dess mottagare. Istället tar brevbäraren med brevet till sitt postkontor. Postkontoret skickar brevet till ett annat postkontor i en annan stad, sedan ett annat, och så vidare tills brevet når mottagaren. På liknande sätt går e-post från server till server via SMTP tills den når mottagarens inkorg.
Vad är en SMTP-kuvert?
SMTP-”kuvertet” är uppsättningen information som e-postklienten skickar till mejlservern om var e-posten kommer ifrån och vart den ska. SMTP-kuvertet är skilt från e-postens rubrik och kropp och är inte synligt för e-postmottagaren.
Vad är SMTP-kommandon?
Vad är SMTP-kommandon? SMTP-kommandon är fördefinierade textbaserade instruktioner som talar om för en klient eller server vad de ska göra och hur de ska hantera medföljande data. Tänk på dem som knappar som klienten kan trycka på för att få servern att acceptera data korrekt.
HELO/EHLO: Dessa kommandon säger ”Hello” och inleder SMTP-anslutningen mellan klient och server. ”HELO” är den grundläggande versionen av detta kommando; ”EHLO” är för en specialiserad typ av SMTP.
MAIL FROM: Detta talar om för servern vem som skickar e-posten. Om Alice försökte skicka ett e-postmeddelande till sin vän Bob kan en klient skicka ”MAIL FROM:alice@example.com”. RCPT TO: Det här kommandot används för att lista e-postens mottagare. En klient kan skicka detta kommando flera gånger om det finns flera mottagare. I exemplet ovan skulle Alice e-postklient skicka ”RCPT TO:bob@example.com”.
DATA: Detta föregår e-postens innehåll, som:
DATA
Datum: DATA: Mån, 4 april 2022
Från: Från: Sven sven@eriksson.se
Ämne: Recept köttgryta
Till: Erika erika@svensson.se
Hej Erika,
Jag kommer att ta med receptet på köttgryta på fredag.
-Sven
RSET: Detta kommando återställer anslutningen och tar bort all tidigare överförd information utan att stänga SMTP-anslutningen. RSET används om klienten har skickat felaktig information.
QUIT: Detta avslutar anslutningen.
Vad är en SMTP-server?
En SMTP-server är en mejlserver som kan skicka och ta emot e-postmeddelanden med hjälp av SMTP-protokollet. E-postklienter ansluter direkt till e-postleverantörens SMTP-server för att börja skicka ett e-postmeddelande. Flera olika programvaror körs på en SMTP-server:
Mail Submission Agent (MSA): MSA tar emot e-postmeddelanden från e-postklienten.
Mail Transfer Agent (MTA): MTA överför e-postmeddelanden till nästa server i leveranskedjan. Som beskrivet ovan kan den fråga DNS för att hitta mottagardomänens DNS-post för mejlutbyte (MX) om det behövs.
Mail Delivery Agent (MDA): MDA tar emot e-postmeddelanden från MTA och lagrar dem i mottagarens e-postinkorg.
Vilken port använder SMTP?
I nätverk är en port den virtuella punkt där nätverksdata tas emot; tänk på den som lägenhetsnumret i adressen för ett brev. Portar hjälper datorer att sortera nätverksdata till rätt applikationer. Nätverkssäkerhetsåtgärder som brandväggar kan blockera onödiga portar för att förhindra sändning och mottagning av skadlig data.
Historiskt sett använde SMTP endast port 25. Idag används port 25 fortfarande för anslutningar mellan SMTP-servrar. Brandväggar för slutanvändarnätverk blockerar ofta denna port idag, eftersom skräppostförsök kan missbruka den för att skicka stora mängder skräppost. Port 465 var en gång avsedd för användning av SMTP med Secure Sockets Layer (SSL) -kryptering. Men SSL ersattes av Transport Layer Security (TLS), och moderna e-postsystem använder därför inte denna port. Den förekommer endast i äldre (föråldrade) system. Port 587 är nu standardporten för e-postinlämning. SMTP-kommunikation via denna port använder TLS-kryptering. Port 2525 är inte officiellt associerad med SMTP, men vissa e-posttjänster erbjuder SMTP-leverans via denna port om ovanstående portar är blockerade.
SMTP vs IMAP och POP
Internet Message Access Protocol (IMAP) och Post Office Protocol (POP) används för att leverera e-posten till dess slutliga destination. E-postklienten måste hämta e-post från den slutliga mejlservern i kedjan för att visa e-posten för användaren. Klienten använder IMAP eller POP istället för SMTP för detta ändamål.
För att förstå skillnaden mellan SMTP och IMAP/POP, tänk på skillnaden mellan en planka och ett rep. En träbit kan användas för att skjuta något framåt, men inte dra det in. Ett rep kan dra ett objekt, men inte trycka det. På liknande sätt ”trycker” SMTP e-post till en mejlserver, men IMAP och POP ”drar” den hela vägen till användarens applikation.
Vad är Extended SMTP (ESMTP)?
Extended Simple Mail Transfer Protocol (ESMTP) är en version av protokollet som utvidgar dess ursprungliga förmågor och möjliggör skickande av e-postbilagor, användning av TLS och andra funktioner. Nästan alla e-postklienter och e-posttjänster använder ESMTP, inte grundläggande SMTP.
ESMTP har några extra kommandon, inklusive ”EHLO”, ett ”utökat hej”-meddelande som möjliggör användningen av ESMTP i början av anslutningen.