Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents

1. Innledning

Hvor hører det valgte tema hjemme i lagmodellen. Hvilke standarder eller bestemmelser gjelder for dette temaet.

Simple Mail Transfer Protocol (SMTP) er en protokoll for sending av e-post, og ligger i undergruppen e-post i applikasjonslaget.

...

2. Ønsket funksjonalitet  

Hva er det man ønsker å oppnå, hvilke funksjonelle mangler vil man bøte på, hvorfor har man denne tjenesten eller dette systemet.

Formålet med SMTP er å kunne sende e-post på en effektiv og pålitelig måte. Henting av e-post blir overlatt til andre protokoller.

...

Først kunne man bare sende ASCII-tekst, men etter hvert kom behovet for å sende andre typer data som også måtte bli støttet i protokollen.


3. Virkemåte

...

Bilde 1: Viser SMTP i bruk


Initialisering

En SMTP-sesjon initieres når en klient etablerer en kobling til en server og serveren responderer med en velkomstmelding.

Når klienten har mottatt velkomstmeldingen vil klienten sende kommandoen “HELO” til serveren for å starte sesjonen. Når sesjonen er initialisert er det klart for sending av e-post.

De SMTP-systemene som bruker Extended SMTP kan også initialisere en sesjon ved bruk av kommandoen “EHLO” som gjør at serveren sender tilbake informasjon om hvilke utvidelser den støtter.

I SMTP mail transaksjoner er det tre steg som gjøres. Det første steget ved sending av e-post er kommandoen “MAIL”.

Når sesjonen er startet utføres tre kommandoer for å sende e-post. Kommandoene må utføres i riktig rekkefølge, ellers vil serveren gi feilmeldinger. Om for eksempel en RCPT kommando dukker opp uten en forutgående MAIL kommando returneres en “503 bad sequence of commands” feilmelding. 

MAIL

MAIL MAIL FROM:<reverse-path> [SP <mail-parameters> ] <CRLF>

Denne kommandoen sier at en ny e-post-transaksjon starter og alle data som ligger igjen på serveren fra tidligere e-poster resettesfjernes.

“<reverse-path>” er e-postadressen det sendes fra, og det er til den adressen feilmeldinger sendes. Dersom kommandoen blir akseptert returnerer serveren “250 OK”, ellers må det returneres en feilmelding.

Det andre steget er kommandoen “RCPT”.

Eksempel på kommandoen: MAIL FROM <smtptest@altibox.no>

RCPT

RCPT RCPT TO:<forward-path> [ SP <rcpt-parameters> ] <CRLF>

...

Denne kommandoen kan gjentas så mange ganger man ønsker for å legge inn mange mottakere.

<forward-path> kan inneholde mer enn bare en enkelt adresse, den kan også inneholde en “source routing“ liste. I moderne SMTP klienter er dette derimot ikke lenger godkjent men servere må være forberedt på å støte på slike lister for så å ignorere de. I likhet med dette så kan servere avvise mail som er ment for andre tjenere eller systemer.

Det tredje steget er kommandoen “DATA”, eller man kan bruke en kommando fra en utvidelse.

Eksempel på kommandoen: RCPT TO: <smtptest2@outlook.com>

DATA

DATA DATA <CRLF>

Dersom serveren aksepterer kommandoen returneres “354 Intermediate Reply”.

...

Når all data er lagret på serveren sendes “250 OK” og serveren prosesserer destinasjoner og data. Dersom e-posten blir akseptert sendes den og serveren returnerer “250 OK” til klienten.Kommandoene må utføres i rekkefølgen over, ellers vil serveren gi feilmeldinger. Om for eksempel en RCPT kommando dukker opp uten en forutgående MAIL kommando returneres en “503 bad sequence of commands” feilmelding.

Eksempel på kommandoen (legg merke til avslutningen med en linje som bare består av et punktum):

DATA

 Date: Thu, 21 May 2018 05:33:29 -0700

From: SmtpTest <smtptest@altibox.no>

Subject: Testing

To: smtptest2@outlook.com

Hei, dette er en test.

.

Avslutning 

Sesjonen avsluttes når klienten sender kommandoen “QUIT” og serveren responderer med en positiv kode.

Når e-posten er sendt er det vanlig at den blir transportert over port 25 mellom to og to SMTP-servere helt til den kommer frem til serveren som leverer ut e-post tilknyttet “<forward-path>”destinasjonsadressen.

Det er også mulig å transportere e-posten uten bruk av SMTP dersom den må gjennom servere som ikke bruker SMTP.

...