Sendmail : changer de nom de domaine sans peine

Une organisation dispose de old.domain et décide d'en changer pour new.domain. Évidemment, elle utilise Sendmail.

Activer la FEATURE `domaintable' (`redirect' peut aussi être utile, cf supra). Dès lors, Sendmail attend un fichier /etc/mail/domaintable.db (format Berkeley DB). On le génère avec la commande makemap(1) à partir du fichier /etc/mail/domaintable :

$ sudo makemap hash domaintable < /etc/mail/domaintable

La syntaxe de ce fichier domaintable est triviale :

old.domain		new.domain
Le séparateur est la tabulation horizontale aka \t ou ^I (x9 en hexadécimal). De plus, le : est réservé à /etc/mail/aliases, il n'y en a pas ici.

Si la FEATURE `access_db' est active, ne pas oublier d'adapter /etc/mail/access en conséquence pour accepter les messages du nouveau domaine ; idem avec mailertable pour router et/ou délivrer sur le système voulu les messages.

Les messages adressés à user@old.domain arriveront automatiquement à user@new.domain.

La FEATURE `redirect' est pour un usage plus ponctuel : user@old.domain vient de quitter l'organisation et sa nouvelle adresse est luser@new.orga. Plutôt que d'ajouter l'alias :

user:	luser@new.orga

on peut forcer les correspondants à mettre leur carnet d'adresse à jour en remplaçant la ligne précédente par :

user:	luser@new.orga.REDIRECT

dans le même fichier /etc/mail/aliases.

L'expéditeur recevra une erreur 551 avec le commentaire :

User has moved; please try <luser@new.orga>

Pour ce dernier usage, on peut aussi utiliser access_db et blacklist_recipients : dans /etc/mail/access, ajouter la ligne :

To: user@old.domain	ERROR:"User has moved; please try <luser@new.orga>"

On peut même spécifier un code d'erreur (relire la RFC 1893) avec ERROR:X.X.X:messageX.X.X est le code d'erreur étendu.

  • user/pc/sysadmin/sendmail-change-domain-name.txt
  • Dernière modification : 2011/07/24 11:48
  • de pc