Les macros
Le fichier de configuration sendmail.cf commence par la déclaration des macros. Il existe plusieurs types de Macros qui ressemblent beaucoup aux Macros utilisées en Bourne Shell. L'intérêt d'utiliser les macros est leur ré-utilisation dans l'ensemble du fichier Sendmail.cf. Si vous déclarez une macro ( decaservices.com égal à la macro m alors vous pourrez utilisez partout cette macro m dans le fichier de configuration de Sendmail; Si votre domaine change, pas de problème, vous n'aurez qu'à modifier la valeur de m par le nouveau domaine dans la partie déclaration des macros).
Créez vos propres macros
Rajoutez la ligne: DRdomaine.com dans la section "local info" du fichier de configuration. Attention, il n'y a pas d'espace entre R et domaine.com. Dans tout le fichier de configuration, R sera égal à domaine.com.
Vous pouvez également déclarer les macros avec des noms explicites. Dans ce cas vous mettez la macro entre accolades:
D{MAMACRO}domaine.com.
Pour l'utiliser ensuite dans le fichier de configuration, il vous suffit de mettre le caractère $ devant la macro. Vous voulez personnaliser le message d'accueil, vous n'aurez qu'à utiliser la macro: SmtpGreetingMessage=Sendmail - Bienvenue sur ${MAMACRO}
Les macros réservées de Sendmail
Sendmail définit ses propres macros en lettres minuscules ( $u ou bien encore $h). Les macros que vous définirez devront être en majuscule. Pour savoir comment Sendmail interprète le nom de domaine et votre nom de machine tapez:
%./sendmail -C/etc/mail/sendmail.cf -d0.1 -bt </dev/nullVersion 8.11.3 Compiled with: LOG NAMED_BIND NDBM NETINET NETUNIX NIS SCANF XDEBUG ============ SYSTEM IDENTITY (after readcf) ============ (short domain name) $w = mail (canonical domain name) $j = mail.decaservices.com (subdomain name) $m = decaservices.com (node name) $k = mail ========================================================
Les différents types de macros:
de type D DRdomain.com ($=R correspond à domain.com). Si dans une règle vous avez $=R, vous devez comprendre domaine.com
L'exemple çi-dessus utilise une macro affectée à une seule valeur; Vous pouvez également affecter plusieurs valeurs à une macro (à partir d'un fichier par exemple), çi-dessous 2 exemples :
de type F: FR-o /etc/mail/relay-domains ($=R correspond ainsi aux entrées présentes dans le fichier /etc/mail/relay-domains). La macro $=R correspond à toute entrée trouvée dans le fichier.
Voiçi un exemple de mon fichier Sendmail.
# Hosts for which relaying is permitted ($=R)
FR-o /etc/mail/relay-domains
R$*<@$=R> $: $>91 $1@$2
Mon fichier /etc/mail/relay-domains contient 2 domaines: webimmos.com et decaservices.com. Avec la règle çi-dessus, si une adresse se présentant sous la forme arnaud.fileux<@decaservices.com> ou arnaud.fileux<@webimmos.com> la règle 91 est appelée. Si l'adresse se présente avec arnaud.fileux<@autredomaine.com> la règle 91 n'est pas appelée.
de type K Kvirtuser dbm /etc/mail/virtusertable (équivalent aux macros F à l'exeption du format de fichier lu par Sendmail qui n'est pas un fichier texte mais un format de base de donné dbm). Ces macros s'utilisent généralement pour les réécritures d'adresses. On utilise en effet ce format car la lecture est plus rapide qu'un fichier texte et la réécriture est une partie importante du travail de Sendmail. Le fichier qui est utilisé pour générer la base contient en général 2 adresses séparées par une tabulation: l'adresse email et l'adresse qui sera réécrite. Le format est de type $(virtuser $1 $)