Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > media > contrib > by-pkgid > 3d425e1e545e57bba7e595fbd248db86 > files > 13

howto-text-sv-9.0-1mdk.noarch.rpm

  Linux e-post HOWTO
  Guylhem Aznar <guylhem@oeil.qc.ca>. Svensk översättning
  Tomas Carlsson <md5tc@mdstud.chalmers.se>
  v2.1, July 1998. Svensk version Augusti 1998

  Detta dokument beskriver konfiguration och underhåll av elektronisk
  post (e-post) i Linux.  Du behöver läsa detta om du planerar att kom­
  municera lokalt eller till andra sajter med elektronisk post.  Du
  behöver antagligen *inte* läsa detta dokument om du inte utväxlar
  elektronisk post med andra användare på ditt system eller med andra
  sajter.
  ______________________________________________________________________

  Innehållsförteckning




















































  1. Introduktion, copyright och standard disclaimer

     1.1 Email och spammning
     1.2 Mål
     1.3 Nya versioner
     1.4 Feedback
     1.5 Copyright
     1.6 Begränsad garanti

  2. Andra källor för information

     2.1 USENET
     2.2 E-postlistor
     2.3 Andra dokument från LDP
     2.4 Böcker

  3. Krav

     3.1 Hårdvara
     3.2 Mjukvara

  4. Qmail v1.03

     4.1 Att få tag på qmail
     4.2 Att packa upp källkoden
     4.3 Att förbereda kompilering
     4.4 Att konfigurera qmail
        4.4.1 defaultdomain, me, plusdomain
        4.4.2 locals, rcpthosts
        4.4.3 virtualdomains
     4.5 Att testa qmail
     4.6 Att ta bort din andra MTA
     4.7 Det var allt !

  5. Smail v3.1

     5.1 Att konfigurera smail
     5.2 Filen
     5.3 Filen
     5.4 Filen
     5.5 Filen
     5.6 Filen
     5.7 Katalogen
     5.8 Andra bra exempel
     5.9 Starta om inetd
     5.10 Smail med smtp

  6. GAMMALT AVSNITT: Sendmail+IDA

     6.1 Installation av källkod
     6.2 Filen
     6.3 Att definiera en lokal e-postutdelare
     6.4 Sendmail+IDA dbm tabeller
     6.5 Så vilka poster krävs?
     6.6 Sendmail 8.x
     6.7 Exempel på 8.7.x
     6.8 Sendmail v8 skillnader
     6.9 Lokala e-postutdelare

  7. POP e-post

     7.1 Historia
     7.2 Att hämta e-post
     7.3 Att skicka e-post
     7.4 Att läsa e-post
     7.5 Testning
     7.6 Användning

  8. E-post

     8.1 Mutt
     8.2 Elm
     8.3 Mailx
     8.4 Andra användarprogram

  9. Tillkännagivanden



  ______________________________________________________________________

  1.  Introduktion, copyright och standard disclaimer



  1.1.  Email och spammning


  Först och främst, byt ut alla "at" i e-post till "@".

  Det är lätt för människor, men inte för program som söker webben för
  att spamma; därför är det tillräckligt för att skydda generösa
  bidragsgivare mot att bli spammade!


  1.2.  Mål


  Avsikten med detta dokument är att svara på vissa av de frågor och
  kommentarer som verkar svara mot definitionen "ofta frågade frågor" om
  e-postmjukvara i Linux generellt och speciellt versionen i
  distributionerna Debian och RedHat.


  1.3.  Nya versioner


  Nya versioner av detta dokument (den engelska versionen) kommer
  periodvis att postas till comp.os.linux.announce, comp.answers och
  mail.answers. De kommer även att finnas på de olika anonyma ftp-
  sajterna som innehåller sådan information, inklusive
  ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO.

  Dessutom, bör du oftast hitta detta dokument på Linux WorldWideWeb
  hemsidan på http://sunsite.unc.edu/mdw/linux.html.


  1.4.  Feedback


  Jag är intresserad av all feedback, positiv eller negativ, som har att
  göra med innehållet i detta dokument via e-post. Kontakta mig
  definitivt om du hittar fel eller självklara uteslutanden.

  Jag läser, men svarar inte nödvändigtvis, på all e-post som jag tar
  emot. Förfrågningar om förbättringar kommer att beaktas och sedan
  utföras beroende av den dagens kombination av tillgänglig tid,
  kvaliteten på förfrågningen och den dagens blodtryck :-)

  Flames kommer i det tysta att dirigeras till /dev/null så ödsla ingen
  tid.

  Feedback angående formatet på dokumentet bör skickas till HOWTO
  koordinatorn: Greg Hankins (gregh at sunsite.unc.edu).


  1.5.  Copyright


  Mail-HOWTO är kopieringsrättskyddad (c) 1998 Guylhem Aznar.
  Distribuerad under LDP copyright licens.  Om du har frågor, var vänlig
  kontakta Greg Hankins, koordinatorn för Linux HOWTOs, på gregh at
  sunsite.unc.edu.


  1.6.  Begränsad garanti


  Självklart, jag avsäger mig allt ansvar för innehållet i detta
  dokument. Användning av principer, exempel, och/eller annat innehåll i
  detta dokument sker på egen risk.


  2.  Andra källor för information



  2.1.  USENET


  Det är inget "konstigt" med att konfigurera och köra e-postmjukvara i
  Linux (längre). Därför vill du nästan säkert *INTE* posta generella
  frågor om e-post till comp.os.linux.* diskussionsgrupper.

  Posta inte i comp.os.linux hierarkin om det inte verkligen är linux
  specifikt, till exempel: "Vilka alternativ kompilerades Debian 1.2
  sendmail med?" eller "RedHat 5.0 smail krashar när jag kör det".

  Låt mig upprepa det.

  Det finns i stort sett ingen anledning att posta något e-postrelaterat
  till comp.os.linux hierarkin längre. Det finns existerande
  diskussionsgrupper i comp.mail.* hierarkin som kan ta hand om *ALLA*
  dina frågor.

  OM DU POSTAR I COMP.OS.LINUX.* MED ICKE-LINUX-SPECIFIKA FRÅGOR, SÅ
  LETAR DU EFTER HJÄLP PÅ FEL STÄLLE.  EXPERTERNA PÅ E-POST FINNS PÅ DE
  PLATSER SOM NÄMNS OVAN OCH KÖR VANLIGTVIS INTE LINUX.

  ATT POSTA TILL LINUX HIERARKIN MED ICKE-LINUX-SPECIFIKA FRÅGOR SLÖSAR
  BORT DIN OCH ALLA ANDRAS TID, OCH DET FÖRLÄNGER SVARSTIDEN PÅ DIN
  FRÅGA.

  BRA PLATSER är:

             comp.mail.elm           ELM e-post system.
             comp.mail.mh            Rand Message Handling system.
             comp.mail.mime          Multipurpose Internet Mail Extensions.
             comp.mail.misc          Generella diskussioner om datorpost.
             comp.mail.multi-media   Multimedia Mail.
             comp.mail.mush          Mail User's Shell (MUSH).
             comp.mail.sendmail      BSD sendmail agent.
             comp.mail.smail         smail mail agent.
             comp.mail.uucp          Mail i uucp omgivning.




  2.2.  E-postlistor


  Det finns många e-postlistor för sendmail, smail och qmail.

  Du kan hitta adresser i /usr/doc/den_du_har_valt.


  2.3.  Andra dokument från LDP


  Det finns gott om utmärkt material i andra Linux HOWTO dokument och
  från Linux DOC projektet.

  Speciellt, så kan följande vara bra att titta på:


  ·  på din egen dator i /usr/doc/ :-)

  ·  Linux Networking Administrators' Guide

  ·  Serial Communications HOWTO

  ·  Ethernet HOWTO

  ·  UUCP HOWTO om du använder UUCP


  2.4.  Böcker


  Följande är en lista på böcker som kan vara bra:


  ·  "Managing UUCP and USENET" från O'Reilly and Associates är enligt
     min uppfattning den bästa boken för att lista ut hur programmen och
     protokollen fungerar som behövs för att vara en USENET sajt.

  ·  "Unix Communications" från The Waite Group innehåller en bra
     beskrivning av alla delarna och ur de passar ihop.

  ·  "Sendmail" från O'Reilly and Associates verkar vara den definitiva
     referensen till sendmail-v8 och sendmail+IDA. Det är ett "måste"
     för alla som räknar med att få sendmail att fungera utan blod.

  ·  "The Internet Complete Reference" från Osborne är en bra
     referensbok som förklarar de olika tjänsterna som finns
     tillgängliga på Internet och är en utmärkt källa för information om
     nyheter, e-post och andra Internet resurser.

  ·  "The Linux Networking Administrators' Guide" från Olaf Kirch i
     Linux Documentation Project finns tillgänglig på nätet och är även
     publicerad av (åtminstonde) O'Reilly och SSC.

     Det är en bra "allt-i-ett" för att lära sig allt möjligt om
     Unixnätverk.



  3.  Krav






  3.1.  Hårdvara


  Det finns inga speciella hårdvarukrav för mail i Linux.

  Du behöver någon sorts 'transporteringsmjukvara' för att ansluta till
  andra system, vilket betyder antingen TCP/IP eller UUCP.

  Detta kan betyda att du behöver ett modem eller ett ethernetkort,
  beroende på din konfiguration. I de flesta fall så vill man ha det
  snabbaste modem man har råd med, t.ex V90 57600 bps för närvarande.
  Generellt så behöver man en 16550 UART på sitt seriekort eller inbyggt
  i modemet för att hantera hastigheter över 9600 baud.

  Om du inte vet vad den sista meningen betyder, var vänlig att titta i
  comp.dcom.modems eller i de olika FAQsen för modem och seriell
  kommunikation och periodiska inlägg på USENET.


  3.2.  Mjukvara


  Okej, nu kommer problemen. Vilken e-postmjukvara skall du välja?

  För närvarande finns qmail, smail, vmail och sendmail.

  Vart och ett har sina egna egenskaper, men den bästa kompromissen är
  qmail för hög säkerhet (även att vmail är säkrare), hög hastighet
  (även att smail är snabbare för lokal post) och för lätt
  konfiguration.

  Du får självklart välja själv vilken mjukvara du vill använda,
  informationen här skall bara hjälpa dig i ditt val.

  Sendmail kan vara bra för många sajter med komplicerade alternativ,
  men jag tycker att dess konfiguration är för svår för nybörjare medans
  den inte är särskilt säker eller särskilt snabb. Så det finns endast
  ett riktigt gammalt avsnitt om sendmail i denna HOWTO.

  Om du vet vad du gör, välj sendmail (och du borde inte läsa denna
  HOWTO!); annars rekommenderar jag generellt qmail.


  4.  Qmail v1.03


  Säker, snabb och lätt att använda. Detta är den MTA (Mail Transport
  Agent) som jag föredrar.

  För närvarande så inkluderas qmail inte i någon distribution av Linux,
  så vi skall fokusera på att kompilera och installera qmail, eftersom
  det är det enda som är lite besvärligt. Konfigurationen är ganska
  okomplicerad.


  4.1.  Att få tag på qmail


  Gå till http://www.qmail.org för att ladda ner den senaste versionen.


  4.2.  Att packa upp källkoden


  Packa sedan upp den genom att köra:

  mv qmail.tar.gz /usr/local/src
  cd /usr/local/src ; tar -zxvf qmail.tar.gz




  Om du hittar en bz2 version (nytt och bättre kompressionsformat),
  ersätt bara tar med:


       bunzip2 qmail.tar.bz2
       tar -xvf qmail.tar





  4.3.  Att förbereda kompilering


  Gå nu in i qmail katalogen och titta på den förinställda
  konfigurationen:


       cd qmail; more conf-*




  Du bör inte behöva ändra några förinställda värden, men du kan till
  exempel ange en alternativ katalog för installationen eller bättre
  kompileringsflaggor.

  Kör nu:


       mkdir /var/qmail




  för att skapa målkatalogen.

  Om du inte har installerat en Debian distribution så behöver du lägga
  till qmail användare; qmails höga säkerhet är beroende av detta.

  Ingen kommer att kunna förstöra hela ditt e-postsystem eller få root-
  access eftersom qmail är uppdelat i moduler som var och en kör under
  sitt eget UID.

  Så kör:


          # groupadd nofiles
          # useradd -g nofiles -d /var/qmail/alias alias
          # useradd -g nofiles -d /var/qmail qmaild
          # useradd -g nofiles -d /var/qmail qmaill
          # useradd -g nofiles -d /var/qmail qmailp
          # groupadd qmail
          # useradd -g qmail -d /var/qmail qmailq
          # useradd -g qmail -d /var/qmail qmailr
          # useradd -g qmail -d /var/qmail qmails




  eller ändra /etc/passwd och /etc/group för hand så att dessa användare
  läggs till. Du kan till exempel lägga till:



               qmail:*:2107:
               nofiles:*:2108:




  &



               alias:*:7790:2108::/var/qmail/alias:/bin/true
               qmaild:*:7791:2108::/var/qmail:/bin/true
               qmaill:*:7792:2108::/var/qmail:/bin/true
               qmailp:*:7793:2108::/var/qmail:/bin/true
               qmailq:*:7794:2107::/var/qmail:/bin/true
               qmailr:*:7795:2107::/var/qmail:/bin/true
               qmails:*:7796:2107::/var/qmail:/bin/true




  Nu kan du köra


       make setup check




  för att testa din konfiguration, sedan:


       ./config




  för att konfigurera qmail.

  Nu måste du installera några alias, eftersom /etc/alias inte används
  av qmail om du inte kompilerar och installerar något valfritt paket.

  Här är mina inställningar:


















  File : ".qmail-MAILER-DAEMON"
  &postmaster
  File : ".qmail-bin"
  &root
  File : ".qmail-daemon"
  &root
  File : ".qmail-decode"
  &root
  File : ".qmail-dumper"
  &root
  File : ".qmail-games"
  &root
  File : ".qmail-ingres"
  &root
  File : ".qmail-mailer-daemon"
  &postmaster
  File : ".qmail-manager"
  &root
  File : ".qmail-news"
  &root
  File : ".qmail-nobody"
  &root
  File : ".qmail-operator"
  &root
  File : ".qmail-postmaster"
  &root
  File : ".qmail-root"
  &guylhem
  File : ".qmail-system"
  &root
  File : ".qmail-toor"
  &root
  File : ".qmail-uucp"
  &root
  File : ".qmail-uucp-default"
  |preline -dr /usr/bin/uux - -r -gC -a"${SENDER:-MAILER-DAEMON}" lm!rmail "($DEFAULT@$HOST)"




  Du måste skapa var och en av dessa filer i ~alias, och ersätta
  &guylhem i .qmail-root med ditt eget användarnamn för att få root-e-
  post.

  VARNING ALLA UUCP ANVÄNDARE !

  LITA INTE PÅ QMAIL FAQ OM DU ANVÄNDER UUCP, ANVÄND MIN .qmail-uucp-
  default ISTÄLLET!  ANNARS KOMMER DU INTE KUNNA SKICKA E-POST VIA DIN
  UUCP ANSLUTNING!

  Nu måste du bestämma i vilket format dina användare skall få sin e-
  post.

  Här är mitt förslag:

  ·  För NFS-monterade hemkataloger, använd MAILDIR format med en patch
     för lokala e-postläsare (patchar finns på http://www.qmail.org)

  ·  Om ingen patch finns tillgänglig, tag MAILFILE format; alla e-
     postläsare kan läsa en fil som innehåller e-post, användarna
     behöver bara skapa ett alias (för bash) eller en setenv (för csh)
     för deras e-postläsare.

  ·  Undvik /var/spool/mail/$USER format, för osäkert.


  För att fixa standardformat, läs alla filer i /var/qmail/boot, kopiera
  sedan den du tycker bäst om till /var/qmail/rc.

  home eller proc är säkra val, men jag föredrar home av säkerhetsskäl.


  4.4.  Att konfigurera qmail


  I /var/qmail/control, editera :


  4.4.1.  defaultdomain, me, plusdomain



  ·  me är ditt lokala FQDN (fully qualified domain name), till exempel
     på min maskin är det barberouge.linux.lmm.com

  ·  defaultdomain kommer att adderas till alla datornamn som inte
     innehåller några punkter, inklusive defaulthost, du kan till
     exempel sätta det till lokalanätverket så att all e-post som sänds
     till joe@hansdator kommer att kompletteras och skickas till
     joe@hansdator.lokalanätverket istället.

  ·  plusdomain är undantaget; det adderas till alla datornamn som
     slutar med ett plustecken, inklusive defaulthost (sätts i me) om
     den slutar med ett plustecken.

  Följande tre exempel visar hur kraftfullt och lättkonfigurerat qmail
  är:


  4.4.2.  locals, rcpthosts


  Om du vill stödja virtuella domännamn, skriv in ytterligare namn i
  dessa filer.

  All e-post som du tar emot för dessa namn kommer att hanteras lokalt.

  Skillnaden mellan locals och rcpthosts är att den senare ses som ett
  lokalt alias, vilket är användbart om du får mail från någon fri e-
  postadress som yahoo.com eller lemel.fr samtidigt som du även skickar
  e-post till andra användare av dessa icke-lokala tjänster, dvs du vill
  inte hantera e-post som sänds till någon@yahoo.com lokalt.


  4.4.3.  virtualdomains


  Här kan du specificera standardläget för utgående e-post, till
  exempel:


       #:alias-uucp




  om du inte vill skicka utgående e-post med uucp utan med smtp
  (standard) eller


       :alias-ucp

  om du skickar utgående e-post med uucp.


  4.5.  Att testa qmail


  Nu är det konfigurerat, prova:


       sh -cf '/var/qmail/rc &'




  för att köra igång qmail (det kommer inte att störa din lokala MTA),
  sedan:



       echo to: mylogin | /var/qmail/bin/qmail-inject




  Du bör få detta i det format som du har valt i /var/qmail/boot/.


  4.6.  Att ta bort din andra MTA


  Om denna testen var lyckad, så kan du döda din tidigare MTA:

  killall -STOP daemon_name ; om några barnprocesser är igång så bör du
  göra killall -CONT deras_namn, wait, killall -STOP igen, och repetera
  ad nauseam.

  Om det inte finns några barnprocesser, killall -TERM och sedan killall
  -CONT.

  Tag sedan bort den (hur detta görs beror på vilken distribution du
  har, till exempel 'rpm -e --nodeps' i RedHat, Caldera och Suse, eller
  'dpkg -r --force-depends' i Debian). Kör sedan:


       # ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
       # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail




  Sätt sedan in qmail-smtpd i /etc/inetd.conf (allt på en rad):


       smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd




  Om du använder en gammal icke-SYSV-init distribution som RedHat, lägg
  bara till följande i dina boot-skript:


       sh -cf '/var/qmail/rc &'



  Vanligtvis i /etc/rc.local men inte helt säkert.

  För en verkligt SYSV-init kompatibel distribution (RedHat, Caldera,
  Suse, Debian), lägg till följande skript i /etc/init.d/

  DEBIAN version:



       #!/bin/sh

       test -x /var/qmail/rc || exit 0

       case "$1" in
         start)
            echo -n "Starting mta: "
            sh -cf '/var/qmail/rc &'
            echo "qmail."
            ;;
         stop)
            echo -n "Stopping mta: "
            killall qmail-lspawn
            echo "qmail."
            ;;
         restart)
            echo -n "Restarting mta: "
            killall -HUP qmail-lspawn
            killall -ALRM qmail-lspawn
            echo "qmail."
            ;;
         *)
            echo "Usage: /etc/init.d/qmail {start|stop|restart}"
            exit 1
       esac

       exit 0




  REDHAT version :

























  #!/bin/sh
  #
  # qmail      This shell script takes care of starting and stopping qmail.
  #
  # description: qmail is a Mail Transport Agent, which is the program \
  #              that moves mail from one machine to another.
  # processname: qmail
  # config: /var/qmail/control/

  # Source function library.
  . /etc/rc.d/init.d/functions

  # Source networking configuration.
  . /etc/sysconfig/network

  export PATH=$PATH:/var/qmail/bin

  # Check that networking is up.
  [ ${NETWORKING} = "no" ] && exit 0

  [ -f /usr/sbin/sendmail ] || exit 0

  # See how we were called.
  case "$1" in
    start)
          # Start daemons.
          echo -n "Starting qmail: "
          qmail-start '|preline procmail' splogger qmail &
          touch /var/lock/subsys/qmail
          echo
          ;;
    stop)
          # Stop daemons.
          echo -n "Shutting down qmail: "
          killproc qmail-lspawn
          echo
          rm -f /var/lock/subsys/qmail
          ;;
    restart)
          $0 stop
          $0 start
          ;;
    status)
          status qmail
          ;;
    *)
          echo "Usage: qmail {start|stop|restart|status}"
          exit 1
  esac

  exit 0




  Gör sedan symboliska länkar till varje /etc/rcN.d/, till exempel:


       ln -sf /etc/init.d/qmail /etc/rc1.d/K19qmail




  Om den första bokstaven är K, så kommer qmail att dödas i denna
  runleveln (1 för "single mode" eller 6 för "boot"), men om den första
  bokstaven är S så kommer qmail att startas i denna runleveln (alla
  andra runlevels).


  ·  Hur man vet om det skall vara ett K eller ett S?  Gör vad
     majoriteten av daemonerna i denna runleveln gör!

  ·  Vilken siffra skall jag skriva efter K eller S?  Siffran som står
     vid nätverks-daemonen!

  RedHat, Caldera och Suse använder /etc/rc.d/ istället för bara /etc/
  som Debian, dvs /etc/rc.d/rc1.d/ eller /etc/rc.d/init.d/ till exempel.


  4.7.  Det var allt !


  Du behöver inte starta om (kom ihåg, du kör linux, inte något annat
  billigt OS !) för att ändringarna skall bli gällande, kör bara:



       killall inetd
       init 1




  För att gå till 'single user'-läge, sedan:


       init 2




  för att gå tillbaka till din standard-runlevel (som står specificerad
  i /etc/inittab med texten "initdefault").

  Du kan även starta qmail-skriptet för hand, men om du gör som ovan så
  märker du om skriptet är bra placerat, dvs det körs efter nätverks-
  skripten men innan eventuella program som beror av e-post (som inn).


  5.  Smail v3.1


  Smail 3.1 verkar vara en de-facto standard när det gäller e-post
  programvara för uucp-sajter och för vissa smtp-sajter. Det är lätt att
  konfigurera, det kompilerar från källkoden utan patchar och det är
  hyfsat säkert.


  5.1.  Att konfigurera smail


  Installera binärfilerna för smail från din distribution (jag
  rekommenderar detta) eller hämta källkoden för smail och kompilera
  den. Om du kompilerar smail från källkod så måste du ha följande i din
  os/linux fil så att 'sed' ger dig shell-skript som fungerar
  ordentligt.


  CASE_NO_NEWLINES=true



  När det väl är installerat så brukar konfigurationsfilerna läggas i
  /etc/smail/, så låt oss börja editera dem.


  5.2.  Filen config




       # From
       smart_path=polux
       smart_transport=uux

       # To
       hostname=barberouge
       domains=linux.lmm.com

       visible_name=barberouge.linux.lmm.com
       uucp_name=barberouge.linux.lmm.com

       # max_message_size=512k
       # auth_domains=foo.bar
       # more_hostnames=barberouge.polux.freenix.fr




  Okej, först, vem förser dig? Jag förses av "polux" via uucp (dvs uux
  transport). Du måste naturligtvis ändra denna fil så att den speglar
  din egen situation. Till exempel så skulle du kunna förses av
  "bargw.bar.foobar.com" via "smtp", i sådana fall behöver du ingen
  transports-fil och kan definiera "-transport_file" för att indikera
  att du inte behöver någon.

  Du kan även använda 'postmaster_address = dittnamn', dölja
  nätverkstopologin i utgående adresser (om du är en gateway) genom att
  använda 'visible_name', specificera vilka alias som också kan användas
  för e-post som du tar emot, genom att använda 'more_hostnames'.

  Se smail dokumentationen för mer detaljer eller dokumentationen i
  /usr/doc/smail/examples/ för att se om något passar din situation.


  5.3.  Filen directors






















  # aliasinclude - expand ":include:filename" addresses produced by alias files
  # This entry and the next one are pretty much boiler-plate.  Reasons
  # for making significant changes are few.  The sole purpose of these
  # is to match and expand addresses of the form:
  #       :include:pathname
  # which may occur in alias files or mailing-list/forward files
  # (produced by any director with a driver of forwardfile).
  aliasinclude:
          driver = aliasinclude,          # use this special-case driver
          nobody;                         # associate nobody user with addresses
                                          #  when mild permission violations
                                          #  are encountered
          copysecure,                     # get permissions from alias director
          copyowners,                     # get owners from alias director



  # forwardinclude - expand ":include:filename" addrs produced by forward files
  forwardinclude:
          driver = forwardinclude,        # use this special-case driver
          nobody;
          copysecure,                     # get perms from forwarding director
          copyowners,                     # get owners from forwarding director


  # aliases - search for alias expansions stored in a database
  # This is the standard aliases file.  It is used for generic things,
  # like mapping root, postmaster, MAILER-DAEMON and uucp to site
  # admins, creating some small system alias expansions, and such.  In
  # this site configuration, the aliases file is used mostly for
  # machine-specific aliasing/forwarding information.  Global forwarding
  # information should be put in the "forward" database.
  aliases:
          driver=aliasfile,               # general-purpose aliasing director
          -nobody,                        # all addresses are associated
                                          # with nobody by default, so setting
                                          # this is not useful.
          sender_okay,                    # don't remove sender from expansions
          owner=owner-$user;              # problems go to an owner address
          file=/etc/aliases,
          modemask=002,                   # should not be globally writable
          optional,                       # ignore if file does not exist
          proto=lsearch,                  # unsorted ASCII file


  # forward - search for expansions stored in a forwarding database
  # This is the subdomain-wide user forwarding database.  Entries are
  # maintained here for current or past users, to forward their mail to
  # their preferred mail-reading machine.  The forward database is
  # shipped around the TCP/IP network as changes are made, to keep the
  # network consistent.
  #forward:
  #       driver = aliasfile,             # general-purpose aliasing director
  #       -nobody,                        # all addresses are associated
  #                                       # with nobody by default, so setting
  #                                       # this is not useful.
  #       owner = real-$user;             # problems go to an owner address
  #
  #       file = /etc/forward,
  #       modemask = 002,
  #       proto = dbm,                    # use dbm(3X) library for access


  # dotforward - expand .forward files in user home directories
  # For users that have an entry in the "forward" database, a ".forward"
  # file is only used if it is on the "home" machine, as identified in
  # the forward database.  If used, it is treated as a list of addresses
  # to which mail should be delivered, rather than (or in addition to)
  # the user identified in the local address.
  dotforward:
          driver = forwardfile,           # general-purpose forwarding director
          owner = postmaster, nobody, sender_okay;

          file = ~/.forward,              # .forward file in home directories
          checkowner,                     # the user can own this file
          owners = root,                  # or root can own the file
          modemask = 002,                 # it should not be globally writable
          caution = daemon:root,          # don't run things as root or daemon
          # be extra carefull of remotely accessible home directories
          unsecure = "~uucp:/tmp:/usr/tmp:/var/tmp"


  # forwardto - expand a "Forward to " in user mailbox files
  # This emulates the V6/V7/System-V forwarding mechanism which uses a
  # line of forward addresses stored at the beginning of user mailbox files
  # prefixed with the string "Forward to "
  forwardto:
          driver = forwardfile,
          owner = postmaster, nobody, sender_okay;

          file = /var/spool/mail/${lc:user},      # point at user mailbox files
          forwardto,                      # enable "Forward to " function
          checkowner,                     # the user can own this file
          owners = root,                  # or root can own the file
          modemask = 0002,                # under System V, group mail can write
          caution = daemon:root           # don't run things as root or daemon


  # user - match users on the local host with delivery to their mailboxes
  user:   driver = user;                  # driver to match usernames
          transport = local               # local transport goes to mailboxes


  # real_user - match usernames when prefixed with the string "real-"
  # This is useful for allowing an address which explicitly delivers to a
  # user's mailbox file.  For example, errors in a .forward file expansion
  # could be delivered here, or forwarding loops between multiple machines
  # can be resolved by using a real-username address.  Also, users that
  # wish to use mail as a means of transferring data to a machine that
  # is not their "home" machine can mail to real-login-name@remote.host.
  real_user:
          driver = user;
          transport = local,
          prefix = "real-"            # for example, match real-root


  # lists - expand mailing lists stored in a list directory
  # mailing lists can be created simply by creating a file in the
  # /etc/smail/lists directory.
  lists:  driver = forwardfile,
          caution,                        # flag all addresses with caution
          nobody,                         # and then associate the nobody user
          owner = owner-$user;            # system V sites may wish to use
                                          # o-$user, as owner-$user may be
                                          # too long for a 14-char filename.
          file = lists/${lc:user}         # lists is under $smail_lib_dir


  # owners - expand mailing lists stored in a list owner directory
  # mailing lists owner lists can be created simply by creating a file
  # in the /etc/smail/lists/owner directory.  Mailing list owners
  # are sent locally generated errors dealing with a mailing list of the
  # same name.  To create an owner list for a mailing list, create a
  # file with the name of the list in /etc/smail/lists/owner.  This
  # will create a list address of owner-listname, as is used by the
  # "lists" director above.
  owners: driver = forwardfile,
          caution,                        # flag all addresses with caution
          nobody,                         # and then associate the nobody user
          owner = postmaster;             # system V sites may wish to use
                                          # o-$user, as owner-$user may be
                                          # too long for a 14-char filename.
          prefix = "owner-",
          file = lists/owner/${lc:user}   # lists is under $smail_lib_dir


  # request - expand mailing lists stored in a list request directory
  # mailing lists request lists can be created simply by creating a file
  # in the /etc/smail/lists/request directory.  Request addresses
  # are typically used as a standard address for queries about a mailing
  # list.  For example, requests for additions or deletions to a list
  # will generally be sent to "list-request", which should be set up to
  # forward to the appropriate person or persons.
  request: driver = forwardfile,
          caution,                        # flag all addresses with caution
          nobody,                         # and then associate the nobody user
          owner = postmaster;             # system V sites may wish to use
                                          # o-$user, as owner-$user may be
                                          # too long for a 14-char filename.
          suffix = "-request",
          file = lists/request/${lc:user} # lists is under $smail_lib_dir




  Du bör inte behöva ändra något här, bara alternativ för e-post-listor
  om du tänker köra några med smail.  Eller alternativ för
  vidareskickning (forwarding) om du till exempel vill inaktivera
  vidareskickning.


  5.4.  Filen fidopaths




       .f105.n324.z2.fidonet.org     f105.n324.z2.fidonet.org!%s
       .n324.z2.fidonet.org          f105.n324.z2.fidonet.org!%s
       .z2.fidonet.org                       f105.n324.z2.fidonet.org!%s
       .fidonet.org                  f105.n324.z2.fidonet.org!%s




  Skapa endast denna filen om du använder ifmail och FIDO.


  5.5.  Filen routers










  # forces - force certain paths
  # This database exists as a means of hardcoding the paths to various
  # machines or domains.  It is for use in creating temporary tweaks to
  # the other routint databases.  To change the database, edit the file
  # maps/force.path and type "make" in the maps/ subdirectory.
  forces:
          driver = pathalias,             # router to search paths file
          method = /etc/smail/maps/table; # transports are in this file
          file = forcepaths,              # file containing force path info
          proto = lsearch,                # use the sorted path file
          optional,
          reopen                          # close when not being used


  uucp_neighbors:
          driver=uuname,                  # use a program which returns neighbors
          transport=uux;
          cmd="/usr/bin/uuname -a",       # specifically, use the uuname program
  #        domain=uucp                    # strip ending ".uucp"


  # smart_host - a partically specified smarthost director
  # If the config file attribute smart_path is defined as a path from the
  # local host to a remote host, then hostnames not matched otherwise will
  # be sent off to the stated remote host.  The config file attribute
  # smart_transport can be used to specify a different transport.
  # If the smart_path attribute is not defined, this router is ignored.
  smart_host:
          driver = smarthost,             # special-case driver
          transport = uux                 # by default deliver over UUCP
  #       path=phreak


  # ifmail - to send mails to fidonet and vice versa
  ifmail:
          driver=pathalias,
          transport=ifmail;
          file=fidopaths,
          proto=lsearch




  Du skall endast inkludera ifmail-delen om du använder ifmail för FIDO
  post. Notera att du även kan byta transportläge från 'uux' (dvs UUCP)
  till, exempelvis, 'smtp' eller till och med 'hårdkoda vägarna till
  vissa maskiner eller domäner' i /etc/smail/maps/table.

  Detta kan vara användbart om du vill att utgående e-post som är ämnat
  för ditt lokala nätverk skall skickas ut med en gång, eftersom det
  inte behöver routas till din uucp anslutning med Internet access.


  5.6.  Filen transports












  # local - deliver mail to local users
  # Tell smail to append directly to user mailbox files in the /var/spool/mail
  # directory.
  #local: driver = appendfile,            # append message to a file
  #       -return_path,                   # include a Return-Path: field
  #       local,                          # use local forms for delivery
  #       from,                           # supply a From_ envelope line
  #       unix_from_hack;                 # insert > before From in body
  #
  #       file = /var/spool/mail/${lc:user},      # use this location for Linux
  #                                               # Note, mail spool must be 1777
  #       file = ~/mailfile,              # use this location for better security
  #       group = mail,                   # group to own file for System V
  #       mode = 0660,                    # under System V, group mail can access
  #       suffix = "\n",                     # append an extra newline
  #       append_as_user,


  # This allows each user to have a ~/.procmailrc file to control filtering
  # of mail and saving mail from mail lists in separate mailboxes if they wish.
  local:  +inet,
          -uucp,
          driver = pipe,                  # append message to a file
          return_path,                    # include a Return-Path: field
          local,                          # use local forms for delivery
          from,                           # supply a From_ envelope line
          unix_from_hack;                 # insert > before From in body

          cmd = "/usr/bin/procmail",  # use procmail for local delivery
          parent_env,                     # environment info from parent addr
          pipe_as_user,                   # use user-id associated with address
          umask = 0022,                   # umask for child process
  #       -ignore_status,                 # exit status should be believed
  #       -ignore_write_errors,           # retry on broken pipes


  # pipe - deliver mail to shell commands
  # This is used implicitly when smail encounters addresses which begin with
  # a vertical bar character, such as "|/usr/lib/news/recnews talk.bizarre".
  # The vertical bar is removed from the address before being given to the
  # transport.
  #pipe:  driver = pipe,                  # pipe message to another program
  #       return_path, local, from, unix_from_hack;
  #
  #       cmd = "/bin/sh -c $user",   # send address to the Bourne Shell
  #       parent_env,                     # environment info from parent addr
  #       pipe_as_user,                   # use user-id associated with address
  #       umask = 0022,                   # umask for child process
  #       -log_output,                    # do not log stdout/stderr
  #       ignore_status,                  # exit status may be bogus, ignore it
  #       ignore_write_errors,            # ignore broken pipes


  # file - deliver mail to files
  # This is used implicitly when smail encounters addresses which begin with
  # a slash or squiggle character, such as "/usr/info/list_messages" or
  # perhaps "~/Mail/inbox".
  #file:  driver = appendfile,
  #       return_path, local, from, unix_from_hack;
  #
  #       file = $user,                   # file is taken from address
  #       append_as_user,                 # use user-id associated with address
  #       expand_user,                    # expand ~ and $ within address
  #       check_path,
  #       suffix = "\n",
  #       mode = 0644
  # uux - deliver to the rmail program on a remote UUCP site
  #
  # As many as five recipient addresses will be delivered to the remote
  # host in one UUCP transaction.
  uux:    driver = pipe,
          -uucp,
          inet,
  #       uucp,                           # use UUCP-style addressing forms
          from,                           # supply a From_ envelope line
          max_addrs = 5,                  # at most 5 addresses per invocation
          max_chars = 200;                # at most 200 chars of addresses
  # the -r flag prevents immediate delivery, parentheses around the
  # $user variable prevent special interpretation by uux.
          cmd = "/usr/bin/uux - -r -g$grade $host!rmail $((${strip:user})$)",
  #        cmd="/usr/bin/uux - $host!rmail $(($user)$)",
          ignore_write_errors,            # ignore broken pipes
          umask = 0022,
  #       pipe_as_sender,


  # uux_one_addr - deliver mail over UUCP to a remote host that can take
  #                one address at a time.
  # This is often necessary when delivering to a site running an unmodified
  # version of 4.1BSD.
  uux_one_addr:
          driver = pipe,
          uucp,                           # use UUCP-style addressing forms
          from;                           # supply a From_ envelope line
  # the -r flag prevents immediate delivery
          cmd = "/usr/bin/uux - -r -g$grade $host!rmail (${strip:user})",
          umask = 0022,
          pipe_as_sender


  queueonly:
          driver = pipe;                  # send the message to a pipe
          cmd = "/usr/lib/sendmail -Q -f $sender -bm $user",
                                          # use getmail for local delivery
          user=root,                      # execute getmail as "root"
          group=mail,                     # execute getmail as "mail"
          parent_env,                     # environment info from parent addr
          -pipe_as_user,                  # use user-id associated with address
          umask = 0007,                   # umask for child process

  # to deliver the message.  The smtp transport is included only if BSD
  # networking exists.
  # The uucp attribute can be specified for transfers within the UUCP
  # zone.  The inet attribute must be specified for transfers within the
  # Internet.
  # NOTE: This is hardly optimal, a backend should exist which can handle
  #       multiple messages per connection.
  # ALSO: It may be necessary to restrict max_addrs to 100, as this is the
  #       lower limit SMTP requires an implementation to handle for one
  #       message.
  smtp:   driver=tcpsmtp,
          inet,                           # if UUCP_ZONE is not defined
  #       uucp,                           # if UUCP_ZONE is defined
          -max_addrs, -max_chars;         # no limit on number of addresses

          short_timeout=5m,               # timeout for short operations
          long_timeout=2h,                # timeout for longer SMTP operations
          service=smtp,                   # connect to this service port
  # For internet use: uncomment the below 4 lines
         use_bind,                       # resolve MX and multiple A records
         defnames,                       # use standard domain searching
         defer_no_connect,               # try again if the nameserver is down
         local_mx_okay,                  # fail an MX to the local host


  ifmail:
          from,received,max_addrs=5,max_chars=200,
          driver=pipe;
          pipe_as_sender,
          cmd="/usr/local/bin/ifmail -x9 -r$host $((${strip:user})$)"




  Du skall endast inkludera ifmail-delen om du använder ifmail för FIDO
  post. Förutom det skall du inte behöva ändra någonting i denna filen,
  vilken definierar transport-agenter (typ uux, smtp ...) som du kan
  använda som parametrar i andra konfigurationsfiler.

  Notera att jag har kommenterat bort vissa delar, som 'pipes' eller
  'file', för att öka säkerheten.


  5.7.  Katalogen maps/


  Den innehåller filerna map och table:

  Först filen map



       #N      foo.bar foo2.bar2
       #S      AT 486/RedHat Linux 1.2.13
       #O      organization
       #C      contact
       #E      administration (email)
       #T      phone
       #P      address
       #R
       #U      hosts connected via uucp
       #W      created/edited by
       #
       hname polux

       hname linux.eu.org

       hname = polux
       hname = polux.linux.eu.org




  Återigen så skall du ändra denna fil så att den speglar din situation
  (Jag förses av polux.linux.eu.org).

  Nu filen table





       *       uux





  Du kan definiera olika transportsätt till olika vägar, till exempel
  'smtp' för maskinerna i ditt lokala nätverk, 'uux' (dvs uucp) för
  resten av världen eller vice-versa (Jag använder uucp för all utgående
  e-post, därför har jag '*').


  5.8.  Andra bra exempel


  De förra filerna är de jag för närvarande använder för min sajt, du
  bör inte stöta på några problem med att använda dem som grund för dina
  egna filer.

  Följande filer har jag med för att visa andra bra exempel på hur man
  kan konfigurera smail på ett annat sätt.



















































  #ident "@(#) transports,v 1.2 1990/10/24 05:20:46 tron Exp"

  # See smail(5) for a complete description of the contents of this file.

  # local - deliver mail to local users
  #
  # Tell smail to append directly to user mailbox files in the /usr/mail
  # directory.
  local:  driver = appendfile,            # append message to a file
          return_path,                    # include a Return-Path: field
          local,                          # use local forms for delivery
          from,                           # supply a From_ envelope line
          unix_from_hack;                 # insert > before From in body

          file = /usr/mail/${lc:user},    # use this location for System V
          group = mail,                   # group to own file for System V
          mode = 0660,                    # under System V, group mail can access
          suffix = "\n",                     # append an extra newline
          append_as_user,

  # pipe - deliver mail to shell commands
  #
  # This is used implicitly when smail encounters addresses which begin with
  # a vertical bar character, such as "|/usr/lib/news/recnews talk.bizarre".
  # The vertical bar is removed from the address before being given to the
  # transport.
  pipe:   driver = pipe,                  # pipe message to another program
          return_path, local, from, unix_from_hack;

          cmd = "/bin/sh -c $user",   # send address to the Bourne Shell
          parent_env,                     # environment info from parent addr
          pipe_as_user,                   # use user-id associated with address
          umask = 0022,                   # umask for child process
          -log_output,                    # do not log stdout/stderr
          ignore_status,                  # exit status may be bogus, ignore it
          ignore_write_errors,            # ignore broken pipes

  # file - deliver mail to files
  #
  # This is used implicitly when smail encounters addresses which begin with a
  # slash or squiggle character, such as "/usr/info/list_messages" or perhaps
  # "~/Mail/inbox".
  file:   driver = appendfile,
          return_path, local, from, unix_from_hack;

          file = $user,                   # file is taken from address
          append_as_user,                 # use user-id associated with address
          expand_user,                    # expand ~ and $ within address
          suffix = "\n",
          mode = 0644

  # uux - deliver to the rmail program on a remote UUCP site
  #
  # As many as five recipient addresses will be delivered to the remote host in
  # one UUCP transaction.
  uux:    driver = pipe,
          uucp,                           # use UUCP-style addressing forms
          from,                           # supply a From_ envelope line
          max_addrs = 5,                  # at most 5 addresses per invocation
          max_chars = 200;                # at most 200 chars of addresses

          # the -r flag prevents immediate delivery, parentheses around the
          # $user variable prevent special interpretation by uux.
          cmd = "/usr/bin/uux - -r -g$grade $host!rmail $((${strip:user})$)",
          umask = 0022,
          pipe_as_sender
  # uux_one_addr - deliver mail over UUCP to a remote host that can take one
  # address at a time.
  #
  # This is often necessary when delivering to a site running an unmodified
  # version of 4.1BSD.
  uux_one_addr:
          driver = pipe,
          uucp,                           # use UUCP-style addressing forms
          from;                           # supply a From_ envelope line

          # the -r flag prevents immediate delivery
          cmd = "/usr/bin/uux - -r -g$grade $host!rmail (${strip:user})",
          umask = 0022, pipe_as_sender

  # demand - deliver to a remote rmail program, polling on demand
  demand: driver = pipe,
          uucp, from, max_addrs = 5, max_chars = 200;

          # with no -r flag, try to contact remote site immediately
          cmd = "/usr/bin/uux - -g$grade $host!rmail $(($user)$)",
          umask = 0022, pipe_as_sender

  # uusmtp - deliver to the rsmtp program on a remote UUCP site
  #
  # Deliver using a simple Batched SMTP protocol to the remote machine.
  # This allows much more arbitrary addresses to be used.  It also
  # removes the limit on recipient addresses per invocation of uux.
  uusmtp: driver = pipe,
          bsmtp,                          # send batched SMTP commands
          -max_addrs,                     # there is no limit on the number or
          -max_chars;                     #   total size of recipient addresses.

          # supply -r to prevent immedate delivery, the recipient addresses
          # are stored in the data sent to the standard input of rsmtp.
          cmd = "/usr/bin/uux - -r -g$grade $host!rsmtp",
          umask = 0022, pipe_as_sender

  # demand_uusmtp - deliver to a remote rsmtp program, polling on demand
  demand_uusmtp:
          driver = pipe,
          bsmtp, -max_addrs, -max_chars;

          # with no -r flag, try to contact remote site immediately
          cmd = "/usr/bin/uux - -g$grade $host!rsmtp",
          umask = 0022, pipe_as_sender

  # smtp - deliver using SMTP over TCP/IP
  #
  # Connect to a remote host using TCP/IP and initiate an SMTP conversation to
  # deliver the message.  The smtp transport is included only if BSD networking
  # exists.

  # NOTE: It may be necessary to restrict max_addrs to 100, as this is the
  #       lower limit SMTP requires an implementation to handle for one
  #       message.
  smtp:   driver = smtp,
          -max_addrs,
          -max_chars








  #ident "@(#) table,v 1.2 1990/10/24 05:20:31 tron Exp"

  # This file names the transports that are to be used in delivering
  # to specific hosts from bargw.

  #host           transport
  #--------       ---------
  curdsgw         demand_uusmtp   # deliver using batched SMTP
  oldbsd          uux_one_addr    # 4.1BSD sites cannot take more than one addr
  sun             demand          # call sun when their is mail to send
  *               uux             # for all others, poll at intervals





  5.9.  Starta om inetd


  För att köra smail som en smtp daemon, lägg till en av följande rader
  i /etc/inetd.conf:

           smtp stream tcp nowait  root  /usr/bin/smtpd smtpd

  eller:

           smtp stream tcp nowait  root  /usr/sbin/tcpd  /usr/sbin/in.smtpd




  Utgående e-post skickas automatiskt, om man använder elm.


  5.10.  Smail med smtp


  Vanligtvis så använder internetleverantörer smtp, därför skall du inte
  ha några problem med att skicka din e-post. Om din Internet-koppling
  är nere när du skickar e-post, så sparas den i
  /var/spool/smail/input/. När kopplingen kommer upp så körs runq som
  gör att e-posten skickas iväg. Men problemet är att ta emot e-post
  eftersom din leverantör har många kunder att se efter, inte bara dig.

  Vanligtvis kan du hämta din e-post via POP-protokollet, se POP-
  avsnittet nedan.


  6.  GAMMALT AVSNITT: Sendmail+IDA


  För stora sajter kan det vara värt att välja sendmail på grund av det
  är "otroligt lättanvänt" (väldigt relativ känsla när man känner till
  qmail) men du måste avgöra om du vill ha sendmail+IDA eller sendmail
  8.x:


  ·  Om du använder en gammal kärna (1.0): sendmail+IDA

  ·  Om du använder en inte så gammal kärna (1.2): sendmail+IDA och
     modifiering av källkod

  ·  Nyare kärna (2.0): sendmail 8.x

  Kom ihåg: linuxnybörjare eller personer som vill ha säkerhet och/eller
  lätt konfiguration bör istället använda smail eller qmail, vilka är
  lättare att använda och säkrare.


  6.1.  Installation av källkod


  Om din distribution inte innehåller ett installeringsfärdigt paket med
  sendmail (.rpm för RedHat, Caldera och Suse, .deb för Debian) så ladda
  hem källkoden och kör:


  ·  cd / ; tar -zxvf sendmail5.67b+IDA1.5.tgz


  ·  byt till katalogen /usr/local/lib/mail/CF och kopiera exempelfilen
     local.m4 till ditt_datornamn.m4.

  Editera denna fil och byt ut hostname, aliases och smarthost mot de
  som är korrekta för din sajt. Standardfilen är för en endast-uucp sajt
  som har domäniserade huvuden och som 'pratar' med en smart värd.  Kör
  sedan make ditt_datornamn.cf och flytta resultatet till
  /etc/sendmail.cf


  ·  Om du har en endast-uucp sajt så behöver du inte skapa någon av de
     tabeller som nämns i filen README.linux.

  Du kommer att behöva ändra lite grann i filerna så att Makefile
  fungerar. Ändra bara i .m4 filen, kör make sendmail.cf och börja testa
  det.


  ·  Om du har en endast-uucp sajt och du 'pratar' med sajter utöver din
     smarthost, så måste du lägga till uucpxtable-poster för var och en
     av dem (annars kommer e-post till dem också att gå via smarthost)
     och köra dbm mot den ändrade uucpxtable.


  ·  Om du kör Rich Brauns orginaldistribution av 5.67a, och om du
     ändrar din .cf-fil så måste du frysa konfigurationen med
     /usr/lib/sendmail -bz för att ändringarna skall ha någon effekt.

  Du bör också updatera din version till åtminstonde 5.67b eftersom det
  finns ett elakt säkerhetshål i 5.67a och tidigare. En annan bra sak är
  att, om du har mail.debug satt och du kör syslogd, så kommer dina
  inkommande och utgående e-postmeddelanden att loggas. Se filen
  /etc/syslog.conf för mer information.

  Källkoden för sendmail+IDA finns på ftp://vixen.cso.uiuc.edu.  Det
  krävs inga patchar om du kör en kärna som 1.00.

  Om du kör en kärna >1.1.50, så kommer du att få skoj med att ta bort
  de flesta Linux-specifika patchar som nu finns i vanilla källkoden.
  (Jag *sade* ju att sendmail+IDA bara var för gamla kärnor :-)

  Det är extremt självklart var detta behövs: kör bara make och när det
  blir fel, gå till den raden i källkoden och kommentera bort den Linux-
  specifika koden som finns där.

  Om du skall köra sendmail+IDA så rekommenderar jag starkt att du tar
  versionen sendmail5.67b+IDA1.5 eftersom alla nödvändiga Linux-
  specifika patchar nu finns i vanilla källkoden och flera
  säkerhetsläckor som FANNS i de gamla versionerna har täppts till.

  Nu är linux kärnan på 2.0 och du bör välja sendmail 8.x istället för
  sendmail+IDA.
  6.2.  Filen sendmail.m4


  Sendmail+IDA kräver att du sätter upp en sendmail.m4 fil istället för
  att ändra direkt i filen sendmail.cf. Det fina med detta är att det är
  enkelt att sätta upp konfigurationer som är extremt svåra (om inte
  totalt omöjliga för de flesta) att sätta upp korrekt i smail eller
  traditionell sendmail.

  En sendmail.m4 fil som motsvarar ovanstående exempel med smail ser ut
  som följer:


    dnl #------------------ SAMPLE SENDMAIL.M4 FILE ------------------
    dnl #
    dnl # (the string 'dnl' is the m4 equivalent of commenting out a line)
    dnl #
    dnl # you generally don't want to override LIBDIR from the compiled in paths
    dnl #define(LIBDIR,/usr/local/lib/mail)dnl    # where all support files go
    define(LOCAL_MAILER_DEF, mailers.linux)dnl    # mailer for local delivery
    define(POSTMASTERBOUNCE)dnl                   # postmaster gets bounces
    define(PSEUDODOMAINS, BITNET UUCP)dnl         # don't try DNS on these
    dnl #
    dnl #-------------------------------------------------------------
    dnl #
    dnl # names we're known by
    define(PSEUDONYMS, myhostname.subdomain.domain myhostname.UUCP)
    dnl #
    dnl # our primary name
    define(HOSTNAME, myhostname.subdomain.domain)
    dnl #
    dnl # our uucp name
    define(UUCPNAME, myhostname)dnl
    dnl #
    dnl #-------------------------------------------------------------
    dnl #
    define(UUCPNODES, |uuname|sort|uniq)dnl       # our uucp neighbors
    define(BANGIMPLIESUUCP)dnl                    # make certain that uucp
    define(BANGONLYUUCP)dnl                       #  mail is treated correctly
    define(RELAY_HOST, my_uucp_neighbor)dnl       # our smart relay host
    define(RELAY_MAILER, UUCP-A)dnl               # we reach moria via uucp
    dnl #
    dnl #--------------------------------------------------------------------
    dnl #
    dnl # the various dbm lookup tables
    dnl #
    define(ALIASES, LIBDIR/aliases)dnl            # system aliases
    define(DOMAINTABLE, LIBDIR/domaintable)dnl    # domainize hosts
    define(PATHTABLE, LIBDIR/pathtable)dnl        # paths database
    define(GENERICFROM, LIBDIR/generics)dnl       # generic from addresses
    define(MAILERTABLE, LIBDIR/mailertable)dnl    # mailers per host or domain
    define(UUCPXTABLE, LIBDIR/uucpxtable)dnl      # paths to hosts we feed
    define(UUCPRELAYS, LIBDIR/uucprelays)dnl      # short-circuit paths
    dnl #
    dnl #--------------------------------------------------------------------
    dnl #
    dnl # include the 'real' code that makes it all work
    dnl # (provided with the source code)
    dnl #
    include(Sendmail.mc)dnl                         # REQUIRED ENTRY !!!
    dnl #
    dnl #------------ END OF SAMPLE SENDMAIL.M4 FILE -------




  6.3.  Att definiera en lokal e-postutdelare


  Till skillnad från de flesta Unixdistributioner, så har inte Linux en
  lokal e-postutdelare som standard. Men deliver eller procmail är
  vanligtvis installerat, så ingen komplexitet kommer att läggas till
  denna redan komlexa konfiguration. Jag rekommenderar att använda de
  vanligt förekommande deliver eller procmail programmen, som kan vara
  valbara paket i en Linuxdistribution.

  För att göra detta så måste du definiera en LOCAL_MAILER_DEF i filen
  sendmail.m4 som pekar på en fil som ser ut som följer:


    # -- /usr/local/lib/mail/mailers.linux --
    #     (local mailers for use on Linux )
    Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10, R=25/10, A=deliver $u
    Mprog,  P=/bin/sh,       F=lsDFMeuP,   S=10, R=10, A=sh -c $u



  Det finns även inbyggt standard för deliver i filen Sendmail.mc som
  inkluderas i filen sendmail.cf. För att använda det så skall du inte
  använda filen mailers.linux utan istället definiera följande i din
  sendmail.m4:


     dnl --- (in sendmail.m4) ---
     define(LOCAL_MAILER_DEF, DELIVER)dnl       # mailer for local delivery



  Tyvärr så förutsätter Sendmail.mc att deliver är installerat i /bin,
  vilket inte är fallet med Slackware 1.1.1 (som installerar det i
  /usr/bin). I så fall måste du antingen göra en symbolisk länk eller
  kompilera om deliver från källkoden så att det hamnar i /bin. Notera
  att procmail generellt är bättre än deliver, till exempel för
  filtrering av e-post.


  6.4.  Sendmail+IDA dbm tabeller


  Att sätta upp speciellt uppträdande för sajter eller domäner görs
  genom ett antal dbm tabeller istället för att ändra direkt i filen
  sendmail.cf.

  Se Julinumret 1994 av Linux Journal (om du fortfarande kan hitta det
  :-), dokumentationen i källkoden eller i sendmail kapitlet i
  Networking Administration Guide för mer detaljer.


  ·  mailertable   - definierar speciellt uppträdande för andra datorer
     eller domäner.

  ·  uucpxtable    - tvingar UUCP utdelning av e-post till datorer som
     är i DNS format.

  ·  pathtable     - definierar UUCP 'bang-paths' till andra datorer
     eller domäner.

  ·  uucprelays    - kortsluter 'pathalias' vägen till välkända datorer.

  ·  genericfrom   - konverterar interna adresser till generella som kan
     ses från utsidan.

  ·  xaliases      - konverterar generella adresser till/från giltiga
     interna adresser.

  ·  decnetxtable  - konverterar RFC-822 adresser till DECnet adresser.


  6.5.  Så vilka poster krävs?


  När man inte använder någon av de valbara dbm tabellerna så skickar
  sendmail e-post via RELAY_HOST och RELAY_MAILER som är definierade i
  filen sendmail.m4 som används för att generera sendmail.cf.  Det är
  lätt att gå förbi det genom poster i domaintable eller uucpxtable.

  En generell sajt som finns på Internet och förstår DNS, eller en som
  är endast-uucp och vidarebefodrar all e-post via UUCP genom en smart
  RELAY_HOST, behöver antagligen inte specificera några tabellposter
  alls.

  I stort sett alla system bör sätta makrona DEFAULT_HOST och
  PSEUDONYMS, vilka definierar det kanoniska namnet på sajten och alias
  som den är känd som.

  Om allt du har är en vidarebefodringsdator och
  vidarebefodringsutdelare så behöver du inte sätta dessa standardvärden
  eftersom det fungerar automagiskt. UUCP-datorer behöver antagligen
  också sätta UUCPNAME till dess officiella uucp-namn.

  De behöver också sätta RELAY_MAILER och RELAY_HOST vilket sätter på
  'smarthost' routing genom en vidarebefodrande e-post utdelare.

  Transportprotokollet som skall användas definieras i RELAY_MAILER och
  skall vanligtvis vara UUCP-A för UUCP-sajter. Om din sajt är endast-
  smtp och förstår DNS så skall du ändra RELAY_MAILER.

  Om du har en SLIP-sajt så kan du göra på det enkla sättet och bara
  vidarebefodra all utgående e-post till din leverantör som sedan kan
  hantera den. För att göra så så skall du definiera ISOLATED_DOMAINS
  och VALIDATION_DOMAINS till din domän. Du skall även definiera
  RELAY_HOST till att vara din leverantör och RELAY_MAILER till att vara
  TCP. Självklart skall du fråga om lov innan du ställer in ett annat
  system till att vara din RELAY_HOST.


  6.6.  Sendmail 8.x


  Sendmail 8.7.x från Berkeley var den senaste stora revisionen efter
  sendmail5. Den hade underbart inbyggt stöd för linux: bara make linux
  och allt var klart.

  Du klarar dig antagligen bäst genom att ta en av de olika
  binärdistributionerna från något av Linuxarkiven istället för att
  kämpa med saker som Berkeley dbm själv.

  Det finns en bra distribution av sendmail 8.6.12 från Jason Haar
  (j.haar at lazerjem.demon.co.uk) på sunsite.unc.edu i
  /pub/Linux/system/Mail/delivery/sendmail-8.6.12-bin.tgz som innehåller
  dokumentationen från källkoden och en väldigt trevlig snabbeskrivning
  av hur man kör sendmail v8 för vanliga konfigurationer.

  Med sendmail v8 vill man konfigurera så lite som möjligt för att få
  jobbet gjort. Följande är ett exempel som iallafall skall få dig på
  rätt väg.


  6.7.  Exempel på 8.7.x mc -fil


  Liksom sendmail+IDA så använder sendmail v8 m4 till att processa en
  konfigurationsfil till en sendmail.cf som används av sendmail.
  Följande är den mc-fil som jag använder för närvarande på min sajt
  (ppp till Internet för utgående e-post, uucp för inkommande e-post).


          dnl divert(-1)
          #---------------------------------------------------------------------
          #
          # this is the .mc file for a linux host that's set up as follows:
          #
          #       - connected to Internet for outbound mail (ppp here)
          #       - connected via UUCP for incoming mail
          #       - domainized headers
          #       - no local mailer (use 'deliver' instead)
          #       - no DNS running so don't canonicalize outgoing via DNS
          #       - all non-local outbound mail goes to the RELAY_HOST over smtp
          #           (we run ppp and let our service provider do the work)
          #
          #                                       vds 3/31/95
          #
          #---------------------------------------------------------------------
          include(`../m4/cf.m4')
          VERSIONID(`linux nodns relays to slip service provider smarthost')dnl
          Cwmyhostname.myprimary.domain myhostname.UUCP localhost
          OSTYPE(linux)
          FEATURE(nodns)dnl
          FEATURE(always_add_domain)dnl
          FEATURE(redirect)
          FEATURE(nocanonify)
          dnl MAILER(local)dnl
          MAILER(smtp)dnl
          MAILER(uucp)dnl
          define(`RELAY_HOST', smtp:my.relay.host.domain)
          define(`SMART_HOST', smtp:my.relay.host.domain)
          define(`UUCP_RELAY', smtp:my.relay.host.domain)
          define(`LOCAL_MAILER_PATH', `/bin/deliver')
          define(`LOCAL_MAILER_ARGS', `deliver $u')




  6.8.  Sendmail v8 skillnader


  Det finns några skillnader. Hittills har jag hittat följande:


  Istället för runq så skall man köra sendmail -q för att köra e-
  postkön!



  6.9.  Lokala e-postutdelare


  Till skillnad från de flesta operativsystem så hade Linux inte
  'inbyggd' e-post. Du var tvungen att ha ett program som kunde dela ut
  den lokala e-posten, till exempel lmail, procmail eller deliver.

  Men, alla nyare distributioner inkluderar en lokal utdelare nu.


  Dokumentation för hur man använder de olika finns i binärversionen av
  sendmail5.67b+IDA1.5 (på sunsite) som nämns ovan.


  7.  POP e-post


  Detta avsnitt handlar också om IMAP som inte är helt olikt POP.


  7.1.  Historia


  På ett nätverk med arbetsstationer har e-post alltid varit ett
  problem:


  ·  Antingen använder du användar-id@dator.foo.com med problem när
     'dator' är nere, visar din nätverkstopologi för personer på
     utsidan, har olika adresser för samma person som byter till en
     annan dator,...

  ·  Eller så använder du en e-post hubb, mailhost.foo.com med regler
     för att omskrivning, så att alla användare ser ut att e-posta från
     samma adress även att de finns vid olika datorer.

  Men i det fallet, hur kan en användare läsa sin e-post?

  Använda en rsh med elm? :-)

  Det skulle överbelasta våran e-post hubb!  En metod var
  vidarebefodring med UUCP, smtp, osv. men det är för komplicerat.

  Sedan kom POP/IMAP, båda med säkerhetsproblem i början (som nu är
  fixade genom att använda ssh i nya versioner). E-postprogram måste
  ibland ställas in lokalt (som qmail, smail eller vmail om du tex
  använder elm, men mozilla undviker det !) men att hämta och skicka e-
  post är lättare.


  7.2.  Att hämta e-post


  Här är POPs största nackdel: lösenordet skickas som klartext över
  nätverket och vissa e-postläsare vet inte om POP. Du måste välja en e-
  postläsare som vet om POP, som Pine, Emacs, Netscape, Mutt, ....

  Lösenordsproblemet kan lösas genom att skapa en krypterad 'kanal' som
  har POP, eller att använda APOP eller RPOP utökningar. E-
  postläsarproblemet kan lösas antingen genom att byta läsare (mozilla
  klarar POP, så även Emacs och Pine) eller genom att använda en POP 'e-
  post hämtare' med ett lokalt e-post program.

  Här är några POP-program som är värda ett försök:


  ·  gwpop (a Good Way to POP) är väldigt säkert eftersom det skapar en
     krypterad kanal och placerar e-posten direkt i 'spoolen'. Men det
     beror av Perl.

  ·  popclient, lätt att använda:

     Till exempel om ditt användarnamn är 'john' och ditt lösenord är
     'GanskaHemligt' så skulle du köra:


  $ popclient -3 -v mail.acme.net -u john -p "GanskaHemligt" -k -o JOHN-INET-MAIL





  ·  fetchmail, vilket stöds aktivt och är otroligt lätt att använda.
     Det konfigureras i ~/.fetchmailrc och sedan behöver du bara köra
     fetchmail när du vill hämta din e-post.

     Här är min ~/.fetchmailrc


       poll mail.server protocol pop3:
               forcecr
               password PrettySecret;





  Notera att 'forcecr' behövs för att använda fetchmail med qmail som
  strikt följer RFCs.


  Här kommer även översättarens ~/.fetchmailrc


       defaults proto pop3 no dns keep
                mda "/usr/sbin/sendmail -oem %s"

       # Hämta från pop-server 1
       poll popserver.universitetet user användar-id is tomas password ganskaHemligt

       # Hämta från pop-server 2
       poll popserver.isp user användar-id2 is tomas password mycketHemligt fetchall no keep




  Detta visar hur man kan hämta e-post från flera POP servrar på en gång
  och dela ut den till rätt lokal användare ('user xx is yy' betyder att
  man hämtar xx's e-post från pop-servern och delar ut den till yy på
  den lokala maskinen). Det som står under 'defaults' gäller för alla
  'poll'-rader.

  7.3.  Att skicka e-post


  För detta behöver du e-postmjukvara som förstår smtp, tex qmail,
  smail, vmail eller mozilla (denna kan allting: e-postläsare, POP,
  smtp!)

  Gå till en av de tidigare avsnitten för att installera och konfigurera
  den du tycker bäst om. Sedan kommer du att komma till 'Testning',
  testa att skicka några e-postmeddelanden till ett lokalt konto på e-
  post hubben.


  7.4.  Att läsa e-post


  Om ditt program inte fixar allting själv så kan du installera elm,
  pgp, mush, pine, ... det finns många bra fritt tillgängliga program
  för Linux.

  7.5.  Testning


  För att kolla att din e-postserver har POP, försök med:



       $ telnet mailhost 110




  Om det fungerar så skall du få något unefär som: "OK Pop server (...)
  starting". Skriv quit.

  För att installera en ssh-krypterad kanal, testa först din e-
  postserver med:



       $ ssh mailhost date




  Om du får tillbaka ett datum, så skall allt vara okej. Notera att ssh
  kommer inte att fråga efter ett lösenord, därför måste du skapa en fil
  .shosts på e-postservern som innehåller klientens namn. För att desta
  omdirigering av ssh port (som gwpop använder), skriv:



       $ ssh -n -f -L 12314:localhost:110 mailhost sleep 30

       sedan

       $ telnet localhost 12314




  Då skall du förhoppningsvis se e-post hubbens POP meddelande. Om du
  inte använder ssh, glöm inte att kommentera bort $ssh i alla gwpop
  skript. För att se om procmail kör, försök med procmail -v.


  7.6.  Användning


  Nu kan du modifiera gwpops Perl-skript för att kolla att allt är okej,
  kör sedan qwpop:



       $ gwpop -v your-username
       POP password on mailhost: yoursecretpasword




  Om meddelanden från gwpop är normala så skall e-posten från e-post
  hubben laddas ner till din lokala maskin och sparas där du
  specificerade.(testa med några e-postmeddelanden!)

  Du kan också köra gwpop som daemon:

       $ gwpop -d $HOME/tmp your-username




  Alla meddelanden från gwpop skickas då till syslog och gwpop kommer
  alltid att vara igång; en 'HUP' signal gör att qwpop hämtar din e-
  post.

  Du kan hämta POP-mjukvaran på:

  ftp://ftp.pasteur.fr/pub/Network/gwpop

  ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail

  http://www.cs.hut.fi/ssh/


  8.  E-post användarprogram


  Detta avsnitt innehåller information relaterad till 'användarprogram',
  vilket avser mjukvaran som användaren ser och använder. Denna mjukvara
  litar till transportprogrammen som diskuterats ovan. Flera andra
  användarprogram finns nu tillgängliga (pine, mush ...) men jag har
  inte hittat någon linux-specifik information att berätta om dem. Säg
  till om jag missar något!


  8.1.  Mutt

  Det skall inte vara några problem att kompilera, installera och köra
  mutt. Qmail användare använder antingen en qmail-patch eller kör med
  parametern -f för att läsa sin lokala e-postkatalog.

  Om mutt besvärar med ett 'unknown terminal error' efter en
  uppgradering av distributionen så bara kompilera om det.


  8.2.  Elm


  Elm kan kompileras, installeras och köras utan problem i Linux. För
  mer information, titta i elm's källkod och installations
  instruktioner. Elm och filter måste ha "mode 2755" (gruppen mail) och
  /var/spool/mail/ "mode 775" och grupp mail.

  Användare av qmail bör hämta en patch för att kunna använda bra
  egenskaper hos qmail, eller köra elm med flaggan -f för att peka till
  deras lokala e-postkatalog.

  Om du använder en binärdistribution, så måste du skapa en fil
  /usr/local/lib/elm/elm.rc för att inte använda de inkompilerade namnen
  på dator och domän:


  ·  byt ut subdomain.domain med ditt domännamn

  ·  byt ut myhostname med ditt datornamn (utan domän)







          #---------- /usr/local/lib/elm/elm.rc ------------------
          #
          # this is the unqualified hostname
          hostname = myhostname
          #
          # this is the local domain
          hostdomain = subdomain.domain
          #
          # this is the fully qualified hostname
          hostfullname = myhostname.subdomain.domain
          #
          #--------------------------------------------------------



  En sak som du skall veta är att om du har kompilerat in MIME-stöd i
  elm så måste metamail vara installerat och finnas i din sökväg, annars
  kommer elm inte att kunna läsa e-post i MIME format som du tar emot.
  Metamail finns på thumper.bellcore.com och såklart via archie.

  I kategorin "för cool för att vara sann", finns det en distribution av
  elm-2.4.24 som har stöd för PGP. För att testa det, hämta filen
  ftp://ftp.viewlogic.com/pub/elm-2.4pl24pgp3.tar.gz. Du konfigurerar
  och kompilerar det på samma sätt som du gör med normala elm, vilket
  betyder att du antagligen behöver installera patcharna som nämns ovan.
  För vad det är värt, jag kör det här och jag gillar det mycket.
  Självklart måste det finnas senare versioner att tillgå, inklusive
  elm-ME+.

  Detta är inget Linux-specifikt, det antas (felaktigt) vara en
  irriterande bugg i elm. Vi har hört att elm ibland falerar med ett
  meddelande att det inte kan göra en malloc() på ett stort antal bytes.
  Den identifierade sättet att undvika detta är att ta bort de post-
  processade globala e-postaliasen (aliases.dir och aliases.pag).

  DETTA ÄR INTE EN BUGG I ELM, det är ett fel i konfigurationen av elm
  som den som kompilerat elm har gjort.

  Elm har ett utökat och icke-kompatibelt format för alias. Du måste se
  till att sökvägen som elm använder för alias inte är samma som den som
  sendmail/smail använder. Av döma av volymen av rapporter med detta
  problem, så är det självklart att åtminstonde en stor distribution 'på
  gatan' har varit felkonfigurerad. (från  scot at catzen.gun.de (Scot
  W. Stevenson) )

  Nuvarande version av metamail kräver csh för vissa av dess skript. Att
  inte ha csh (eller tcsh) skapar väldigt intressanta fel...


  8.3.  Mailx


  Om du inte har ett lokalt mailx program, spara dig mödan. Hämta bara
  mailx paketet från Slackware 2.1.0 eller senare, vilka har en bra
  implemetering av mailx5.5. Om du gillar att bygga från källkod så
  kompilerar mailx v5.5 i Linux utan patchar om du har pmake
  installerat.

  Om någon fortfarande använder det, så rekommenderar jag starkt att ta
  bort de gamla edmail-grejorna från SLS1.00 och ersätta dem med mailx.


  8.4.  Andra användarprogram



  Det är även känt att följande program fungerar i Linux. Använd archie
  för detaljer om hur du hittar dem...


  ·  mutt    - på långa vägar bättre än elm, väldigt enkel att använda

  ·  pine      - från  University of Washington

  ·  metamail  - har MIME-stöd

  ·  mh        - ytterligare ett sätt att hantera e-post.

  ·  deliver   - spara/processa e-post baserat på regler.

  ·  procmail  - spara/processa e-post baserat på regler.

  ·  majordomo - hanterar e-postlistor

  ·  mserv     - erbjuder filer-per-e-post


  9.  Tillkännagivanden


  Följande personer har hjälpt till med att sätta ihop den information
  och erfarenhet som hjälpte till att göra detta dokument möjligt:

  Steve Robbins, Ian Kluft, Rich Braun, Ian Jackson, Syd Weinstein, Ralf
  Sauther, Martin White, Matt Welsh, Ralph Sims, Phil Hughes, Scot
  Stevenson, Neil Parker, Stephane Bortzmayer och särskilt mycket tack
  till Vince Skahan för hans enorma bidrag.

  Om jag glömde någon, ursäkta mig: skicka ett e-postmeddelande!