28.3. sendmail instellen
Terug | Hoofdstuk 28. Elektronische mail | Volgende

## 28.3. sendmail instellen

Bijgedragen door Christopher Shumway.

sendmail(8) is de standaard Mail Transfer Agent (MTA) in FreeBSD. sendmail's taak is het accepteren van mail van gebruikersprogramma's (MUA ) en deze te bezorgen bij de juiste mailer zoals gedefinieerd in het betreffende configuratiebestand. sendmail kan ook netwerkverbindingen accepteren en mail in lokale postbussen afleveren of bezorgen bij een ander programma.

sendmail gebruikt de volgende configuratiebestanden:

Bestandsnaam | Functie
--- | ---
`/etc/mail/access` | bestand met de toegangsdatabase van sendmail
`/etc/mail/aliases` | Aliases voor postbussen
`/etc/mail/local-host-names` | Lijst van servers waarvoor sendmail mail accepteert
`/etc/mail/mailer.conf` | Configuratie voor het mailerprogramma
`/etc/mail/mailertable` | Aflevertabel voor de mailer
`/etc/mail/sendmail.cf` | Hoofdconfiguratiebestand van sendmail
`/etc/mail/virtusertable` | Tabellen voor virtuele gebruikers en domeinen

### 28.3.1. `/etc/mail/access`

De toegangsdatabase definieert welke host(s) of IP-adressen toegang hebben tot de lokale mailserver en wat voor soort toegang ze hebben. Hosts kunnen in de lijst als `OK`, `REJECT`, of `RELAY` staan, of worden doorgevoerd naar de foutafhandelingsprocedure van sendmail met een bepaalde mailerfout. Hosts welke vermeld staan als `OK`, wat de standaard is, kunnen mail versturen naar deze host zolang de eindbestemming van de mail de lokale machine is. Hosts welke vermeld staan als `REJECT` worden voor alle verbindingen geweigerd. Hosts met een `RELAY` vermelding wordt toegestaan om via deze server mail naar elke bestemming te sturen.

Voorbeeld 28.1. Configureren van de sendmail toegangsdatabase

    cyberspammer.com	550 We accepteren geen mail van spammers
    FREE.STEALTH.MAILER@	550 We accepteren geen mail van spammers
    another.source.of.spam	REJECT
    okay.cyberspammer.com	OK
    128.32	RELAY

In dit voorbeeld staan vijf vermeldingen. Mailafzenders die overeenkomen met de linkerzijde van de tabel worden beïnvloed door de actie die vermeld staan aan de rechterzijde van de tabel. De eerste twee voorbeelden geven een foutcode af aan de foutafhandelingsroutine van sendmail. Het bericht wordt bij de externe host bekend gemaakt wanneer een mail voldoet aan de linkerzijde van de tabel. De volgende regel weigert mail van een specifieke host op het Internet, `another.source.of.spam`. De volgende regel accepteert mailverbindingen van een host `okay.cyberspammer.com`, welke nauwkeuriger is dan de regel met `cyberspammer.com` erboven. Specifiekere regels vervangen minder specifieke. De laatste regel staat het doorsturen van elektronische mail toe vanaf hosts waarvan de IP-adressen beginnen met `128.32`. Deze hosts zijn dan in staat om via deze mailserver naar een andere bestemming mail te versturen.

Wanneer dit bestand is bijgewerkt, dient `make` in `/etc/mail/` te gedraaid te worden om de database bij te werken.

### 28.3.2. `/etc/mail/aliases`

De aliasdatabase bevat een lijst met virtuele postbussen die verwijzen naar andere gebruiker(s), bestand(en), programma('s) of andere aliassen. Hier zijn een paar voorbeelden die gebruikt kunnen worden in `/etc/mail/aliases`:

Voorbeeld 28.2. Mailaliassen

    root: localuser
    ftp-bugs: joe,eric,paul
    bit.bucket:  /dev/null
    procmail: "|/usr/local/bin/procmail"

Het bestandsformaat is simpel; de postbusnaam aan de linkerzijde van de dubbele punt wordt verder uitgewerkt naar de doel(en) aan de rechterzijde. Het eerste voorbeeld breidt de postbus van `root` uit naar de postbus `localuser`, welke dan vervolgens weer wordt opgezocht in de aliasdatabase. Als er geen verdere overeenkomst wordt gevonden, dan wordt het bericht afgeleverd bij de lokale gebruiker `localuser`. Het volgende voorbeeld toont een mailinglijst. Mail voor de postbus `ftp-bugs` wordt doorverwezen naar de drie lokale postbussen `joe`, `eric` en `paul`. Merk op dat een externe postbus gespecificeerd kan worden als `< user@example.com>`. Het volgende voorbeeld toont het schrijven van mail naar een bestand, in dit geval `/dev/null`. Het laatste voorbeeld toont het sturen van mail naar een programma, in dit geval wordt het mailbericht doorgestuurd naar de standaard invoer van `/usr/local/bin/procmail` via een UNIX® pijp.

Wanneer dit bestand is bijgewerkt, dient `make` in `/etc/mail/` gedraaid te worden om de database bij te werken.

### 28.3.3. `/etc/mail/local-host-names`

Dit is een lijst van hostnamen die sendmail(8) moet accepteren als de lokale hostnaam. Hierin dienen alle hostnamen geplaatst te worden waarvoor sendmail mail moet ontvangen. Als deze mailserver mail moet ontvangen voor het domein `example.com` en de hostnaam is `mail.example.com`, dan ziet `local-host-names` er ongeveer zo uit:

    example.com
    mail.example.com

Wanneer dit bestand is bijgewerkt, dient sendmail(8) opnieuw gestart te worden zodat het de veranderingen kan lezen.

### 28.3.4. `/etc/mail/sendmail.cf`

Het hoofdinstellingenbestand van sendmail , `sendmail.cf` controleert het algemene gedrag van sendmail, inclusief alles van het herschrijven van emailadressen tot het sturen van weigeringsberichten naar externe mailservers. Met zo'n diverse rol is dit instellingenbestand redelijk complex en vallen de details buiten het bereik van dit hoofdstuk. Gelukkig hoeft dit bestand maar zelden aangepast te worden voor standaard mailservers.

Het hoofdinstellingenbestand van sendmail kan gebouwd worden met m4(1) macro's die het gedrag en de mogelijkheden van sendmail specificeren. Lees `/usr/src/contrib/sendmail/cf/README` voor meer details.

Wanneer dit bestand is bijgewerkt, dient sendmail(8) opnieuw gestart te worden om de wijzigingen door te voeren.

### 28.3.5. `/etc/mail/virtusertable`

De `virtusertable` verbindt mailadressen voor virtuele domeinen en postbussen met echte postbussen. Deze postbussen kunnen lokaal, op afstand, aliassen gedefinieerd in `/etc/mail/aliases`, of bestanden zijn.

Voorbeeld 28.3. Voorbeeld van een mailtabel voor een virtueel domein

    root@example.com	root
    postmaster@example.com	postmaster@noc.example.net
    @example.com	joe

In het voorbeeld hierboven staat een tabel voor een domein `example.com`. Dit bestand wordt van boven naar beneden verwerkt, en de eerste overeenkomende regel wordt gebruikt. De eerste regel verbindt `<root@example.com>` met de lokale postbus `root`. De volgende regel verbindt `< postmaster@example.com>` met de postbus `postmaster` op de host `noc.example.net`. Als geen van de vorige regels van `example.com` overeenkomen, zal de laatste regel gebruikt worden, die alle andere post geadresseerd aan iemand bij `example.com` opvangt en naar de lokale postbus `joe` stuurt.

Terug | Omhoog | Volgende
28.2. Gebruik maken van elektronische mail | Begin | 28.4. De Mail Transfer Agent vervangen