Versions Compared

Key

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

...

TDAT2004 Datakommunikasjon med nettverksprogrammering.

Oppgave nummer 10, omhandler SMTP for e-post i applikasjonslaget.

Deltakere er Olav Dahl Solstad og Tor Andreas Aasebø. 

...

Under utviklingen av ARPANET og andre nettverk dukket det opp behov for å sende meldinger mellom datamaskiner på samme nettverk eller to forskjellige nettverk. Løsningen ble å utvikle standarder for sending av meldinger, og disse standardene ble grunnlaget for utviklingen av SMTP.

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.

...

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”.

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 må resettes.

“<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”.

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

Her er “<forward-path>” adressen til e-postens destinasjon. Dersom den blir akseptert returnerer serveren “250 OK” og lagrer adressen.

Hvis serveren ikke gjenkjenner adressen vil den returnere en 550-feilmelding, sammen med en feilmelding av typen “no such user - “ og adressen.

Denne kommandoen kan gjentas så mange ganger man ønsker.

...

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

DATA <CRLF>

Dersom serveren aksepterer kommandoen returneres “354 Intermediate Reply”.

Alle innkommende linjer blir lagret på serveren frem til man får indikatoren for at dataoverføringen er ferdig.

Indikatoren som brukes i SMTP er en linje som bare inneholder et punktum.

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.  Sesjonen  

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>”.

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

...