Para explicar esto, copiaré una parte del archivo "cf" que se vió anteriormente (en la sección del delivery local.)
|| Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9,
S=EnvFromL/HdrFromL,
R=EnvToL/HdrToL,
T=DNS/RFC822/X-Unix,
A=procmail -t -Y -a $h -d $u ||
Como se aprecia, aquí se emplearon las construcciones "$h" y "$n". Como ya sospechará el lector, esto corresponde a la expansión de dos "macros".
En particular, la macro "h" (cuyo valor se obtiene con "$h") corresponde al host destinatario del mensaje, mientras que la macro "n" corresponde al usuario destinatario del mensaje. En este caso el valor de la macro es ajustado por Sendmail automáticamente para cada mensaje.
Las macros se pueden definir con el comando "D" en cualquier parte del archivo "cf". Por ejemplo, esto redefine la macro "w" al valor "jibaros":
|| Dwjibaros ||
Las macros cuyos nombres tienen más de un caracter deben usar llaves en su definición y su expansión:
|| D{PRUEBA}amazonas.com.pe
... ${PRUEBA} ... ||
La opción de debug -d35.9 permite obtener un extenso listado de macros definidas por Sendmail y vía el archivo "cf".
Ciertas macros son asignadas internamente por el programa Sendmail (como la macro "w" que es inicializada al nombre del host "sin dominio") y otras son creadas explícitamente en el archivo "cf" con diversos propósitos.