Oversikt over qmail

[Oversiktsbilde]
Informasjonsflyten i qmail

qmail er sentrert runt postkøen, som er antydet ved den lille, grønne sirkelen i bildet over. Det er fire demoner som styrer køen. qmail-send oppdager nye meldinger i køen. Den bestemmer om bestemmelsesstedet er lokalt, og gir i så fall qmail-lspawn ordre om å levere den. I motsatt fall er det qmail-rspawn som får jobben.

qmail-lspawn er den eneste av demonene som går med UID root. Den kjører qmail-alias med mottakerens UID, i mottakerens hjemmekatalog. qmail-alias er ansvarlig for den faktiske leveringen, som kan være til en eller flere mboxer, maildir, program, og andre adresser (i det siste tilfellet vil qmail-alias bruke qmail-inject for å legge meldingen i køen).

qmail-rspawn har en enkel jobb: Den starter qmail-remote som på sin side sørger for levering via SMTP.

Når leveringen er vellykket fullført, er det qmail-cleans oppgave å fjerne meldingen fra køen. Dette programmet er også ansvarlig for å rydde opp i rusk og rask som måtte ligge igjen etter et krasj.

qmail-smtpd er ansvarlig for å motta innkommende post utenfra med SMTP. Programmet går ikke kontinuerlig, men startes fra inetd etter behov. Den kjører qmail-queue for å legge meldingene i køen. qmail-queue er det eneste programmet som legger ting i køen.

qmail-inject er en mer vennlig frontende til qmail-queue, og er ment å være det programmet brukernes postprogram (MUA) skal bruke for å sende post. Dette er det eneste programmet som skriver om headere (bortsett fra qmail-queue, som legger til Received: og qmail-alias, som legger til Delivered-To:). Siden de fleste MUAer venter å levere til sendmail, finnes det også en sendmail-klone som forstår de mest brukte argumentene og kaller qmail-inject på rett måte.


Harald Hanche-Olsen <hanche@math.ntnu.no>
1996-10-28 20:35:31 UTC