ไฟล์ canonical ที่เป็นตัวเลือกระบุการแมปที่อยู่สำหรับที่อยู่ในระบบและที่อยู่ในระบบ การแม็พถูกใช้โดย cleanup (8) daemon การทำแผนที่ที่อยู่ซ้ำ

ไฟล์ทำหน้าที่เป็นอินพุตไปยังคำสั่ง postmap (1) ผลลัพธ์ไฟล์ที่จัดทำดัชนีในรูปแบบ dbm หรือ db ใช้สำหรับการค้นหาอย่างรวดเร็วโดยระบบเมล

การแมปแบบบัญญัติมีผลต่อทั้งที่อยู่ส่วนหัวของข้อความ (เช่นที่อยู่ที่ปรากฏภายในข้อความ) และที่อยู่ซองจดหมาย (ตัวอย่างเช่นที่อยู่ที่ใช้ในคำสั่งโปรโตคอล SMTP) คิดว่ากฎ Sendmail ตั้งค่า `S3` หากคุณต้องการ

โดยทั่วไปแล้วจะใช้ตาราง canonical เพื่อแทนที่ชื่อเข้าสู่ระบบโดย `Firstname.Lastname` หรือเพื่อล้างที่อยู่ที่สร้างขึ้นโดยระบบเมลแบบดั้งเดิม

การแมปแบบบัญญัติไม่ควรสับสนกับการสนับสนุนโดเมนเสมือน ใช้แผนที่ โดเมนเสมือน เพื่อจุดประสงค์นั้น

การแม็พแบบบัญญัติไม่ควรสับสนกับสมนามโลคัล ใช้แผนที่ นามแฝงจดหมาย เพื่อจุดประสงค์นั้น

รูปแบบของการแม็พแบบ canonical มีดังนี้การแม็พที่ถูกลองตามลำดับดังแสดง:

- `user@domain` ถูกจับคู่กับ ... `address` :
  `user@domain` ถูกแทนที่ด้วยที่ `address` แบบฟอร์มนี้มีลำดับความสำคัญสูงสุด แบบฟอร์มนี้มีประโยชน์ในการล้างที่อยู่ที่ผลิตโดยระบบเมลแบบดั้งเดิม นอกจากนี้ยังสามารถใช้ในการผลิตที่อยู่สไตล์ `Firstname.Lastname` แต่ดูด้านล่างสำหรับการแก้ปัญหาที่ง่ายขึ้น
- `user` แมปกับ `address` ... :
  `user@site` ถูกแทนที่ด้วยที่อยู่เมื่อไซต์เท่ากับ `$myorigin` เมื่อไซต์แสดงรายการใน `$mydestination` หรือเมื่อมีการระบุไว้ใน `$inet_interfaces` แบบฟอร์มนี้มีประโยชน์ในการแทนที่ชื่อล็อกอินโดย `Firstname.Lastname`
- `@domain` จับคู่กับ ... `address` :
  ทุกที่อยู่ในโดเมนจะถูกแทนที่ด้วยที่อยู่ แบบฟอร์มนี้มีลำดับความสำคัญต่ำสุด

ในทุกรูปแบบข้างต้นเมื่อที่อยู่มีรูปแบบ `@otherdomain` ผลลัพธ์จะเป็นผู้ใช้เดียวกันในโดเมนอื่น

ส่วนขยายที่อยู่: เมื่อการค้นหาตารางล้มเหลวและที่อยู่ localpart มีตัวคั่นผู้รับที่เป็นตัวเลือก (เช่น `user+foo@domain` ) การค้นหาจะทำซ้ำสำหรับที่อยู่ที่ไม่ได้ถูกขยาย (เช่น `user@domain` ) และส่วนขยายที่ไม่ตรงกัน ผลการค้นหาตาราง ลำดับที่ตรงกันคือ: `user+foo@domain` , `user@domain` , `user+foo` , `user` และ `@domain`