4. Empezando

4.1. Instalación

4.1.1. RedHat Linux

En los sistemas Linux RedHat, el servidor Sendmail se distribuye mediante el paquete "sendmail". Sin embargo, se hará bien en instalar otros paquetes adicionales tales como sendmail-cf y sendmail-doc, que proporcionan herramientas de configuración y documentación adicional, respectivamente. Adicionalmente se requerirá el paquete "m4".

La instalación en RedHat, como de costumbre, se hará mediante el comando RPM (o durante la instalación del sistema operativo, eligiendo "Mail Server" entre las opciones.) Aquí no explicaremos el comando RPM y nos limitaremos a mostrar cómo se puede verificar si los paquetes han sido instalados:

bash# rpm -qa|grep sendmail
sendmail-cf-8.11.2-14
sendmail-8.11.2-14
sendmail-doc-8.11.2-14
bash# rpm -q m4
m4-1.4.1-4

La version de los paquetes indicados arriba puede ser distinta dependiendo de la versión de RedHat. El ejemplo anterior se refiere a una instalación RedHat 7.1.

4.1.2. Otros Sistemas Operativos

En casi todos los sistemas operativos Linux y Unix principales, Sendmail se distribuye por el mismo proveedor (posiblemente con algunas alteraciones.) En estos casos el método de instalación de paquetes puede variar, y se deberá consultar la documentación respectiva.

4.1.3. Desde la fuente

En RedHat y cualquier otro sistema operativo, siempre existe la posibilidad de descargar el código fuente de Sendmail a fin de compilarlo e instalarlo manualmente. En este caso deberá descargarse el archivo ".tar" de:

ftp://ftp.sendmail.org/ucb/sendmail
Al desempacarse este archivo, se encontrará documentos que explican el procedimiento de compilación e instalación (archivo READ_ME.)

4.2. Probando Sendmail

Asumiremos que Sendmail ya ha sido instalado. Para verificar la instalación y obtener cierta información básica, usaremos el siguiente comando, cuyo resultado se muestra para mi computador:

# sendmail -d0.1 -bt
Version 8.12.5
 Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
                MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6
                NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS
                USERDB USE_LDAP_INIT

============ SYSTEM IDENTITY (after readcf) ============
      (short domain name) $w = edithpiaf
  (canonical domain name) $j = edithpiaf.noskhon.com.pe
         (subdomain name) $m = noskhon.com.pe
              (node name) $k = edithpiaf.noskhon.com.pe
========================================================

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>
# 
Para salir del prompt ">" se presionó [CTRL]+[D].

Nótese que este comando ha sido ejecutado por el administrador. Los usuarios normales normalmente deberán especificar la ruta completa del ejecutable "sendmail" a fin de obtener algo similar:

[diego@edithpiaf diego]$ /usr/sbin/sendmail -d0.1 -bt
Version 8.12.5
 Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
                MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6
... siguen más líneas ...

La opción "-bt" significa "modo de test", y el "-d0.1" significa "debug de aspectos generales (el cero), en nivel 1". Al modificar el nivel de debug se puede obtener más información. Por ejemplo, el lector podría observar la salida que presenta el comando anterior con "-d0.15".

4.3. Inicio automático

Como se aprecia, el servidor "sendmail" puede ser invocado en modo interactivo con diversos propósitos, sin embargo, lo usual es que opere en forma "no interactiva", o como se suele decir en sistemas Unix, como un "demonio". Por lo general esto es configurado en los scripts de inicio del sistema operativo de modo tal que el "demonio sendmail" se inicie en forma automática cada vez que el computador es iniciado.

En un sistema RedHat Linux (versiones 7 en adelante) se puede emplear el comando "service" para invocar a estos scripts en cualquier momento. Por ejemplo, para consultar acerca del estado actual del servicio Sendmail:

[root@edithpiaf root]# service sendmail status
sendmail está parado
Para iniciarlo:
[root@edithpiaf root]# service sendmail start
Iniciando sendmail:                           [  OK  ]
Inicio de sm-client:                          [  OK  ]
Para detenerlo:
[root@edithpiaf root]# service sendmail stop
Apagando sendmail:                            [  OK  ]
Desactivación de sm-client:                   [  OK  ]
En otros sistemas habrá que consultar la respectiva documentación. El comando necesario podría ser como sigue:
bash# /etc/rc.d/init.d/sendmail start
o
bash# /etc/init.d/sendmail start
o
bash# /sbin/init.d/sendmail start
Y para detenerlo, reemplazar el "start" por un "stop".

Para que esto se ejecute automáticamente cuando el sistema se inicia, en RedHat se suele emplear los comandos ntsysv o chkconfig.

4.4. El log

Sendmail, como cualquier programa relacionado con el correo electrónico, genera mensajes de eventos (logs) mediante syslog. En los sistemas RedHat normalmente syslog está configurado para enviar los mensajes hacia el archivo /var/log/maillog. Cuando se hacen pruebas con Sendmail es muy conveniente tener una ventana o terminal abierta mostrando el log:

# tail -f /var/log/maillog
Oct 26 18:17:10 edithpiaf sendmail[1812]: h9QNHAM0001812: 
from=root, size=421, class=0, nrcpts=1, msgid=<200310262317.
h9QNHAM0001812@edithpiaf.noskhon.com.pe>, relay=root@localhost
Oct 26 18:17:10 edithpiaf sendmail[1812]: h9QNHAM0001812: 
to=root, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, 
mailer=relay, pri=30065, relay=localhost.noskhon.com.pe. 
\[127.0.0.1\], dsn=4.0.0, stat=Deferred: Connection refused 
by localhost.noskhon.com.pe.
Oct 27 17:52:14 edithpiaf sendmail[2299]: h9RMqEA5002299: 
from=root, size=244, class=0, nrcpts=1, msgid=<200310272252.
h9RMqEA5002299@edithpiaf.noskhon.com.pe>, relay=root@localhost
Oct 27 17:52:14 edithpiaf sendmail[2299]: h9RMqEA5002299: 
to=root, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, 
mailer=relay, pri=30065, relay=localhost.noskhon.com.pe. 
[127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by 
localhost.noskhon.com.pe.