19.1. Ejecutar Exim

Para ejecutar Exim, primero debe decidir si quiere que gestione los mensajes porSMTP entrantes corriendo como un demonio separado, o si quiere que inetd se encargue del puerto SMTP invocando a Exim sólo cuando se solicite una conexión SMTP desde el cliente. Normalmente preferirá que funcione como demonio porque eso cargará menos la máquina que iniciar Exim una y otra vez en cada conexión. Como el servidor de correo traslada la mayoría del correo entrante directamente a los usuarios, debería encargarle la gestión a inetd en la mayoría del resto de máquinas.

Sea cual sea el modo de funcionamiento para cada máquina, tiene que asegurarse de tener la siguiente entrada en su archivo /etc/services:
    smtp            25/tcp          # Simple Mail Transfer Protocol

Esto define el número del puerto TCP que se usará en las conversaciones SMTP. El puerto 25 es el estándar definido por el RFC de “Números Asignados” (RFC-1700).

Cuando se ejecuta como demonio, Exim se coloca en segundo plano y espera conexiones por el puerto SMTP. Cuando se da una conexión se bifurca y el proceso hijo lleva a cabo una conversación SMTP con el proceso [peer] de la máquina que llama. El demonio Exim se inicia normalmente invocándolo desde el guión rc durante el arranque por medio de la siguiente órden:
    /usr/sbin/exim -bd -q15m

La variable –bd activa el modo demonio y –q15m hace que procese los mensajes que se hayan acumulado en la cola durante los últimos quince minutos.

Si quiere usar inetd su archivo /etc/inetd.conf debería contener una línea como ésta:
    smtp    stream  tcp nowait  root  /usr/sbin/exim  in.exim -bs

Recuerde que tiene que hacer que inetd relea inetd.conf enviándole una señal HUP tras realizar cualquier cambio.[1]

Los modos demonio e inetd se excluyen mutuamente. Si ejecuta Exim como demonio, debería asegurarse de descomentar cualquier línea de inetd.conf para el servicio smtp. De manera equivalente, cuando inetd se encargue de Exim, asegúrese de que ningún guión rc inicie el demonio Exim.

Puede comprobar si Exim está instalado correctamente para recibir mensajes SMTP entrantes conectándose por telnet al puerto SMTP de su máquina. Una conexión con éxito al servidor SMTP sería algo así como esto:
    $ telnet localhost smtp
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    220 richard.vbrew.com ESMTP Exim 3.13 #1 Sun, 30 Jan 2000 16:23:55 +0600
    quit
    221 richard.brew.com closing connection
    Connection closed by foreign host.

Si esta prueba no genera la leyenda del SMTP (la línea que comienza con el código 220), compruebe si está ejecutando un demonio Exim o si inetd está configurado correctamente. Si eso no lo resuelve mire en los archivos de bitácora de Exim (que se describen a continuación) en caso de que haya algún error en el archivo de configuración de Exim.

Notas

[1]

Use kill HUP pid, siendo pid el ID del proceso que inetd obtiene a partir de un listado de ps.