Wikisage is op 1 na de grootste internet-encyclopedie in het Nederlands. Iedereen kan de hier verzamelde kennis gratis gebruiken, zonder storende advertenties. De Koninklijke Bibliotheek van Nederland heeft Wikisage in 2018 aangemerkt als digitaal erfgoed.
- Wilt u meehelpen om Wikisage te laten groeien? Maak dan een account aan. U bent van harte welkom. Zie: Portaal:Gebruikers.
- Bent u blij met Wikisage, of wilt u juist meer? Dan stellen we een bescheiden donatie om de kosten te bestrijden zeer op prijs. Zie: Portaal:Donaties.
Simple Mail Transfer Protocol
Simple Mail Transfer Protocol (SMTP) is de de facto-standaard voor het versturen van e-mail over het internet.
SMTP is een relatief simpel, tekstgebaseerd protocol: eerst wordt de afzender van het bericht gespecificeerd, daarna één of meerdere ontvangers en vervolgens de verzendgegevens en inhoud van het bericht. Het is gemakkelijk om een SMTP-server te testen door middel van het telnet-programma. SMTP gebruikt TCP-poort 25.
Om de SMTP-server voor een domein te bepalen wordt het MX-record (MX = Mail eXchange) van DNS gebruikt.
Geschiedenis
SMTP begon wereldwijd gebruikt te worden in de vroege jaren 1980. Toen was het een aanvulling voor UUCP. UUCP was geschikter om e-mail te versturen tussen computers die niet altijd verbonden waren. SMTP gaat ervan uit dat de ontvanger altijd verbonden is met het netwerk.
Sendmail was een van de eerste (zo niet het eerste) mail transfer agent-programma's die SMTP gebruikten.
Sinds 2001 bestaan ten minste 50 verschillende programma's die SMTP ondersteunen als client (zender van berichten) of server (ontvanger van berichten). Enkele populaire SMTP-serverprogramma's zijn Postfix (van IBM), qmail (van Daniel J. Bernstein), GroupWise (van Novell) en Microsoft Exchange Server.
Omdat SMTP enkel als een puur ASCII-tekstprotocol ontwikkeld was, kan het niet werken met binaire bestanden (bijlagen). Standaarden zoals MIME werden ontwikkeld om binaire bestanden om te vormen, zodat ze verstuurd kunnen worden over SMTP. De hedendaagse SMTP-servers ondersteunen de 8-bit-MIME-extensie, wat het versturen van binaire bestanden bijna net zo gemakkelijk maakt als gewone tekst.
Verzenden en ontvangen
Bij SMTP gaat het initiatief steeds uit van de verzender. Dit wordt ook wel 'pushing' of 'uploading' genoemd. Hiervoor is het gewenst dat de ontvanger op elk moment klaar staat. Aangezien particuliere computers meestal niet permanent met het internet verbonden zijn, is SMTP niet geschikt om een bericht bij de uiteindelijke bestemming af te leveren. Het bericht wordt daarom door de provider van de ontvanger bewaard totdat de ontvanger verbinding maakt met het internet en het bericht ophaalt. Dit ophalen geschiedt met een protocol als POP3 of IMAP, waarbij het initiatief van de ontvanger uitgaat. Dit heet dan ook 'pulling' of 'downloading'.
Spam en de veiligheid van SMTP
Eén van de beperkingen van het originele SMTP is dat er geen mogelijkheid is om na te gaan of de zender echt is wie hij beweert te zijn. Deze beperking wordt uitgebuit bij het versturen van spam, waarbij een fictieve afzender bij een e-mail kan worden opgegeven; hierdoor is spam nog steeds een groot probleem. Daarom blokkeren de meeste providers poort 25 (de SMTP-serverpoort) voor klanten. SMTP grondig veranderen of vervangen door een compleet nieuw protocol wordt niet mogelijk geacht omdat het zo veelvuldig verspreid en geïmplementeerd is.
Om vooralsnog te verifiëren of de afzender werkelijk degene is die hij claimt te zijn, werd de SMTP-AUTH-extensie ontwikkeld.
Voorbeeld van een SMTP-sessie
De hieronder weergegeven sessie is een voorbeeld van SMTP. 'C' staat voor Client, en 'S' voor Server. Een SMTP-server draait normaal gesproken op poort 25. Via telnet kan hiermee verbonden worden.
Steeds als de verzender een commando naar de server stuurt, geeft de server antwoord. Het antwoord is gedeeltelijk in voor mensen leesbare taal, wat handig is als telnet wordt gebruikt. Een e-mailclient zal deze teksten negeren.
telnet smtp.voorbeeld.nl 25
Er wordt nu een SMTP-verbinding geopend met de server op host smtp.voorbeeld.nl:
S: 220 smtp.voorbeeld.nl Example SMTP Service
De server geeft een 'greeting'-reply met code 220. De informatie die na de code wordt weergegeven is serverspecifiek. Het kán zijn dat een server een 554-code terugstuurt. Dat betekent dat de server de verbinding niet accepteert, maar het is niet verplicht om die code te sturen.
De client moet nu reageren met het HELO-commando:
C: HELO smtp.afzender.nl S: 250 Hello
(De client kan ook het EHLO-commando sturen, maar dan stuurt de server een lijst met extensies die hij ondersteunt.) Nu begint de SMTP-mailtransactie. De client begint met het MAIL-commando. Hier wordt de server verteld wat het e-mailadres van de afzender is:
C: MAIL FROM: <afzender@afzender.nl> S: 250 afzender@afzender.nl... Sender OK
Daarna wordt het e-mailadres van de ontvanger opgegeven:
C: RCPT TO: <ontvanger@ontvanger.nl> S: 250 ontvanger@ontvanger.nl... Recipient OK
De client reageert nu met het DATA-commando. Er kan nu data worden opgegeven. De client sluit af met een punt ('.') op een nieuwe regel:
C: DATA S: 354 Please start mail input, and finish with a new line and a '.' followed by a newline. C: Subject: Datatest C: Data...data...data... C: . S: 250 Mail queued for delivery.
De mail wordt nu verstuurd. De client moet nu de sessie beëindigen door het QUIT-commando te sturen:
C: QUIT S: 221 Goodbye.