Simple Mail Transfer Protocol

Simple Mail Transfer Protocol (SMTP) er en standardisert protokoll som beskriver hvordan e-post skal sendes fra en datamaskin til en annen, som regel over et nettverk.

SMTP er en relativt enkel tekstbasert protokoll hvor først en eller flere mottakere (recipients) er tekstlig spesifisert (det vil si i ASCII-format) og overført til SMTP-serveren. Deretter overføres avsenderens adresse og selve meldingen. SMTP benytter normalt TCP port 25.

Den første versjonen av «Arpanet Mail» er beskrevet i RFC 196 fra juli 1971; den første versjonen av den kanoniske SMTP kom med RFC 733 i november 1977.

SMTP har vært i utstrakt brukt siden tidlig i 1980-årene, og ettersom den opprinnelig kun var ASCII-basert, håndterte den ikke binære vedlegg. Det var heller ingen sikkerhetsfunksjoner implementert i protokollen, som kryptering og verifisering av avsender (for å unngå spammere). Protokollen ble derfor videreutviklet slik at binære filer kunne overføres, ved å tillate MIME-standarden som definerte en metode man kunne kode binære filer på.

Det finnes også sikkerhetsfunksjoner for SMTP, f.eks. sikring med TLS, spesifisert i RFC 3207, men disse er ikke i utstrakt bruk da det er vanskelig å bruke dem til å sikre seg mot meldinger en ikke ønsker samtidig som man skal kunne motta post uten å ha gjort noen avtaler på forhånd med avsender.

SMTP er en såkalt push-protokoll, dvs. at den har kun overføring én vei og kan ikke ta imot data fra server. For at et e-postprogram skal kunne hente inn de meldingene som venter på en e-post-tjener må man bruke andre protokoller som POP3 eller IMAP. 

Ved å benytte telnet kan man enkelt følge med på en tenkt transaksjon med SMTP. Her er et eksempel på en slik oppkobling som oppfyller protokollkravene. S er respons fra serveren, altså maskinen som ditt e-post-program f.eks. kobler seg opp til. C er klienten, dvs. data sent fra «din» PC.

Oppkobling via telnet:
telnet www.example.com 25

Transaksjon
S: 220 www.example.com ESMTP Postfix
C: HELO mydomain.com
S: 250 Hello mydomain.com
C: MAIL FROM: <sender@mydomain.com>
S: 250 Ok
C: RCPT TO: <friend@example.com>
S: 250 Ok
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: Subject: test message
C: From: sender@mydomain.com
C: To: friend@example.com
C:
C: Hello,
C: This is a test.
C: Goodbye.
C: .
S: 250 Ok: queued as 12345
C: QUIT
S: 221 Bye

Litteratur
RFC 2821 (SMTP, Proposed Standard)

Internett-protokoller