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
\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:message
où X.X.X
est le code d'erreur étendu.