7.5. Email

Til at læse emails kan du næsten på alle UNIX-systemer finde programmet mail, som er meget simpelt. Skrives f.eks.

[daisy@linus daisy]$  mail BRUGERNAVN@MASKINE.DOMÆNE
help
og afsluttes med Ctrl-D. Der er så sendt en email til BRUGERNAVN@MASKINE.DOMÆNE med indholdet help.

Senere er ELM (elm) kommet med lidt flere muligheder, men ELM bliver ikke videreudviklet mere.

Til tekstbaseret læsning og skrivning af emails er der to gode valg. Mutt (mutt) er hurtig og har mange funktioner. Alternativt er Pine værd at se på (pine). Mailfoldere, en lille og god indbygget teksteditor (pico), søgemuligheder, mulighed for at se HTML-formatterede emails og et utal af konfigurationsmuligheder gør Pine til et hit. I de versioner af Pine som er kommet efter Red Hat 6.1 er der endda muligheder for at definere roller (bl.a. med forskellige email-signaturfiler) og farve opsætning. Det skal også nævnes, at Netscape har indbygget email håndtering, som foretrækkes af mange. Det er grafisk og ret enkelt at bruge.

Figur 7-12. Pine

Figur 7-13. Netscapes mail funktion

7.5.1. Fetchmail

fetchmail bruges til at hente email fra en mailserver hos din internetudbyder. Programmet styres gennem filen .fetchmailrc i dit hjemmebibliotek. Den kan f.eks. se sådan her ud:

poll mail.fiktiv.dk
proto POP3
user daisy
pass McMombo
Når du kører fetchmail, vil den i dette eksempel forsøge at hente post fra serveren mail.fiktiv.dk med protokollen POP3 (som er den mest almindelige) og logge på serveren med brugernavnet daisy og adgangskoden McMombo. Hvis der er post til daisy, leverer fetchmail den videre til det lokale postsystem, der så lægger brevene i daisys postkasse.

De første gange, du kører fetchmail, vil du som regel gerne se, om tingene går, som de skal, når posten hentes. Hvis fetchmail køres med parameteren -v, skriver den, hvad der foregår undervejs.

Hvis du er til grafisk baserede konfigurationsværktøjer, kan du redigere din .fetchmailrc ved hjælp af programmet fetchmailconf.

7.5.2. Linux som postserver

Hvis du installerer rpm-pakken imap, kan din Linuxmaskine bruges som server for indgående email i et netværk. Ved installationen af pakken skulle hele opsætningen faktisk være på plads, så brugerne på de enkelte maskiner blot skal angive Linuxmaskinen som postserver i deres emailprogrammer - og så naturligvis være oprettet som brugere på Linux-maskinen!

Hvis du kun har en modemforbindelse til Internet, kan du lade Linuxserveren sende og hente post for alle brugere på et lokalt netværk. fetchmail (se ovenfor) er ret nemt at sætte op til at hente post til flere forskellige brugere på samme tid hos internetudbydere.

Udgående post håndteres af programmet sendmail. Hvis sendmail skal acceptere at videresende udgående email fra andre maskiner på et lokalnet, er det nødvendigt at angive dette i filen /etc/mail/ip_allow, ellers vil forsøg på at bruge Linux-maskinen som SMTP-server blive afvist med beskeden "We do not relay".

I /etc/mail/ip_allow skriver du adresser på enkelte maskiner eller netværk, som må bruge Linuxmaskinen som udgående postserver. Hvis for eksempel alle maskiner på netværket 192.168.100.0 skal accepteres, skal indholdet af /etc/mail/ip_allow være dette:

192.168.100

Hvis post kun skal accepteres fra nogle af maskinerne på netværket, skrives adresserne på de enkelte godkendte maskiner. Alternativt kan man tillade alle maskiner i eget domæne at være relay-maskine ved at tilføje FEATURE(`relay_entire_domain`) i /etc/sendmail.mc og derefter køre m4 /etc/sendmail.mc /etc/sendmail.cf bemærk at man skal have sendmail-cf pakken installeret.

At tilpasse sendmail's opsætning er i øvrigt et emne, der kan fremkalde nervøse trækninger og koldsved hos store voksne systemadministratorer. Red Hat Linux sætter sendmail ganske fornuftigt op fra starten, så med mindre du er meget videbegærlig eller masochistisk anlagt, vil vi foreslå dig at glemme alt om opsætning af sendmail, indtil det er absolut nødvendigt.

7.5.3. Sortering af emails med procmail

Hvis du får mange emails ind per dag, så vil du nok hurtigt lave forskellige foldere til forskellige emner. F.eks. er du med på flere af SSLUG mail-listerne, så kunne du lave en folder til hver af de lister. Et program, som du kan have meget glæde af er procmail, som kan sortere emails automatisk ned til de email-foldere, du har lavet. Henter du mail med fetchmail, så kan procmail lave sorteringen ud fra konfigurationsfilen ~/.procmailrc. I eksemplet har vi mail liggende i ~/mail kataloget, og herunder har vi forskellige filer som er mail-foldere.

PATH=$HOME/bin:/usr/bin:/bin:/usr/local/bin:.
MAILDIR=$HOME/mail      # Her _skal_ procmail kunne aflevere din mail.
DEFAULT=$MAILDIR/mbox   # Default folder til af aflevere mail i
LOGFILE=$MAILDIR/.from   # Her gemmer vi en log over hvilke mail der kom
LOCKFILE=$HOME/.lockmail  # Fil til at lave lås med.

# Første liste er mgp-listen for Magic Point programmet
# Vi checker efter To eller Cc feltet er til listen mgp-users@mew.org
# og gemmer i ~/mail/mgp
:0
*^(To:|Cc:).*mgp-users@mew.org
mgp 

# Dernæst har vi sslug-teknik som altid sætter Reply-To feltet
:0
*^Reply-To:.sslug-teknik@sslug.dk
sslug-teknik

# Alle mails fra brugere @imm.dtu.dk gemmer vi i IMM-folderen
:0
*^From:.*@imm.dtu.dk
IMM

# Vi kan også gemme en ekstra kopi af mails - dvs. mailen bliver 
# også processeret af de efterfølgende regler.
# Kommer der en mail fra statsministeren stm@stm.dk så gemmer vi lige
# en ekstra kopi i stats-folderen
:0c
*^From:.*stm@stm.dk
stats

# Endelig kan vi faktisk også udføre kommandoer via mail
# Her lader vi emails med subject EJECT udføre kommandoen eject
# og da det kun er en kopi vi udtager, så vil mailen også gå til 
# default dir.

:0c
*^Subject:.eject
|/usr/bin/eject      

# Alle andre mails ender i default mail folderen. 

Procmail er guld værd, og man procmailrc er værd at læse. Du kan også være glad for at lave et alias alias ms "mailstat ~/mail/.from", idet du så kan skrive ms efter at have kørt fetchmail, og du vil så få vist hvor mange mails og størrelsen af disse som er blevet fordelt til de forskellige foldere.

7.5.4. Vise nye emails

Programmet xbiff er en lille postkasse, der i et vindue indikerer, om der er kommet elektronisk post. Hvis der er post, inverteres farverne. Programmet opdaterer selv ca. en gang i minuttet, hvis det ikke konfigureres anderledes.

Lidt mere smart er xmailbox og coolmail, der begge viser en amerikansk postkasse, som viser, at der er post med lyd og et flag, der hejses.

7.5.5. Hente emails fra en Exchange server

Microsoft har været så venlige at lave en nyere type email-server, MS Exchange, som uheldigvis ikke er dokumenteret for godt. Heldigvis kan man bruge serveren fra f.eks. Netscapes mail-funktion. I Netscape skal du under [preferences]->[mail] sætte at du henter mail fra en "IMAP" server - ikke POP - og sætte serveren til at være exchange serveren. Det er ikke den fulde funktionalitet, du får, men det kan bruges.

7.5.6. Kryptering af post

I takt med Internettets udbredelse er der kommet flere og flere mindre venligsindede mennesker på Nettet. Elektronisk post er desværre meget let at aflytte, og ønsker du brevhemmelighed må du kryptere din post. Kryptering er en proces hvor dine data bliver skrevet i kode. Krypterede breve kan kun læses af den person, de er stilet til.

I Linux-verdenen finder der flere programmer til kryptering af post. Heldigvis findes der en standard for hvordan post bør krypteres, og det er derfor ligegyldigt hvilket krypteringsprogram, du benytter. Vi har valgt at introducere GNU Privacy Guard (GPG), idet GPG kommer under en ægte fri licens (GNU General Public License). Samtidig kan GPG arbejde sammen med det anerkendte Pretty Good Privacy (PGP).

GPG kan også bruges til at signere breve. En digital signatur er mere end en underskrift. Den digitale signatur fortæller, ud over hvem der er afsender, også hvornår brevet blev signeret. Endvidere bruges den digitale signatur til at tjekke om brevet er blevet ændret under dets rejse fra afsender til modtager. I skrivende stund kender forfatterne ikke det officielle Danmarks holdning til GPG.

Ideen bag GPG er, at du har en offentlig og en privat nøgle. Den offentlige nøgle gør det muligt for alle at tjekke din signatur, som du fremstiller vha. din private nøgle. Når du skal kryptere post, skal du først udveksle nøglepar med den person, som du ønsker at kommunikere med. Udvekslingen sker ofte i forbindelse med møder i Linux-brugerforninger.

Du kan downloade GPG fra GPG's ftp-server ftp://ftp.gnupg.org. Selve installationen er lige til at gå til - nedenfor ser du hvordan.

[daisy@linus daisy]$  wget ftp://ftp.gnupg.org/pub/gcrypt/gnupg/gnupg-1.0.1.tar.gz
[daisy@linus daisy]$   tar xzf gnupg-1.0.1.tar.gz
[daisy@linus daisy]$   cd gnupg-1.0.1
[daisy@linus gnupg-1.0.1]$   ./configure
[en masse klippet væk]
[daisy@linus gnupg-1.0.1]$   make
[en masse klippet væk]
[daisy@linus gnupg-1.0.1]$   su
Password: hemlig
[root@linus gnupg-1.0.1]$   make install
[root@linus gnupg-1.0.1]$   exit
[daisy@linus gnupg-1.0.1]$   cd ..
[daisy@linus daisy]$  rm -rf gnupg-1.0.1

Efter installationen er du klar til at bruge GPG. Det første, du skal gøre, er at generere et nøglepar.

[daisy@linus daisy]$  gpg
gpg: Warning: using insecure memory!
gpg: /home/kneth/.gnupg: directory created
gpg: /home/kneth/.gnupg/options: new options file created
gpg: you have to start GnuPG again, so it can read the new options file
[daisy@linus daisy]$  gpg --gen-key
gpg (GnuPG) 1.0.1; Copyright (C) 1999 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

gpg: Warning: using insecure memory!
gpg: /home/kneth/.gnupg/secring.gpg: keyring created
gpg: /home/kneth/.gnupg/pubring.gpg: keyring created
Please select what kind of key you want:
   (1) DSA and ElGamal (default)
   (2) DSA (sign only)
   (4) ElGamal (sign and encrypt)
Your selection? 1
DSA keypair will have 1024 bits.
About to generate a new ELG-E keypair.
              minimum keysize is  768 bits
              default keysize is 1024 bits
    highest suggested keysize is 2048 bits
What keysize do you want? (1024) 1024
Requested keysize is 1024 bits       
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct (y/n)? y
You need a User-ID to identify your key; the software constructs the user id
from Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Real name: Daisy
Email address: daisy@linus.kongeh.dk
Comment: 
You selected this USER-ID:
    "Daisy <daisy@linus.kongeh.dk>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

Enter passphrase: DetteErHemlig!
Repeat passphrase: DetteErHemlig!

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
+++++++++++++++..+++++++++++++++.+++++++++++++++++++++++++++++++++++++++++
+++++++++..++++++++++.++++++++++++++++++++++++++++++++++++++++>++++++++++>
+++++....................................+++++
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
++++++++++.+++++++++++++++.++++++++++....++++++++++.+++++++++++++++.+++++++
+++.+++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++>+++++....
..........+++++^^^
public and secret key created and signed

Du bør med det samme fremstille en nøgle, som kan bruges til at tilbagekalde den, du netop har fremstillet. Det er vigtig, idet det kan ske at en eller anden finder ud af din private nøgle. En tilbagekaldelsesnøgle genereres vha. kommandoen gpg --gen-revoke daisy@linus.kongeh.dk. Tilbagekaldelsesnøglen bør opbevares et andet sted end dit hjemmekatalog, f.eks. kan du have den liggende på en diskette i dit pengeskab.

Når du nu har fået genereret nøgler, er du klar til at signere breve. Til at begynde med vil vi antage, at du skriver brevet først, signerer det og til sidst indlæser det signerede brev i dit postprogram. Nedenstående kommandosekvens viser dig hvordan.

[daisy@linus daisy]$ cat brev
Kære Pingo,

Du kan tror at vi har det sjovt ned GNU!

Daisy
[daisy@linus daisy]$ gpg --clearsign brev
[daisy@linus daisy]$ cat brev.asc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Kære Pingo,

Du kan tror at vi har det sjovt ned GNU!

Daisy
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE4elQW60LvO+QONowRAntQAKCIvUMIsyf1US2JoHC/VKgD73Ps1gCfRvRM
H9uEQNpfPp+AFNkP86snOVo=
=6+k8
-----END PGP SIGNATURE---

Den opmærksomme læser bemærker at det signerede brev ligger i filen brev.asc, dvs. der er blevet tilføjet .asc til det oprindelige navn.

For at få det største udbytte af GPG bør du den glimrende brugervejledning. Den finder du på http://www.gnupg.org/docs.html.