Tutorial de Sendmail - Sistema de configuración M4

22 - Sistema de configuración M4

[editar]
Tutorial creado por Diego Bravo Estrada. Extraido de: http://www.mononeurona.org/index.php?idp=392
27 de Octubre de 2005

Motivación


Si el lector tuvo curiosidad de listar el archivo "cf", habrá notado seguramente que éste tiene una sintaxis muy poco intuitiva. Este problema no ha pasado desapercibido para los desarrolladores de Sendmail (aunque la cura quizá haya resultado peor que la enfermedad:)

A fin de facilitar la configuración de Sendmail para los usuarios ocasionales y los administradores en general, existe un mecanismo complementario que evita la escritura y modificación directa del archivo "cf". Este mecanismo consiste en escribir un archivo relativamente sencillo usando la sintaxis del lenguaje "M4", el cual se proporciona en prácticamente todos los sistemas Unix/Linux (a veces como software opcional.)

Mediante este sistema, el usuario creará (o modificará) un archivo relativamente breve, el cual se traducirá en muchas líneas del archivo "cf".

Lo cierto es que es absolutamente impráctico escribir "desde cero" un archivo "cf" medianamente utilizable, así que el método M4 es una opción casi obligatoria.

Regenerando el archivo "cf"


Antes de hacer modificaciones, es recomendable conocer cómo se generó el archivo "cf" proporcionado por el sistema. Normalmente éste proviene de un archivo tipo "M4". Lamentablemente esto no es válido en todos los casos, y las rutas de los archivos involucrados son muy variables.

En RedHat 8 el archivo "cf" distribuido (/etc/mail/sendmail.cf) se puede regenerar en cualquier momento a partir del archivo (/etc/mail/sendmail.mc) que usa la sintaxis "M4". Esto se puede hacer con el siguiente comando:

|| # cd /etc/mail # m4 sendmail.mc > sendmail.cf ||
* NOTA: Asegúrese de sacar una copia al archivo "cf" antes de hacer esto!

En RedHat 7 la secuencia es parecida, aunque los directorios difieren:

|| bash# cd /usr/share/sendmail-cf/cf bash# m4 redhat.mc > /etc/sendmail.cf ||

En otros sistemas Unix/Linux (incluso RedHat en versiones anteriores) el archivo sendmail.mc puede tener un nombre distinto y una ubicación distinta, y habrá que ver la documentación respectiva. Por ejemplo, en RedHat 7 se llamaba redhat.mc y se ubicaba en /usr/share/sendmail-cf/cf.

Incluso puede ser que este archivo simplemente no exista y haya que generar uno nuevo. En ese caso Ud. deberá ubicar primero el directorio "cf" de Sendmail y crear un archivo (le llamaremos prueba.mc) tal como:

|| include(`../m4/cf.m4') OSTYPE(hpux10)dnl MAILER(local)dnl MAILER(smtp)dnl ||
La directiva OSTYPE requiere que Ud. especifique su versión de sistema operativo (en el ejemplo, HP/UX V.10.) Para ver los sistemas disponibles, vea el directorio sendmail-cf/ostype o cf/ostype. En mi caso: || bash# ls ../ostype/ aix2.m4 bsdi2.0.m4 irix4.m4 powerux.m4 aix3.m4 bsdi.m4 irix5.m4 ptx2.m4 aix4.m4 darwin.m4 irix6.m4 qnx.m4 aix5.m4 dgux.m4 isc4.1.m4 riscos4.5.m4 altos.m4 domainos.m4 linux.m4 sco3.2.m4 amdahl-uts.m4 dynix3.2.m4 maxion.m4 sco-uw-2.1.m4 aux.m4 gnu.m4 mklinux.m4 sinix.m4 bsd4.3.m4 hpux10.m4 nextstep.m4 solaris2.m4 bsd4.4.m4 hpux11.m4 openbsd.m4 solaris2.ml.m4 bsdi1.0.m4 hpux9.m4 osf1.m4 solaris2.pre5.m4 ||
Todo esto requiere que se trabaje en el subdirectorio sendmail-cf/cf o cf/cf. A continuación, ejecutar m4: || bash# m4 prueba.mc > /etc/sendmail.cf ||

Volviendo a Linux RedHat, los archivos "M4" usados por Sendmail se proporcionan en el paquete "sendmail-cf". Obviamente requerirá también el paquete "m4" para poder usarlo. En otros sistemas Unix/Linux el software "M4" puede ser opcional o parte de las herramientas de desarrollo.

En Linux RedHat 8.0 y superiores, es también posible regenerar el archivo "submit.cf" a partir de:

|| # cd /etc/mail # m4 submit.mc > submit.cf ||

Configuración con M4


El sistema M4 de Sendmail permite generar configuraciones para distintos propósitos así como alterar opciones bastante puntuales. A modo de ejemplo, el parámetro que controla el "tiempo de alerta" de un mensaje en cola (no se preocupe si no entiende esto, es sólo un ejemplo), se configura con M4 mediante una línea como la siguiente:

|| define(`confTO_QUEUEWARN',`2h') ||
Lo cual se traduce en exactamente la siguiente línea en el archivo "cf" generado: || O Timeout.queuewarn=2h ||
Téngase cuidado dentro del archivo "M4" de emplear las comillas adecuadas para cada caso (obsérve que se han usado ambos tipos: || ` y ' ||

En resumen, mediante la sintaxis (simple) de "M4", se puede regenerar un archivo en la sintaxis (compleja) del "cf". Recuérdese que al final, el programa Sendmail sólo utilizará el archivo "cf".

En lo que sigue, presentaremos la configuración de Sendmail empleando ambos métodos cuando sea posible, pero se preferirá el método M4. Como se indicó, algunas directivas del método "M4" se traducen a una gran cantidad de complejas directivas del archivo "cf", el cual resulta impráctico.
[editar]

5 opiniones

ESTA MAL

TIENES QUE AREGLARLA
Esta muy bueno.

Felicito a la persona que publico este tema. Pero necesito saber si sabe como cambiar el camino del sendmail , que en vez de seer en var sea en otro directorio. A toda persona que responderme se lo agradezco

saludos miniyoko23@gmail.com.
Partes de un correo.

Mostrar la pagina de partes de un correo.
Nueva versión.

En www. Gatogringo. Com se puede hallar una versión actualiuzada.
Ingeniero en sistemas.

Muy bueno para quienes no hemos usado la plataforma linux y queremos hacer nuestros primeros pasos en él.

Tutoriales relacionados con 'Tutorial de Sendmail'

Si tuviera que buscar un adjetivo para calificar a Sendmail, pensaría en "excesivo". Excesivo puesto... Más »
Este documento pretende ser una guía rápida de configuración y puesta en funcionamiento de procedimientos... Más »
Este documento es una breve descripción de cómo modificar el fichero de configuración de sendmail... Más »
Esta documentación muestra la forma de montar un sistema de correo con las siguientes características:... Más »
Tutorial Completo para Aprender el sistema operativo Linux Desde lo básico hasta un nivel... Más »

Autor y licencia de 'Tutorial de Sendmail'


Tutorial de Diego Bravo Estrada. Extraido de: http://www.mononeurona.org/index.php?idp=392 CopyLeft
Este trabajo está licenciado bajo la Creative Commons License. 1999-2005 © :: MonoNeurona.org ::
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.