De optionele canonical file specificeert een adres mapping voor lokale en niet lokale adressen. De mapping word gebruikt door de op schoon (cleanup(8)) deamon. De adres mapping is recursief.

De file dient als een input voor de postmap(1) opdracht. Het resultaat, een geindexeerde file in dbm of db formaat, word gebruikt om snel te zoeken in het mail systeem.

De canonical mapping heeft effect op zowel het berichten header adres (bijv. adressen die verschijnen binnen een bericht) als de berichten envelop adressen (bijv. de adressen die worden gebruikt in SMTP protocol opdrachten). Denk in de richting van de Sendmail regel set `S3` bijvoorbeeld.

Normaal gesproken word de canonical tabel vaak gebruikt om inlog namen te vervangen door `Voornaam.Achternaam`, of om adressen op te schonen die gemaakt zijn door andere mail systemen.

De canonical mapping mag niet worden verward met virtuele domein ondersteuning. Gebruik hiervoor de virtuele domein map.

De canonical mapping mag niet worden verward met lokale aliasing. Gebruik hiervoor de mail aliassen map.

Het formaat van de canonical mappings is als volgt,, mappings worden geprobeerd in de volgende volgorde :

- `gebruiker@domein` word ge-mapped naar... `adres`:
  `gebruiker@domein` word vervangen door `adres`. Deze vorm heeft de hoogste voorrang. Deze vorm is ook erg bruikbaar om adressen op te schonen die aangemaakt zijn door andere mail systemen. Het kan ook gebruikt worden om `Voornaam.Achternaam` stijl adressen te produceren, maar lees hieronder voor een makkelijkere oplossing.
- `gebruiker` word ge-mapped naar...`adres`:
  `gebruiker@site` word vervangen door een site die gelijk is aan `$myorigin`, wanneer site in de lijst staat in `$mydestination`, of wanneer het in de lijst staat in `$inet_interfaces`. Deze vorm is erg handig om inlog namen te vervangen door `Voornaam.Achternaam`.
- `@domein` word ge-mapped naar...`adres`:
  Ieder adres in het domein word vervangen door het adres. Deze vorm heeft de laagste prioriteit.

In alle bovenstaande vormen geld, wanneer het adres de vorm heeft van `@anderdomein`, zal het resultaat hetzelfde zijn voor de gebruiker in 'anderdomein'.

ADRES UITBREIDING : Wanneer het opzoeken in een tabel mislukt, en het lokale gedeelte van het adres bevat een optioneel ontvanger scheidingsteken (bijv., `gebruiker+foo@domein`), zal het zoeken worden herhaald naar het niet uitgebreide adres (bijv. `gebruiker@domein`), en het niet overeenkomende gedeelte zal worden getoond in het resultaat van de zoekactie. De overeenkomende volgorde is : `gebruiker+foo@domein`, `gebruiker@domein`, `gebruiker+foo`, `gebruiker`, en `@domein`.