Nuestro ejemplo en Ejemplo 18-3 usa la macro
LOCAL_NET_CONFIG para declarar una regla local que asegure que cualquier
correo dentro de nuestro dominio se entregue directamente usando el transporte de correo
smtp. Ahora que sabe c�mo se construyen las reglas de reescritura,
es capaz de entender c�mo funciona esta regla. Ech�mosle un vistazo.
Sabemos que la macro LOCAL_NET_CONFIG har� que la regla se introduzca
en alg�n lugar cerca del final del conjunto de reglas 0, pero antes de
cualquier definici�n del anfitri�n inteligente. Sabemos tambi�n que el conjunto 0
es el �ltimo conjunto en ser ejecutado y que deber�a resolver un triplete
especificando transporte de correo, usuario y anfitri�n.
Podemos ignorar las dos l�neas de comentariso; no hacen nada �til. La regla
en s� misma es la l�nea que comienza con R. Sabemos que
la R es una instrucci�n de sendmail y que
a�ade esta regla al conjunto de reglas actual, en este caso el conjunto
0. Miremos al lado izquierdo y al lado derecho que devuelve.
El lado izquierdo es como �ste:
$* < @ $* .$m. > $*.
El conjunto 0 espera los caracteres < y > porque es alimentado por el conjunto 3.
El conjunto 3 convierte direcciones en una forma com�n y para hacer el an�lisis m�s f�cil,
coloca la parte del anfitri�n de la direcci�n de correo entre < y >.
Esta regla coincide con cualquier direcci�n que parecezca como:
'UsuarioDestino < @ cualquieranfitri�n.nuestrodominio. > Alg�n Texto'. Esto es, coincide
con el correo de cualquier usuario y de cualquier anfitri�n dentro de nuestro dominio.
Recordar� que el texto que coincide con los metas�mbolos en el lado izquierdo
de una regla de reescritura se asigna a definiciones de macro para su uso en
el lado derecho. En nuestro ejemplo, el primer $* coincide con
todo el texto desde el inicio de la direcci�n hasta el car�cter <.
Todo este texto se asigna al $1 para su uso en el lado derecho.
Similarmente, el segundo $* en nuestra regla de reescritura
se asigna a $2, y el �ltimo se asigna a $3.
Ahora tenemos suficiente para entender el lado izquierdo. Esta regla coincide
con el correo de cualquier usuario en cualquier anfitri�n dentro de nuestro dominio.
Asigna el nombre de usuario a $1, el nombre del anfitri�n a
$2, y cualquier texto subsiguiente a $3. El
lado derecho se invoca entonces para procesar �stos.
Echemos un vistazo a aquello que estamos esperando ver a la salida. El lado derecho de
nuestra regla de reescritura de ejemplo es semejante a:
$#smtp $@ $2.$m. $: $1 < @ $2.$m. > $3.
Cuando la regla del lado derecho de nuestro conjunto de reglas se procesa, se interpreta
cada uno de los metas�mbolos y se realizan las sustituciones correspondientes.
El metas�mbolo $# hace que esta regla resuelva un transporte espec�fico,
smtp en nuestro caso.
El $@ resuelve el anfitri�n objetivo. En nuestro ejemplo,
el anfitri�n objetivo se especifica como $2.$m., el cual
es el nombre completamente cualificado del anfitri�n en nuestro dominio. El
NDCC se construye con el componente del nombre del anfitri�n asignado a
$2 desde nuestro lado izquierdo con nuestro nombre de
dominio (.$m.) concatenado.
El metas�mbolo $: especifica el usuario objetivo,
el cual se captura otra vez del lado izquierdo y se almacena en
$1.
Preservamos los contenidos de la secci�n <> y cualquier texto
acompa�ante, usando los datos que recogimos desde el lado izquierdo de la
regla.
Debido a que esta regla resuelve a un transporte de correo, el mensaje es reenviado al transporte
para su entrega. En nuestro exemplo, el mensaje ser�a reenviado al anfitri�n de destino usando el
protocolo SMTP.