You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

SMTP

TDAT2004 Datakommunikasjon med nettverksprogrammering.

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

Deltakere er Olav Dahl Solstad og Tor Andreas Aasebø. 

Video 1: Video som viser SMTP.

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.

I 1982 ble SMTP definert av RFC 821, og i 2001 kom den nyere utgaven RFC 2821.

SMTP har vært standard for sending av e-post, men i 2008 kom Extended SMTP (definert i RFC 5321) som en videreutvikling av SMTP.


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.

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.


3. Virkemåte

Beskriv hvordan ting fungerer og gjøres. Oppbygning og struktur. Forklare med illustrasjoner eller skjermklipp, bilder eller analyse av pakkefangst.

Bilde 1: Viser SMTP i bruk

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.

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

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


4. Referanser

Når man i den løpende teksten omtaler standarder, organisasjoner eller annet skal dette refereres. Referanselisten føres her (ikke URL i den løpende teksten)

https://tools.ietf.org/html/rfc821 (første versjon)

https://tools.ietf.org/html/rfc2821 (andre versjon)

https://tools.ietf.org/html/rfc5321 (ESMTP)

https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol 

http://www.serversmtp.com/sites/default/files/what%20is%20smtp.png



  • No labels