Mailserver (Courier)

Fra Debianguiden
Skift til: Navigation, Søgning

Inden du kaster dig over dette afsnit omkring opsætning af mail-server, bør du vide, at det er et relativt komplekst domæne, som forudsætter, at du i forvejen har en god forståelse for alle de grundlæggende elementer og principper, som et Linux-operativsystem består af og bygger på. Rent videns-/erfaringsmæssigt antages det, at du allerede har læst og forstået indholdet af disse links (eller tilsvarende stof): Linux - Friheden til at lære Unix, Linux - Friheden til systemadministration, Introduction to Linux - A Hands on Guide, The Linux System Administrator's Guide.

Courier Mail Server Suite er en komplet mail-server baseret på åbne mail-protokoller som ESMTP, IMAP, POP3, osv. Courier er udviklet og vedligeholdes af Mr. Sam. Couriers hjemmeside er www.courier-mta.org. Courier består af flere individuelle komponenter, herunder SMTP-server, IMAP-server, POP3-server, webmail server (SqWebMail) og mail-filtrering (maildrop).

I det følgende gennemgås opsætning af SMTP-, POP3- og IMAP-server. Ydermere anvendes en database til lagring af brugerdata, så vi kommer ligeledes i let berøring med MySQL-serveren. Før installation af Courier påbegyndes, er det naturligvis en forudsætning, at ens mail-servers Fully-Qualified Domain Name (FQDN) (på formen <værtsnavn>.<domænenavn>) allerede er at finde i DNS sammen med de nødvendige MX-records osv.

Bemærk at nogle Internet-udbydere (bl.a. Stofa og TDC) kan have lukket for port 25 i et filter foran deres kunder. Dette bevirker, at mail skal forbi deres server (princippet kaldes 'relay host' / 'smart host'), inden det rammer ens egen server. Se info på disse links: TDC-info, Stofa-info. Dernæst skal du i filen /etc/courier/esmtproutes indsætte en linje ned navnet på den server, som er 'relay host'. Har du fx TDC, vil linjen skulle se således ud (Bemærk kolonet!):

:smtp.mail.dk

Forsøg først uden brug af 'relay host', og hvis dette ikke virker, kan du derpå forsøge dig med en 'relay host'. Hvis en 'relay host' kræver autentifikation, før du kan sende gennem denne, skal du angive de nødvendige oplysninger i filen /etc/courier/esmtpauthclient:

<relayhost> <brugernavn> <adgangskode>

I denne guide bruges 'mailhost.mydomain.org' som FQDN (og IP 62.242.219.250) for vores mail-server. 'mydomain.org' bliver vores første såkaldte virtuelle mail-domæne (for virtuelle mail-brugere oprettet i MySQL-databasen). Mail-serverens egentlige/rigtige systembrugere (herunder root) hører til blandt de ikke-virtuelle brugere, som mail-serveren naturligvis også håndterer mail for. Verificér for en god ordens skyld at al DNS ser ud som forventet, inden du fortsætter:

mailhost:~# host -t a mailhost.mydomain.org
mailhost.mydomain.org has address 62.242.219.250
mailhost:~# host -t a mydomain.org
mydomain.org has address 62.242.219.250
mailhost:~# host -t mx mydomain.org
mydomain.org mail is handled by 10 mailhost.mydomain.org.

Med IP 62.242.219.250 og FQDN mailhost.mydomain.org skal /etc/hosts se således ud:

127.0.0.1          localhost
62.242.219.250     mailhost.mydomain.org   mailhost

Dernæst skal /etc/hostname indeholde:

mailhost

Hvorefter vi lader dette værtsnavn træde i kraft med kommandoen:

mailhost:~# hostname --file /etc/hostname

Verificér at følgende tre kommandoer giver det ventede uddata:

mailhost:~# hostname
mailhost
mailhost:~# hostname -f
mailhost.mydomain.org
mailhost:~# dnsdomainname -v
gethostname()=`mailhost'
Resolving `mailhost' ...
Result: h_name=`mailhost.mydomain.org'
Result: h_addr_list=`62.242.219.250'
mydomain.org

Installation

Først skal vi have installeret de pågældende pakker. Der er dog en lille hage ved Etch's aldrende version af Courier. Denne tillader nemlig ikke umiddelbart indkomne mails med ugyldige/korrupte MIME headers. "Dette er vel godt?", spørger man så sig selv. Både ja og nej. Ja, fordi standarder nu engang er til for at blive overholdt. Nej, fordi mange mail-klienter (især mange webmail-klienter, bl.a. Hotmail) genererer mails med MIME headers, som bryder med standarderne. Når Courier så modtager disse mails, bliver de leveret til modtageren med en meddelelse om, at den pågældende mail er korrupt. Den originale mail fra afsenderen er dog velbevaret og vedhæftet som plain text, men det kan undertiden blive en smule irriterende i længden, hvis man modtager mange mails genereret af fejlbehæftede mail-klienter.

Vil man have mulighed for at lade Courier acceptere og videresende mails med korrupte/ugyldige MIME headers, kan man i stedet benytte sig af Courier-pakkerne fra Lenny (testing) eller Sid (unstable). Se eventuelt dist-upgrade for info om opsætning af apt, så man kan installere pakker fra andet end Etch. I det følgende henter vi pakkerne fra Etch (stable). Vi starter således med at hente de pågældende pakker:

mailhost:~# aptitude install courier-authmysql courier-mta courier-imap courier-pop

Ud over disse pakker skal man også have en MySQL-server kørende. Se MySQL for installation af MySQL samt angivelse af en adgangskode til MySQLs root-bruger, hvilket er særdeles vigtigt! Vælg adgangskoden med omhu.

Opsætning af Courier

Efter pakkerne er blevet installeret på systemet, skal vi have sat Courier op. Der skal redigeres i en del opsætningsfiler, og som en hjælp hertil vises eksempler på, hvorledes disse opsætningsfiler ser ud på et kørende system. Filerne der skal redigeres i, står skrevet øverst i alle eksempel-filer. For at Courier kan autentificere brugere via MySQL, skal vi sikre os, at "authmodulelist" indeholder "authmysql" (se eksemplet nedenfor). Eksempel på /etc/courier/authdaemonrc:

authmodulelist="authpam authmysql"
authmodulelistorig="authcustom authcram authuserdb authldap authpgsql authmysql authpam"
daemons=5
version=""
authdaemonvar=/var/run/courier/authdaemon

Courier skal kende til oplysninger om MySQL-databasen, som holder på vores brugerdata. Eksemplet nedenfor repræsenterer databasestrukturen, som vi opbygger lidt senere i afsnittet. Vælg en fornuftigt adgangskode (MYSQL_PASSWORD) til din courier MySQL-bruger. Eksempel på /etc/courier/authmysqlrc:

MYSQL_SERVER            localhost
MYSQL_USERNAME          courier
MYSQL_PASSWORD          courier_adgangskode
MYSQL_SOCKET            /var/run/mysqld/mysqld.sock
MYSQL_PORT              3306
MYSQL_OPT               0
MYSQL_DATABASE          courier
MYSQL_USER_TABLE        users
MYSQL_CLEAR_PWFIELD     password
DEFAULT_DOMAIN          mydomain.org
MYSQL_UID_FIELD         uid
MYSQL_GID_FIELD         gid
MYSQL_LOGIN_FIELD       id
MYSQL_HOME_FIELD        home

Sørg for at beskytte denne fil, idet den indeholder en MySQL-adgangskode (defineret ud for MYSQL_PASSWORD):

mailhost:~# chmod 600 /etc/courier/authmysqlrc

For de flestes vedkommende kræver POP3- og IMAP-delen af Courier ikke det helt store pilleri. Hvis man dog oplever, at ens mail-klient brokker sig over, at alle forbindelser til serveren er opbrugt, er det måske værd at skrue MAXPERIP lidt i vejret i hhv. /etc/courier/pop3d og /etc/courier/imapd, hvis mange brugere kommer fra samme IP-adresse. Hvis du i øvrigt ønsker at beholde mails i din Trash-folder (IMAP) i meget lang tid, bør du også øge værdien (antal dage) ud for IMAP_EMPTYTRASH.

Filen hosteddomains indeholder en liste over alle virtuelle mail-domæner på serveren. Hvis man angiver domænenavne med et punktum foran domænenavnet (fx '.somedomain.org') bevirker dette, at Courier opfatter det som en wildcard-deklaration. Herved opfattes alle sub-domæner af somedomain.org som værende inkluderet i listen over virtuelle mail-domæner. Selve somedomain.org er dog ikke en del af wildcard-deklaration, hvorfor denne også skal listes eksplicit. Vi nøjes i første omgang med blot at smide 'mydomain.org' heri. Eksempel på /etc/courier/hosteddomains:

mydomain.org
    • HUSK at køre 'makehosteddomains', hver gang filen er blevet redigeret! **

I hosteddomains har vi netop indtastet vores virtuelle mail-domæner. En anden fil kaldet locals har stort set samme virkning som hosteddomains, lige bortset fra at domæner listet i locals får fjernet deres domænenavn, før modtagerens mailbox slås op af Courier. Eksempelvis vil en mail sendt til root@mailhost.mydomain.org blive leveret til root's lokale mailbox i /root. Således bruges locals til at angive domæner, der svarer til dine lokale systembrugere, som kan slås op i /etc/passwd, mens hosteddomains bruges, når du skal have leveret mail til virtuelle brugere i fx en MySQL- eller LDAP-database. Domæner må i øvrigt kun figurere i én af de to filer - aldrig dem begge! Eksempel på /etc/courier/locals:

localhost
mailhost.mydomain.org
    • HUSK at køre 'makealiases', hver gang filen er blevet redigeret! **

Det er altid fornuftig at lade Courier sende al mail til postermaster videre til én selv (f.eks. myself@mydomain.org). Eksempel på /etc/courier/aliases/system:

root: postmaster
mailer-daemon: postmaster
MAILER-DAEMON: postmaster
uucp: postmaster
postmaster: myself@mydomain.org
    • HUSK at køre 'makealiases', hver gang filen er blevet redigeret! **

Opret følgende directory:

mailhost:~# mkdir /etc/courier/esmtpacceptmailfor.dir

Herpå indtastes en liste over samtlige domæner (inkl. localhost), som Courier skal acceptere mails for. Hvis man ønsker det, kan man også heri anvende wildcard-notationen som nævnt i forbindelse med hosteddomains -filen (det samme gælder i øvrigt også for locals -filen). Eksempel på /etc/courier/esmtpacceptmailfor.dir/domains:

localhost
mailhost.mydomain.org
mydomain.org
    • HUSK at køre 'makeacceptmailfor', hver gang filen er blevet redigeret! **

Filen defaultdomain må kun indeholde én linje med et domænenavn. Dette domænenavn bruges af Courier i forskellige sammenhænge. Eksempelvis når Courier sender en mail på vegne at en lokal systembruger, fremstår afsenderens mail som lokalbruger@defaultdomain. Eksempel på /etc/courier/defaultdomain:

mailhost.mydomain.org

Lad Courier acceptere mails med ugyldige/korrupte MIME headers (ikke muligt med Courier fra Etch/stable) Eksempel på /etc/courier/bofh:

opt BOFHBADMIME=accept

Opret nu en courier-systembruger, som får ejerskab af hele mail-hierarkiet i filsystemet. courier-systembrugeren bruges også til at oprette nye mail-brugeres Maildir-struktur:

mailhost:~# groupadd -g 1248 courier
mailhost:~# useradd -m -d /home/courier -g 1248 -u 1248 -s /bin/bash courier

Sidst, men ikke mindst, oprettes en Maildir-struktur til testbruger@mydomain.org:

mailhost:~# su - courier
mailhost:~$ mkdir -p /home/courier/mydomain.org/testbruger
mailhost:~$ maildirmake /home/courier/mydomain.org/testbruger/Maildir

Dette skal du huske altid at gøre i forbindelse med, at du opretter nye mail-brugere på serveren.

Opsætning af MySQL

Vi starter med at oprette en MySQL-database med navn 'courier'. Herpå opretter vi en tabel med navn 'users'. Efter tabellen er oprettet, oprettes en MySQL-bruger med navn 'courier', som får tildelt rettigheder til at kunne bruge den nyoprettede 'courier'-database. Slutteligt indsætter vi brugerdata i tabellen til vores testbruger. BEMÆRK: Adgangskoden (kaldet 'courier_adgangskode'), som skal indtastes i nedenstående 'GRANT'-kommando, er det samme, som vi tidligere angav i filen /etc/courier/authmysqlrc!

mailhost:~# mysql -u root -p
mysql> create database courier;
mysql> use courier;
mysql> CREATE TABLE users (
    ->   id VARCHAR(40) NOT NULL,
    ->   uid SMALLINT NOT NULL DEFAULT 1248,
    ->   gid SMALLINT NOT NULL DEFAULT 1248,
    ->   password VARCHAR(20) NOT NULL,
    ->   home VARCHAR(60) NOT NULL,
    ->   PRIMARY KEY (id)
    -> );
mysql> GRANT ALL PRIVILEGES ON courier.* TO courier@localhost
    ->  IDENTIFIED BY 'courier_adgangskode';
mysql> INSERT INTO users VALUES ('testbruger@mydomain.org', 1248, 1248,
    ->  'testbruger_adgangskode', '/home/courier/mydomain.org/testbruger');

Test af mail-serveren

Nu skulle mail-serveren være klar til brug. En hurtig test med telnet viser, om du kan logge ind via imap/pop3:

mailhost:~$ telnet <host> 143
  a login <mail_addresse> <adgangskode>
  a logout
mailhost:~$ telnet <host> 110
  user <mail_addresse>
  pass <adgangskode>
  quit

Prøv også at sende en mail fra en lokal systembruger på serveren til din virtuelle mail-bruger (testbruger@mydomain.org) med kommandoen:

mailhost:~$ echo foobar | mail -s test testbruger@mydomain.org

Alternativt kan du kommunikere med din smtp-server via telnet. Et eksempel herpå ses nedenfor (serverens output er ikke gengivet i eksemplet), hvor vi sender fra vores testbruger til vores testbruger (bemærk, at vi afslutter vores mail med en linje med kun et punktum):

mailhost:~$ telnet <host> 25
  helo localhost
  mail from: <testbruger@mydomain.org>
  rcpt to: <testbruger@mydomain.org>
  data
  test af mail-server
  .
  quit

Ved samme lejlighed kan du meget passende få bekræftet, at din server ikke er et 'open relay'. Et 'open relay' er en mail-server, som accepterer at sende mail til mail-konti, som ikke tilhører serveren. Efterprøv ovenstående eksempel igen, men udskift denne gang modtager-adressen med en anden (brug et domæne, som ikke tilhører din mail-server). Resultatet skulle meget gerne være, at din server svarer tilbage med 'Relaying denied'. Se http://www.abuse.net/relay.html for en mere dybdegående test.

Hvis din smtp/imap/pop3-server mod forventning ikke virker efter hensigten, bør du som det første altid konsultere din /var/log/mail.log. Heri er der som regel altid nyttig information at hente. Hvis alt er i orden, kan du nu oprette din nye mail-konto i din foretrukne mail-klient og derpå sende en mail til dig selv fra kontoen. Du skal bruge følgende oplysninger:

Kontotype: IMAP eller POP3 (valgfrit)
Login: testbruger@mydomain.org
Adgangskode: <testbruger_adgangskode>
Server til udgående mail (SMTP): <din ISPs mail-server>
Server til indgående mail (IMAP/POP3): mydomain.org

Hvis du ønsker at bruge din egen mail-server til udgående mail, skal du redigere /etc/courier/esmtpd. Det drejer sig om aktiveringen af to linjer (AUTHMODULES="authdaemon" samt ESMTPAUTH="LOGIN"). Du skal cirka 275 linjer ned i filen, før du finder disse linjer (eller blot søg efter 'AUTHMODULES'). Herpå skal du i din mail-klient angive, at du ønsker at bruge din egen smtp-server, og at denne kræver godkendelse (ESMTPAUTH) i forbindelse med forsendelse af mail (brug samme login/adgangskode som ved imap/pop3-login). Du kan som sagt frit vælge at tilgå din nyoprettede mail-konto som en POP3-service eller som en IMAP-service. Langt de fleste vil nok foretrække IMAP, idet dette giver meget bedre mulighed for at tilgå sin mail-konto fra flere forskellige PC'ere, uden at ens mails bliver spredt for alle vinde. Til forskel fra standard-POP3 forbliver alle mails altid på serveren med en IMAP-konto, og man har mere funktionalitet til rådighed hvad angår mulighederne for at manipulere med ens Inbox. For de nysgerrige, er der følgende link: imap.org/papers/imap.vs.pop.brief.html

Stjernealias

Hvis Courier modtager mails for ikke-eksisterende brugere, vil Courier normalt ikke levere disse, og en mail bliver sendt af sted til afsenderen med en besked om, at den pågældende mail-bruger ikke eksisterer i systemet. Hvis man virkelig ønsker at modtage mails med en ukendt modtager-adresse, kan man lave en 'catch-all'-regel i Courier (dvs. en slags stjernealias).

Bemærk, at en 'catch-all'-regel sandsynligvis fanger mange spam-mails, som du ellers normalt ikke ville have set. Spammere har det med ofte blot at vælge et arbitrært navn foran et domænenavn, og disse mail bliver nu videresendt til en valid mail-adresse. Dette er værd at have med i sine overvejelser, før man sådan uden videre begynder at lave 'catch-all'-regler for all ens domæner. Der er to måder, hvormed en 'catch-all'-regel kan laves: Metode 1: 'Cath-all'-regel med maildrop og aliasdir/.courier-default.

mailhost:~# apt-get install courier-maildrop

Filen /etc/courier/aliasdir/.courier-default er det allersidste sted Courier kigger efter instrukser, når det skal afgøres, hvad der skal ske med en mail. Således bruger vi det avancerede mail-filtreringsprogram, maildrop, i denne forbindelse. Kør følgende kommando, som indsætter den fornødne regel:

mailhost:~# echo "| /usr/bin/maildrop -d courier" >/etc/courier/aliasdir/.courier-default

maildrop er i øvrigt nødt til at være setuid root i denne sammenhæng. Det gør du med:

mailhost:~# chmod u+s /usr/bin/maildrop

Herpå laves en maildrop-filtreringsregel i filen /home/courier/.mailfilter, som videresender al mail sendt til '*@mydomain.org' til en anden valid bruger i systemet. I eksemplet nedenfor videresender vi til den testbruger, som vi tidligere har oprettet:

logfile "/home/courier/maildrop-filter-log"

if ( ( /^To:.*@mydomain.org/ ) || ( /^Cc:.*@mydomain.org/ ) )
{
to "/home/courier/mydomain.org/testbruger/Maildir"
}

if ( /^To:.*/ )
{
to "/dev/null"
}

Al mail sendt til ikke-eksisterende brugere, som ikke falder ind under domænet 'mydomain.org', ryger i øvrigt ud i intetheden (/dev/null). Filen /home/courier/maildrop-filter-log fortæller, hvilke mails der er processeret via vores regel. Metode 2: 'Catch-all'-regel med særlig alias-bruger. Opret en virtuel mail-bruger, kaldet alias, for det pågældende domæne (dvs. alias@mydomain.org). Brugeren oprettes på stort set samme vis (minus 'maildirmake', som ikke er nødvendig her), som da testbruger@mydomain.org blev oprettet. Samtidig laves en .courier-default med instrukser til Courier om at levere til testbruger@mydomain.org. Dvs.:

mailhost:~# su - courier
mailhost:~$ mkdir -p /home/courier/mydomain.org/alias
mailhost:~$ echo "testbruger@mydomain.org" \
   >/home/courier/mydomain.org/alias/.courier-default
mailhost:~$ mysql -u courier -p courier
mysql> INSERT INTO users VALUES ('alias@mydomain.org',1248,1248,
    ->   '','/home/courier/mydomain.org/alias');

Bemærk, at det er overflødigt/unødvendigt at angive en adgangskode for alias-brugeren. Det er der to grunde til: For det første er det ikke meningen, at man skal kunne logge ind som alias-bruger. For det andet kan det slet ikke lade sig gøre at logge ind som alias-bruger, idet vi bevidst ikke har oprettet nogen Maildir-mappe for alias-brugeren.

Således sendes al mail sendt til '*@mydomain.org' nu videre til testbruger@mydomain.org. Brugeren alias@mydomain.org er blot en slags 'dummy'-bruger, som sørger for, at en 'catch-all'-regel træder i kraft for det pågældende domæne. Forskellen på de to metoder består i, at metode 1 har en global effekt, mens metode 2 kun har effekt pr. domæne.

Courier Mailing List Manager (couriermlm)

Courier kan håndtere mailinglister via couriermlm. couriermlm findes som en særskilt Debian-pakke, så lad os starte med at downloade og installere denne:

mailhost:~# apt-get install courier-mlm

Herpå oprettes mailinglisten, som vi i det følgende eksempel kalder for 'studiegruppe':

mailhost:~# su - courier
mailhost:~$ mkdir -p /home/courier/mydomain.org/studiegruppe
mailhost:~$ mysql -u courier -p courier
mysql> INSERT INTO users VALUES ('studiegruppe@mydomain.org',1248,1248,
    ->   '','/home/courier/mydomain.org/studiegruppe');

Bemærk, at det - ligesom med stjernealiaser - er overflødigt/unødvendigt at angive en adgangskode, når du opretter mailinglister i databasen. Ligeledes er det unødvendigt at køre 'maildirmake'. Det antages i det følgende, at du gennem hele processen står i den nyoprettede mappe /home/courier/mydomain.org/studiegruppe. Står du ikke i denne mappe, skal du selv sørge for at tilpasse sti-angivelsen:

mailhost:~$ cd /home/courier/mydomain.org/studiegruppe

Nu er det tid til at initialisere en mappe, som vi navngiver 'Listdir'. Denne mappe vil holde på alle filer, der har at gøre med vores mailingliste:

mailhost:~$ couriermlm create Listdir ADDRESS=studiegruppe@mydomain.org

Efter at Listdir-mappen er initialiseret, bør du nok redigere en smule i skabelon-filerne (.tmpl), som dikterer, hvilke beskeder brugere får, når de tilmelder og afmelder sig listen, osv. Der er adskillige skabeloner, og de er ikke overraskende alle på engelsk. Skabelonerne kan (og bør) redigeres, så ordlyden passer til netop din liste. Som et minimum bør du i hvert fald tage et kig på help.tmpl, sub.tmpl og unsub.tmpl. Nu lader vi Courier vide, at det er couriermlm, som skal stå for at håndtere alle indkomne mails sendt til studiegruppe@mydomain.org:

mailhost:~$ echo "| couriermlm msg Listdir" >.courier

Angiv nu en mail-adresse på den person, som er ansvarlig for listen:

mailhost:~$ echo "mail-adresse" >.courier-owner

Nedenstående kommando sørger for, at mails sendt til studiegruppe-<listkommando>@mydomain.org bliver opfattet som kontrolbeskeder. Kontrolbeskeder sendes til couriermlm via specielle mail-adresser. <listkommando> indbefatter bl.a. 'help', 'subscribe' og 'unsubscribe', som henholdsvis anmoder couriermlm om hjælp/information, ønske om tilmelding samt ønske om afmelding:

mailhost:~$ echo "| couriermlm ctlmsg Listdir" >.courier-default

En liste tildeles forskellige egenskaber med set-kommandoen. Hvis du f.eks. ønsker at blive informeret, hver gang en person tilmelder/afmelder sig listen, kan dette gøres således (se 'man couriermlm' for flere muligheder):

mailhost:~$ couriermlm set Listdir REPORTADDR=<din_mail-adresse>

Udover at folk selv kan tilmelde/afmelde sig listen via hhv. studiegruppe-subscribe@mydomain.org og studiegruppe-unsubscribe@mydomain.org, kan du også gøre dette med følgende kommandoer:

mailhost:~$ couriermlm sub Listdir <mail-adresse>
mailhost:~$ couriermlm unsub Listdir <mail-adresse>

Ydermere kan du få en oversigt over alle tilmeldte med lsub-kommandoen (se 'man couriermlm' for flere muligheder):

mailhost:~$ couriermlm lsub Listdir

Sidst, men ikke mindst, indsættes følgende i courier-systembrugerens crontab (crontab redigeres med kommandoen 'crontab -e'):

25 * * * * couriermlm hourly /home/courier/mydomain.org/studiegruppe/Listdir
35 4 * * * couriermlm daily /home/courier/mydomain.org/studiegruppe/Listdir

'couriermlm hourly' og 'couriermlm daily' udfører hhv. timelig og månedlig vedligeholdelsesarbejde på listen. En hurtigt test, der gerne skulle vise, at listen nu er tilgængelig, består ganske enkelt i blot at sende en mail til studiegruppe-help@mydomain.org. En sådan besked skulle meget gerne få Courier til at returnere en mail med info om listen. Er dette ikke tilfædet, så start med at analysere dine log-filer, for her finder du med al sandsynlighed svar på, hvorfor det gik galt. Almindelige systembrugere har også mulighed for at oprette egne lister, og idet systembrugere formentligt i forvejen har en Maildir-mappe til deres mails, kan man med fordel lave mailinglister som undermapper til Maildir-mappen, så man har alle sine mails/mailinglister samlet under én mappe. Hvis f.eks. brugeren Jens ønsker at oprette en liste kaldet 'kortklub', gøres dette kort fortalt på følgende vis (logget ind som brugeren Jens):

mailhost:~$ cd ~
mailhost:~$ couriermlm create Maildir/kortklub ADDRESS=jens-kortklub@mydomain.org
mailhost:~$ echo "| couriermlm msg Maildir/kortklub" >.courier-kortklub
mailhost:~$ echo "jens@mydomain.org" >.courier-kortklub-owner
mailhost:~$ echo "| couriermlm ctlmsg Maildir/kortklub" >.courier-kortklub-default

Følgende indsættes i brugerens egen crontab:

25 * * * * couriermlm hourly /home/jens/Maildir/kortklub
35 4 * * * couriermlm daily /home/jens/Maildir/kortklub

Test at det virker ved at sende en mail til jens-kortklub-help@mydomain.org.

Courier Webmail Server (SqWebMail)

Det antages, at du allerede har installeret og konfigureret Apache, så du i forvejen har en funktionsdygtig web-server. Hvis ikke, så se installation og opsætning af Apache. SqWebMail er Couriers webmail-modul. SqWebMail giver brugere adgang til deres mail via en web-browser på samme vis som med diverse andre webmail-brugergrænseflader (f.eks. den meget populære Squirrelmail). SqWebMail benytter dog ikke IMAP-protokollen, men tilgår i stedet mails på serveren direkte, hvilket giver lynhurtige svartider, når man som bruger manipulerer med sine mails (søger, sletter, flytter, osv.). Bemærk i øvrigt, at SqWebMail kun understøtter Maildir-formatet, og altså ikke det traditionelle Mailbox-format (mbox).

Start med at installere SqWebMail:

mailhost:~# apt-get install sqwebmail

Under installationen af SqWebMail vælges blot 'symlink'-metoden. Sørg for, at du har Apaches CGI-modul aktiveret. Med Apache 1.3.x skal du sikre, at du har en linje i enten /etc/apache/modules.conf eller /etc/apache/httpd.conf med 'LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so'. Skulle du derimod benytte Apache 2.x, kan du aktivere CGI-modulet på følgende vis:

mailhost:~# cd /etc/apache2/mods-enabled && ln -s ../mods-available/cgi.load .

Sidst, men ikke mindst, tilføjes en linje med 'Alias /sqwebmail/ /usr/share/sqwebmail/' til Apaches konfigurationsfil (/etc/apache/httpd.conf eller /etc/apache2/apache2.conf for hhv. Apache 1.3.x eller Apache 2.x). Herpå genstartes Apache:

mailhost:~# /etc/init.d/[apache|apache2] restart

Du kan nu tilgå SqWebMail med en web-browser via adressen http://mailhost.mydomain.org/cgi-bin/sqwebmail. Hvis du synes, denne URL er en smule besværlig at huske/skrive, kan vi med lidt hjælp fra mod_alias gøre brug af en linje i Apaches konfigurationsfil, der ser ud som følgende: 'RedirectMatch ^(/webmail)$ http://mailhost.mydomain.org/cgi-bin/sqwebmail'. Hvis du i grunden ønsker at aktivere muligheden for nemt og smertefrit at lave filtreringsregler for din mail (kræver at maildrop allerede er installeret og konfigureret), behøver du blot gøre følgende:

mailhost:~# echo -e "MAILDIRFILTER=../.mailfilter\nMAILDIR=./Maildir" >/etc/courier/maildirfilterconfig

Nu vil der næste gang, du logger ind via SqWebMail, øverst i skærmbilledet være et link tilgængeligt, kaldet 'Edit Mail Filters'. Herigennem kan du oprette/redigere/slette alskens regler for mail-filtrering.