Artikelen

Simple Mail Transfer Protocol (SMTP)

Een introductie tot e-mailcommunicatie

Vrijwel alle e-mails in de wereld worden verzonden via het SMTP protocol. Dit Simple Mail Transfer Protocol zorgt ervoor dat alle mailservers dezelfde taal spreken en elkaar begrijpen bij het overbrengen van berichten. Wanneer je met Flowmailer aan de slag gaat, verstuur je je e-mails ook via ditzelfde (geautoriseerde) protocol. SMTP stelt je dus in staat om de e-mail die jij opmaakt aan te laten komen zoals jij dat wilt. In dit artikel leggen we je uit hoe dat werkt.

Wat is SMTP?

SMTP (Simple Mail Transfer Protocol) is een relatief simpel, tekstgebaseerd protocol om e-mails te kunnen verzenden. Door eerst de afzender van het bericht te specificeren, gevolgd door de ontvanger(s), verzendgegevens en inhoud van een bericht, weet de e-mailclient wat het moet doen.

Geschiedenis van e-mailcommunicatie

E-mail bestaat relatief kort, maar in de beginjaren van deze vorm van communicatie, werd gebruik gemaakt van het zogeheten Unix to Unix Copy protocol (UUCP). Het is dus niet altijd zo geweest dat e-mail gebruik maakte van SMTP voor overdracht van berichten. Echter werd UUCP al snel (in de jaren '80) vervangen door het protocol dat we nu kennen. Hoewel SMTP niet de enige manier is om e-mails te versturen, is het wel de de facto-standaard voor e-mailcommunicatie.

Één taal voor alle e-mails

Dat SMTP de standaard is, zorgt ervoor dat vrijwel alle mailservers elkaar begrijpen. Hierdoor kun je er als verzender vanuit gaan dat een e-mail die je naar een Nederlandse klant stuurt op dezelfde manier aankomt als een e-mail die je naar de VS stuurt. Dat doet SMTP niet in z'n eentje. SMTP is namelijk een protocol dat er vanuit gaat dat de ontvanger ervan áltijd online is. Aangezien je meeste klanten dat waarschijnlijk niet 24/7 zijn en hun inbox dus ook niet, zorgt POP3 of IMAP ervoor dat de e-mail bij de provider (Gmail, Outlook, etc.) opgehaald kan worden. Bij SMTP upload je dus als het ware jouw e-mail, die vervolgens via POP3 of IMAP door de ontvanger 'gedownload' wordt.

Technische werking van SMTP

SMTP is een protocol dat werkt volgens een client-servermodel. Het komt er op neer dat de client (C) het initiatief neemt tot communicatie met de server (S), die op zijn altijd beschikbaar en reactief is. De client is dus de verzendende partij en de server de ontvangende. De communicatie tussen die twee ziet er als volgt uit.

Begroeting

Er wordt als het ware eerste een digitale handdruk gedaan. Stel je wilt een e-mail afleveren bij een klant die Gmail gebruikt. De client gaat verbinding maken met smtp.gmail.com en het volgende gebeurt:

Na het aangaan van de verbinding via telnet (telnet smtp.gmail.com 587), opent de server (S) met:

S < 220 smtp.gmail.com ESMTP

De client moet nu reageren met HELO (hello), die weer wordt beantwoord door de server:

C > HELO flowmailer.net
S < 250 Hello

Vervolgens stelt de client zich voor, door te vertellen van wie het bericht afkomstig is. De server checkt of die afzender OK is.

C > MAIL FROM: voorbeeld@jouwbedrijf.nl
S < 250 Ok

Nu de server de afzender heeft goedgekeurd, mag de client vertellen aan wie de e-mail gericht is. Ook hier geeft de server weer goedkeuring voor.

C > RCPT TO: jouwklant@gmail.com
S < 250 Ok

De data

Nu de server de client kent, mag de client data gaan delen. Die data wordt gevormd door de onderwerpregel, de afzender, de ontvanger en de inhoud van het bericht. Dat ziet er ongeveer zo uit:

C > DATA
S < 354 Enter message, finish with '.' on a line by itself
C > SUBJECT: Dit is de onderwerpregel van je e-mail
C > From: voorbeeld@jouwbedrijf.nl
C > To: jouwklant@gmail.com
C >
C > Inhoud van de e-mail
C > .

Afsluiten en beëindigen SMTP connectie

Nu de data overgedragen is aan de server, zit de taak van de client erop. Na het ontvangen van een 250 OK respons van de server wordt de verbinding verbroken en de e-mail in de wachtrij geplaatst om afgeleverd te worden.

Post en SMTP

In het voorbeeld hierboven merk je dat er twee verschillende afzenders en geadresseerden staan
(MAIL FROM & RCPT TO, From & To). Hierdoor kun je de SMTP connectie vergelijken met reguliere post: De postbode ziet alleen de envelop waarop mail from en rcpt to staan, terwijl de geadresseerde de brief leest, waarop From en To staan. De postbode (de ontvangende mailserver) ziet de inhoud van de brief niet.

Beperkingen SMTP

In de basis is SMTP een tamelijk onveilig en spamgevoelig protocol. Zoals in de SMTP connectie hierboven wellicht al opgevallen is, wordt er bijvoorbeeld twee keer een afzender genoemd. Één tijdens het voorstellen en één bij de dataoverdracht. De eerste (MAIL FROM:, daar worden ook bounces naar teruggekoppeld) is alleen bij de server bekend, maar kan in beginsel vervalst worden. Stel je je namelijk voor als voorbeeld@microsoft.com, dan gelooft de server dat jij van Microsoft bent. Omdat de server kijkt naar reputatie van dit domein, kun je zo dus profiteren van de situatie. Gelukkig is daar al redelijk snel een oplossing voor gekomen.

SPF & DKIM

Het MAIL FROM-adres is (tegenwoordig en optioneel) beveiligd met het Sender Policy Framework (SPF). Die zorgt ervoor dat e-mail niet meer ongeoorloofd kan worden aangeboden uit naam van bijvoorbeeld Microsoft. Omdat bij het controleren van een domein tijdens de SMTP sessie al gekeken wordt naar de DNS instellingen en SPF een DNS record ís, kan deze beveiligingscheck gemakkelijk tijdens de connectie worden uitgevoerd.

Dat brengt ons echter wel bij het volgende probleem: in beginsel is ook de From-header niet beveiligd. Zo kan dus, ongeacht SPF, alsnog worden gesjoemeld met domeinnamen. Je biedt een e-mail aan met MAIL FROM @jouwbedrijf.nl, maar in de From-header gebruik je nog @microsoft.com. Om dat op te lossen, is DKIM in het leven geroepen.

DKIM ondertekent als het ware de inhoud van de e-mail. Hiermee wordt de From-header beschermd tegen misbruik. Met SPF en DKIM kun je er dus voor zorgen dat jouw domein beschermd is. Met DMARC voorkom je phishing uit jouw domein voorgoed. DMARC geeft, kortgezegd, bij de ontvangende server aan wát er moet gebeuren met e-mails die niet door de SPF en DKIM check heen komen.

ESMTP

Alle bovenstaande maatregelen waren niet mogelijk geweest als SMTP werd uitgebreid met functionaliteit. Daarom is ESMTP (E voor Extended) in het leven geroepen in 1995. Deze variant van SMTP biedt de mogelijkheid tot onder anderen e-mailauthenticatie en performance verbetering. Meer over ESMTP ↗

SMTP relay

Het uitbesteden van e-mailaflevering (ook SMTP relay genoemd) heeft voordelen voor het omgaan met de uitdagingen die normaal SMTP met zich meebrengt. SMTP relay gebeurt dan door een derde partij, zoals Flowmailer, die het transport van de e-mail tussen zender en ontvanger op zich neemt. Dit brengt bijvoorbeeld met zich mee dat IP reputatie geen zorg meer is of hoeft te zijn, en dat je ondersteund wordt bij het autoriseren van je e-mails.

Aanbevolen artikel: De voordelen van SMTP relay

Aan de slag met SMTP relay

Bij het versturen van e-mail via SMTP komen dus wat technische zaken kijken. Het is daarom niet gek om, in plaats van het 'normale' SMTP protocol, een SMTP Relay service te gebruiken voor het afleveren van je e-mails. Bij Flowmailer hebben we alles in huis om jouw e-mails betrouwbaar en snel af te leveren. En het makkelijkst is nog dat je alleen je bronsysteem hoeft te koppelen en je kunt e-mailen!

⏴terug naar artikelen