Faktablad Elektronisk post. (e-mail)

Johan Futsæther

Opprettet: 10.04.02., Redigert 19.09.02, 21.03.04, 02.05.05, 05.09.05

 

Elektronisk post.

 

En av de første tjenester som ble tatt i bruk i nettverk, var ett meldingssystem mellom maskinene som var koblet til nettverket. Med nettverk i denne sammenheng, snakker vi om lokale nettverk. For at meldingssystemet skulle virke, måtte alle maskinene være online til enhver tid. En melding som ble sendt til en annen maskin, ble lagret på den mottagende maskin inntil meldingen ble lest.

 

 

 

   

 

 

 

For at et slikt system skulle virke, måtte alle maskinene ha flere ”agenter” installert.

 

  1. Agent for å skrive melding.
  2. Agent for å sende melding
  3. Agent for å motta melding.

 

Dette systemet fungerte bare så lenge nettverkene var små - og at alle maskinene sto påkoblet til nettet til enhver tid slik at meldingene kom frem til bestemmelsesstedet.

 

Etter hvert ble nettverkene større, flere LAN ble koblet sammen til WAN med ulike protokoller. Dette ga problemer med å få sendt meldinger mellom maskinene. Det ble da dedikert en maskin på lokalnettet som skulle samle alle meldingene slik at meldingene kunne hentes ut når maskinene ble slått på. Dette ble forløperen til mail-serveren.

 

Meldingstjenesten, som etter hvert ble kalt e-post, ble meget populært og var nok drivkraften for videreutviklingen av det globale nettet.

 

Standard for e-mail.

 

I 1982 ble det laget en RFC-standard for hvordan mail skulle håndteres på Internett. Dette dokumentet har fått betegnelsen RFC 822. Standarden beskiver formatet for e-mail mellom to maskiner basert på SMTP.  SMTP er protokollen som brukes og er beskrevet i RFC821. RFC 822 spesifiserer at en melding er en tekststrøm (tekstfil) som inneholder bare skrivbare 7-bit ASCII-tegn.. Det betyr at en ikke kan overføre tekst med de særnorske bokstavene ÆØÅ eller æøå. Det er heller ikke mulig å overføre binærfiler. Videre spesifiserer RFC822 at en melding (e-mail) er satt sammen av tre hoveddeler:

 

  1. ENVELOPE Inneholder opplysninger om hvem meldingen er fra og hvem den er ment til. (Trenger IKKE være det samme som opplysningene i ”Header”!!)
  2. HEADER består av ”To”, ”From”, ”CC”, ”Date”, ”Reply-TO” og andre felt.
  3. BODY er selve meldingen.

 

Eksempel på en mail’s Header og body:

Header

Return-Path: <supervisor@unoverica.COM>
Received: from Prophet by Greywolf
id NAA01898; Sun, 18 May 1997 13:16:24 -0400
Received: from Greywolf by Fred-PC (8.6.9/1.2-eef)
id 000000C8; Sun, 18 May 1997 10:15:44 -0700
Message-ID: 0xlckjds0032
From: "System Administrator" <supervisor@unoverica.COM>
Reply-To: <supervisor@unoverica.COM>
Date: Sun, 18 May 1997 13:15:04 -0400
To: root@unoverica.com
Subject: mail headers
 

(NB: Det er alltid en tom linje mellom Header og Body!!!)

 

Body

Please let me know if you have any questions.

 

Blokkskjema for e-postsystemet på internett.

 

 

Forklaring til skissen.

 

·         MUA (Mail User Agent) er en den agenten (programmodul) som blir installert hos den enkelte bruker. Dette kan være Outlook eller Eudora. MUA blir  noen ganger benevnt UA (User Agent).

 

·         MTA (Mail Transport Agent) er den agenten (programmodulen) som blir installert på mailserveren. Mailserveren befinner seg vanligvis hos din ISP. MTA har som oppgave å legge til ENVELOPE og å transportere e-posten videre. En mye brukt programmodul for MTA er programmet Sendmail for Unix. Du finner MTA’er hos din ISP og ute på internett som ”Rely MTA”.  Større LAN kan ha egne MTA’er. Da benevnes de ”Local Relay MTA”.

 

·         MDA (Mail Delivery Agent) er den agenten (programmodulen) som tar i mot mailen og leverer den til postkontoen din på mailserveren. MDA kan også foreta sorteringer etc. Det er ikke nødvendig å ha en MDA i systemet siden MDA ikke er involvert selve transporten. MDA befinner seg vanligvis hos din ISP. Eksempel på MDA er Mail og Procmail.

 

·         SMTP (Simple Mail Transport Protocol, RFC 821, RFC 2821) tilhører TCP/IP og er den protokollen som brukes for å sende mail mellom to brukere. Port 25

 

·         POP (Post Office Protocol, RFC 1081) tilhører TCP/IP og er den protokollen som brukes for å hente mail fra mailserveren. Port 110

 

En typisk oppkobling for å sende mail til SMTP-serveren, vil kunne se slik ut:

 

  1. E-postklienten åpner en TCP-forbindelse til SMTP-serveren (MTA)
  2. SMTP-serveren sender tilbake ett svar om at den er klar til å ta i mot forsendelsen.
  3. E-postklienten sender en ”hilsnings”-melding til SMTP-serveren som den svarer på.
  4. E-postklienten melder til SMTP-serveren hvem e-posten kommer fra og til hvem e-posten skal sendes til. SMTP-serveren kontrollerer om adressen til mottageren er en gyldig adresse og vil nå godkjenne eller underkjenne adressen. SMTP-serveren kontrollerer ikke hvem som sender mailen!
  5. E-postklienten spør nå om å få sende selve meldingen og SMTP-serveren godkjenner dette.
  6. E-postklienten sender meldingen og avslutter met ett punktum på en tom linje. SMTP-serveren godkjenner meldingen.
  7. E-postklienten logger ut fra SMTP-serveren og forbindelsen brytes.

 

All mail som blir sendt til en bruker, blir lagret på en mailserver kalt POP-server som ligger på SMTP-serveren.  Alle brukere har en egen ”konto” (postkasse) på POP-serveren. POP-serveren brukes for å sende mailen den siste biten fra siste SMTP-server til mottageren. Når brukeren logger seg på nettet og skal hente inn mailen sin, brukes protokollen POP (Post Office Protokoll).

 

En typisk oppkobling for å motta mail fra POP-serveren, vil kunne se slik ut:

 

  1. E-postklienten oppretter en forbindelse med POP-serveren
  2. E-postklienten identifiserer seg med en ID og ett passord. POP-serveren kontrollerer og godkjenner brukeren.
  3. E-postklienten ber om at mailen sendes fra POP-serveren. POP-serveren sender mailene.
  4. E-postklienten ber om at mailene blir slettet på POP-serveren.
  5. POP-serveren sletter mailene, logger ut og stenger forbindelsen.
 

 

DNS og e-mail.

 

DNS står for ”Domain Name Server” og er et system som omgjør domenenavn til en IP-adresse. Når vi skal sende en mail, må DNS-serveren omgjøre domenet som står bak @-tegnet i en mailadresse til en ip-adresse.

 

Nå er de slik e-mail håndteres ikke av det domenet som står bak @-tegnet, men sendes videre til en helt annen e-mailserver. Hvilken server e-mailen skal sendes videre til, holder DNS-serveren rede på ved hjelp av MX, som står for Mail Exchanger. MX er en liste en eller flere servere som kan ta i mot post fra et spesifikt domene. For å finne ut hvilke e-mailserver som tar i mot post fra et domene, kan UNIX-kommandoen ”host” brukes.

 

Hvis vi tenker oss at du har en e-mailadresse som dette:

 

dittnavn@online.no

 

så kan du finne ut hvilken server som håndterer post for online.no ved å skrive dette:

 

# host –t MX tele.no

 

du skal nå få opp hvilken maskin som håndterer e-post for domenet tele.no

 

Antageligvis vil du få opp to eller flere e-postservere som er nummerert i stigende rekkefølge. Den lavest nummererte er primærserver. Lykkes det ikke å få kontakt med denne, så prøves de andre e-mailservere i stigende rekkefølge.

 

E-mail og sikkerhet.

 

I utgangspunktet (RFC222) ligger det ingen sikkerhet innebygget i protokollene som brukes for e-mail.  SMTP og POP er laget for å sende meldinger i klartekst! Dette vil si at alle som har nødvendig programvare kan ”plukke opp” mail som du sender og mottar. I dag finnes det en mulighet for å kryptere e-mail. Den vanligste teknikken heter PGP (download) som står for Pretty Good Privacy.  Det er viktig å ha klart for seg at det må en aktiv handling til før krypteringen foregår. Det installeres ikke som standard. Det som gjør at PGP er så ypperlig til e-mail er at den er basert på offentlig nøkkel prinsippet. Dette betyr i praksis at du har to nøkler, en offentlig, og en privat. Den offentlige kan kun brukes til å kryptere meldinger, så den kan du trygt publisere og gi til hvem som helst. Den private nøkkelen brukes til å dekryptere meldinger, så det er nødvendig å holde denne for seg selv.

 

Kommandoer for SMTP-serveren og bruk av Telnet. .

 

Siden kommunikasjonen mellom e-postklienten og SMTP-serveren er basert på klartekst, betyr det at du kan godt sende en mail ved å bruke Telnet. E-postklienten sender en rad kommandoer til SMTP-serveren og forteller den hva som skal gjøres. Disse kommandoene kan du også sende med Telnet (RFC854). Her er de vanligste kommandoene:

 

Kommando

 

HELO

MAIL:

RCPT TO:

DATA

RSET

VRFY

 

QUIT

Beskrivelse

 

Identifiserer E-mailklienten for SMTP-serveren

Begynner en overføring av e-mailen

Identifiserer en mottager av e-mailen

Forteller SMTP-serveren at e-mailklienten skal begynne overføringen av selve e-mailen

Avbryter den pågående overføring og begynner på nytt.

Brukes for å verifisere at mottageren eksisterer. Hvis mottageren eksisterer svarer SMTP-serveren med mottagerens navn og adresse eller e-mailadressen

Avslutter overføringen og kobler ned forbindelsen.

 

Ettersom spesifikasjonen for SMTP ble utviklet på begynnelsen av 80-tallet, har det kommet tilleggsmoduler for SMTP. Dette gjør det mulig å overføre bilder, lyd og binærfiler. Vi kaller disse tilleggene for ESMTP som står for Extended SMTP. ESMTP er bakoverkompatibel med SMTP.

 

IMAP.  (RFC1730)

 

IMAP står for Internett Message Access Protocol.

 

IMAP ble utviklet for at vi skal kunne lese posten vår  ”hvorsomhelst” i verden. Bruker vi bare POP, må vi lese posten på den maskinen som vi vil at posten skal lagres på. IMAP fungerer i prinsippet som en webbasert posttjeneste. Akkurat som POP har brukeren en ”konto” på IMAP-serveren. Istedenfor å laste ned meldingene til den lokale maskin, så leses meldingen direkte på IMAP-serveren. For brukeren ser det ut som at meldingene ligger på den lokale maskinen.

 

Fordel med IMAP:

 

  1. IMAP kan også brukes til å ta i mot nyhetsgrupper
  2. Brukeren kan få tilgang til flere IMAP-kontoer
  3. IMAP kan sende flere kommandoer på en gang til IMAP-serveren uten å vente på svar.
  4. IMAP kan ha støtte for sikre pålogginger.
  5. IMAP gjør det mulig å bare hente vedlegg.. For eksempel ett bildet.
  6. IMAP kan håndtere flere samtidige brukere av kontoen
  7. IMAP kan sende melding til brukeren om at ny post er kommet.
  8. IMAP bruker Unicode istedenfor US-ASCII. Dermed kan vi bruke de særnorske bokstavene.
  9. Se RFC1730

 

MIME (RFC1341)

 

Mime står for Multipurpose Internett Mail Extensions og gjør det mulig å sende bilder, lyd og binærfiler

 

E-postsystemet på Internett benyttes seg av bare 7 biter (RFC 822) for å overføre en melding, selv om selve dataoverføringen foregår som 8-bits kode. Det åttende bittet blir satt til 0. Syv bit gir 128 ulike kombinasjoner av tegn. Dette holder til det engelske alfabetet pluss noen spesialtegn og kontrolltegn. I følge standarden kan det heller ikke være mer enn 1000 tegn på hver linje. Dette er ikke nok for binærfiler, som ikke er delt opp i linjer, men må sees på som en sammenhengende linje av tegn.

 

I 1981 lanserte IBM nye tegntabeller med 8 bits kode. Dermed fikk vi 256 ulike kombinasjoner av tegn. Dette området ble benyttet til enkle grafiske tegn pluss ulike nasjonale tegn. Det oppsto da ett problem med at IBM, Apple og andre leverandører ikke ble enige om hvor de nasjonale tegnene skulle ligge i tabellen. Dette var ikke noe problem så lenge en holdt seg til samme system, men når alle disse ulikesystemene ble koblet sammen via Internett, oppsto det kaos.

 

Det er her MIME kommer inn. MIME omkoder alle 8-bitskoder til 7-bitskoder. Sammen med meldingen sender den informasjon om hvilken tegntabell som er benyttet. Denne informasjon kan mottageren anvende til å konvertere til rett tegntabell.

 

Omkodingen fra 8 bit til 7-bitskode, gir oss også mulighet til å overføre lyd, bilder og binærfiler. Sammen med meldingen overføres informasjon om hvilken typeformat data er kodet i og hvilken kodingsteknikk som er benyttet. Dette kalles henholdsvis ”Content-Type” og  Content-Transfer-Encoding”. Mottageren foretar prosessen baklengs. Hvis ikke mottageren har en e-postklient som forstår MIME, så vil de data som kommer på skjermen bare bli en meningsløs datastrøm.

 

Vi har følgende Content-Type (Beskriver hvilken datatype meldingen er kodet i)

 

Content- Type

Undertype (Subtype)

Beskrivelse

Text

plain

richtext

enriched

html

(andre undertyper)

Uformatert tekst

Text med enkel formatering.

Forenklet richtext

Text formatert med HTML

(I dag (apr02)finnes det 18 undertyper)

Multipart

Mixed

Parallell

Digest

alternativ

Flere “body-parts” blir utført sekvensielt.

Flere ”body-parts” blir utført parallelt.

Mailoversikt

Multiple body-parts are present, all with identical semantic ontent

Message

Rfc822

Partial

External body

Content is another RFC822 mail message.

Content is a fragment of a mailmessage.

Content is a pointer to the actual message.

Applications

Octet-stream

Postscript

Binær data

PostScriptprogram

Image

Jpeg

Gif

Tiff

Png

Bildet i jpeg-format

Bildet i Gif-format

Bildet i Tiff-format

Bildet i Png-format

Audio

Basic

Lyd med samplingsfrekvens 8 khz

Video

Mpeg

quicktime

Video I formatet MPEG

Video i formatet quiktime

Model

 

For 3d-modeller

 

Ved litt leting på hjemmesiden til IANA (Internett Assigned Numbers Authority), vil du finne en komplett oversikt over typer og undertyper.

 

http://www.iana.com/

 

Vi har følgende Content-Transfer-Encoding: (Beskriver hvilken koding som er brukt)

 

Metode:

Beskrivelse.

7bit

Meldingen har blitt kodet til US-ASCII. Det vil si syvbiterstext med en linjelengde på max 1000 tegn.

8bit

Meldingen har blitt kodet til en åttebiterstext med en linjelengde på max 1000 tegn

Binary

Meldingen har blitt kodet til en åttebitersdata og det kan forekomme linjer med mer enn 1000 tegn.

Base 64

Meldingen har blitt kodet i Base 64.

Quoted-printable

Meldingen har blitt kodet i Quoted-printable (QP)

 

Telnet.

 

Eksempel på SMTP og POP3-sesjon. (Sende og motta mail)

 

Telnet er en protokoll for å sende klartekstkommandoer mellom maskiner. Siden SMTP og POP også arbeider med klartekst, så vil vi kunne bruke Telnet til å hente eller skrive en mail. Vi trenger dermed ingen mailclient som for eksempel Outlook eller Eudora. Ved hjelp av Telnet kan  skrive og lese mail.

 

Slik skriver jeg en mail med Telnet ved hjelp av SMTP-kommandoer.

 

NB: Hvis  SMTP-server gir deg denne meldingen:  ”we do not relay”, er serveren stengt for å sende mail utenfor sitt eget domene. Dette blant annet for å forhindre SPAM som er masseutsendelse av useriøs post.

 

NB: Vær oppmerksom på at noen servere ønsker kommandoene  med store bokstaver. Kommandoene gjengies heller ikke på skjermen når du skriver dem i Telnet. Kommandoene er SMTP-kommandoer.

 

  1. Telnet [dinsmtpmailserver] 25
  2. HELO [dinsmtpmailserver]
  3. MAIL FROM: aaaa@bbbbb.cc (Husk kolon etter FROM:)
  4. RCPT TO: [mailadressen til den du skal sende mail til. Husk kolon etter TO:)
  5. DATA

 

354 Enter mail, end with ”.” on a line by itself

  1. (Nå kan du skrive mailen din, men husk å h ett punktum på en tom linje tilslutt.)

.

250 XAA03619 Message accepted for delivery

  1. QUIT

221 server closing connection

 

Her er en oversikt over  SMTP-kommandoene du kan prøve. Husk at ved å skrive HELP (kommando) kan du få hjelp til å skrive kommandoen riktig.

 

Kommando

Beskrivelse

HELO

Innleder SMTP-sesjonen.

MAIL FROM: (mailadresse)

Kommandoen brukes for å identifisere avsenderen, men den sjekker bare at syntaksen er riktig. Det betyr at her kan du utgi deg for å være noen andre.!

RCPT TO: (Mailadresse)

Hvem skal mailen sendes til?

DATA

Forteller telnet at vi ønsker å skrive inn og overføre data. Husk å avslutte med ett punktum på en tom linje!!

QUIT

Avslutter Telnet/SMTP-sesjonen.

RSET

Avbryter den pågående mailoverføringen uten å koble ned forbindelsen.

VRFY

Brukes for å verifisere at mailmottageren eksisterer. Hvis mottageren eksisterer, gir serveren tilbakemelding i form av mottagerens navn og e-postadresse

NOOP

Gjør ingenting!!

 

Nå har vi sett på hvordan du kan bruke Telnet og SMTP til å sende mail. Men vi kan også bruke Telnet til å lese mail.

 

Slik kobler jeg meg opp mot min e-mailkonto for å lese mail:

 

  1. Telnet [mailserverens navn 110] (Mailserveren hvor din konto ligger. Port 110)
  2. USER (din bruker-id)
  3. PASS (ditt passord)
  4. LIST (Du får nå opp en liste over dine mail. )

 

Listen kan se slik ut:

 

+OK 3 messages

1.        956

2.        894

3.        1230

 

Tallet i første kolonne angir nummeret på meldingen og tallet i neste kolonne angir størrelsen på meldingen.

 

Vil du lese melding nummer 2 og de 3 første linjene i meldingen, skriver du:

 

  1. TOP 2 3 (Du skal nå få opp teknisk informasjon om melding nr 2, pluss de 3 første linjene.)
  2. QUIT  (Avslutter Telnetsesjonen.)

 

Dette var bar et kort eksempel med noen få kommandoer for Telnet. Ønsker du å få en oversikt over hvilke andre kommandoer du kan bruke, skriver du HELP.når du er inne i sesjonen.

 

Følgende kommandoer er for de fleste telnetversjoner tilgjengelige i en  telnetsesjon:.

 

 

Kommando

Beskrivelse

LIST

Gir en liste over de mail som finnes og deres størrelse.

STAT

Viser hvor mange brev som finnes pluss hvor stor plass de totalt tar.

RETR

Sender mail fra serveren til mottageren (klienten)

DELE

Markerer en mail som skal slettes.

NOOP

Gjør ingenting. ????

TOP

Sender de første linjene i en mail fra serveren til mottageren (klienten)

UIDL

Angiver en identifiseringsstreng for en eller flere mail.

RSET

Tar bort slettemarkeringen fra mail. (Det stikk motsatte som DELE)

QUIT

Avslutter telnetsesjonen.

 

Får å få en mer detaljert forståelse for hver kommando, kan du skrive HELP (Kommando) under sesjonen.

 

Nedenfor vises en log for  bruk av Telnet for å hente en mail på min mailserver. Vi kan se at jeg har 5 mailer på kontoen min. Husk at kommandoene som jeg gir, vises ikke.!!

 

Jeg ber om å få se mail nr 1 og de første 5 linjene (Top 1 5). Mailen ble sendt fra skolen til min hjemmeadresse. Akkurat i dette tilfelle var det dette faktablad om elektronisk post som ble sendt.  Legg merke til Content-ype og  Content-Transfer-Encoding. Jeg har fjernet mailadressen i loggen for å forhindre at programmer som leter etter mailadresser på nettet skal få tak i min(e) adresser for deretter sende SPAM.

 

LOGG:

 

+OK please send PASS command

+OK mq17605 is welcome here

+OK 5 messages

1 126503

2 6212

3 5821

4 8890

5 9487

.

+OK 1321 octets

Return-Path: <Her står min mailadresse på skolen (Fra-adresse)>

Received: from mail.oppland-f.kommune.no ([194.248.94.73])

          by fep20-svc.swip.net with SMTP

          id <20020403122943.SIHN13739.fep20-svc.swip.net@mail.oppland-f.kommune.no>

          for <Her står min hjemmeadresse(Til-adresse)>; Wed, 3 Apr 2002 14:29:43 +0200

Received: from 158.149.3.62 by mail.oppland-f.kommune.no (InterScan E-Mail Virus

Wall NT); Wed, 03 Apr 2002 14:33:30 -0900

Received: by ofkmail.oppland-f.kommune.no with Internet Mail Service (5.5.2653.19)

        id <GQSZPBL5>; Wed, 3 Apr 2002 14:28:09 +0200

Message-ID: <61960D3918C7D2119C930008C70D818F9C19CB@YTREMAIL>

From: =?iso-8859-1?Q?=22Futs=E6ther_Johan=2C_Gj=F8vik_vdg=22?=

         < Her står min mailadresse på skolen (Fra-adresse)>

To: "'Her står min hjemmeadresse i apostrof (Til-adresse)'" <Her står min hjemmeadresse (Til-adresse)>

Subject: Faktablad

Date: Wed, 3 Apr 2002 14:25:45 +0200

MIME-Version: 1.0

X-Mailer: Internet Mail Service (5.5.2653.19)

Content-Type: application/msword;

        name="Faktablad elektronisk post_.doc"

Content-Transfer-Encoding: base64

Content-Disposition: attachment;

        filename="Faktablad elektronisk post_.doc"

 

0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAACAAAASAAAAAAAAAAA

EAAASgAAAAEAAAD+////AAAAAEcAAABuAAAA////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////

.

+OK mq17605 InterMail POP3 server signing off.

 

Telnetsesjonen er nå ferdig. Det kan være lurt å studere loggen.

 

Hvordan få tak i RFC-dokument.?

 

RFC-dokument er beskrivelser av tekniske standarder på Internett.  RFC står for Request For Comments. Du finner en omfattende RFC-katalog på følgende adresse:

 

ftp.sunet.se/pub/Internet-documents/rfc

 

Vil du ha HTML-versjonen, skriver du bare http:// foran adressen.

 

Last ned filen rfc-index.txt. Den inneholder en oversikt over ALLE RFC-dokument og hva de beskriver.

 

Referanser:

 

·                TCP/IP-hånboken Gunnar Gunnarson , Pagina
  • TCP/IP illustrated Volume 1. The Protocols. W. Richard Stevens, Addison-Wesley
  • Datormagasinet Nr 9, 2001.

·         Internett.