Manual de FreeBSD
Anterior | Capítulo 27. Correo Electrónico | Siguiente

# 27.3. Configuración de sendmail

Contribuido por Christopher Shumway.

sendmail(8) es el agente de transporte de correo (MTA) por defecto de FreeBSD. La responsabilidad de sendmail consiste en aceptar correo de agentes de correo de usuario (MUA) y en entregar dichos correos al agente de transporte de correo apropiado, según se especifique en su archivo de configuración. Sendmail también acepta conexiones de red provinientes de otros agentes de transporte y puede depositar el correo recibido en carpetas locales o o entregarlo a otros programas.

sendmail utiliza los siguientes ficheros de configuración:

Filename | Function
--- | ---
`/etc/mail/access` | Base de datos de accesos de sendmail
`/etc/mail/aliases` | Carpeta de alias
`/etc/mail/local-host-names` | Listados de máquinas para las que sendmailacepta correo
`/etc/mail/mailer.conf` | Configuración del programa de correo
`/etc/mail/mailertable` | Tabla de entregas de correo
`/etc/mail/sendmail.cf` | Archivo de configuración principal de sendmail
`/etc/mail/virtusertable` | Usuarios virtuales y tablas de dominio

## 27.3.1. `/etc/mail/access`

La base de datos de accesos define qué máquinas o direcciones IP pueden acceder al servidor de correo y quée clase de acceso tienen permitido. Las máquinas se listan junto con las opciones `OK`, `REJECT`, `RELAY` o simplemente junto con un mensaje de error que se entrega a la rutina de gestión de excepciones de sendmail. Las máquinas que se listan junto con la opción `OK`, que es el valor por defecto, tienen permiso para enviar correo a la máquina servidora siempre y cuando la dirección de correo de destino sea la máquina servidora de correo. Las máquinas listadas junto con la opción `REJECT` tienen el acceso prohibido a conexiones de correo electrónico con el servidor. Por último las máquinas que poseen la etiqueta `RELAY` para sus nombres tienen permitido enviar correo para cualquier destino a través de la máquina servidora de correo.

Ejemplo 27-1. Configuración de la base de datos de acceso de sendmail

    cyberspammer.com                550 We don't accept mail from spammers
    FUENTE.DE.CORREO.INDISCRIMINADO@ 550 We don't accept mail from spammers
    otra.fuente.de.spam             REJECT
    okay.cyberspammer.com           OK
    128.32                          RELAY

En el ejemplo se pueden observar cinco entradas. Los generadores de correo que coinciden con la parte izquierda de la tabla se ven afectados por la parte acción especificada en la parte derecha. Los primeros dos ejemplos emiten un código de error para la rutina de excepciones de sendmail. El mensaje de error se transmite a la máquina remota cuando se recibe un correo que coincide con la parte izquierda de la tabla. La siguiente entrada rechaza correo de una determinada máquina de internet, `otra.fuente.de.spam`. La siguiente entrada acepta conexiones de correo de la máquina `okay.cyberspammer.com`, lo cual es más exacto que la línea de arriba de `cyberspammer.com`. Las coincidencias más completas tienen precedencia sobre las menos específicas. La última entrada permite actuar como relay o pasarela de correo electrónico para aquellas máquinas que posean una dirección IP que comience por `128.32`. Éstas máquinas podrían enviar correo destinado a otros servidores de correo utilizando el nuestro.

Cuando se actualiza este fichero se debe ejecutar `make` dentro de `/etc/mail/` para que se actualice la base de datos.

## 27.3.2. `/etc/mail/aliases`

La base de datos de alias contiene una lista de directorios virtuales que son traducidas a otros usuarios, ficheros, programas o incluso otros alias. A continuación se muestran unos pocos ejemplos de la sintáxis que se puede utilizar dentro del fichero `/etc/mail/aliases`:

Ejemplo 27-2. Mail Aliases

    root: usuariolocal
    ftp-bugs: joe,eric,paul
    bit.bucket:  /dev/null
    procmail: "|/usr/local/bin/procmail"

El formato del fichero es sencillo; el nombre de la carpeta de correo que aparece a la izquierda de los dos puntos se traduce al/los destinos de la derecha. El primer ejemplo simplemente traduce la carpeta `root` a la carpeta `usuariolocal`, la cual se examina de nuevo utilizando la misma base de datos de alias, y si no existe ninguna otra coincidencia el mensaje se entrega al usuario local `usuariolocal`. En el ejemplo siguiente se muestra una lista de correo. Todo correo que se envía a la carpeta `ftp-bugs` se traduce en un envío para tres carpetas locales diferentes: `joe`, `eric` y `paul`. Es importante señalar que también se pueden especificar carpetas remotas mediante la forma `usuario@ejemplo.com`. El siguiente ejemplo muestra la escritura del correo a un fichero, en este caso en `/dev/null`. El último ejemplo muestra el envió de correo a un programa; en este caso el mensaje de correo se escribe en la entrada estándar del programa `/usr/local/bin/procmail` utilizando una tubería (o pipe) de UNIX®.

Cuando se actualiza este fichero se debe ejecutar `make` dentro de `/etc/mail/` para actualizar la base de datos.

## 27.3.3. `/etc/mail/local-host-names`

Este archivo es una lista de nombres de máquinas que sendmail(8) acepta como nombres locales. Se suele utilizar para escribir aquellos dominios o máquinas de los cuales sendmail va a recibir correo. Por ejemplo, si nuestro servidor de correo va a aceptar correo proveniente del dominio `ejemplo.com` y también de la máquina `mail.ejemplo.com` nuestro `local-host-names` debería ser algo así:

    ejemplo.com
    mail.ejemplo.com

Cuando se actualiza este fichero sendmail(8) necesita ser reiniciado para que tenga en cuenta los cambios.

## 27.3.4. `/etc/mail/sendmail.cf`

Archivo de configuración principal de sendmail, controla el comportamiento global de sendmail, incluyendo cualquier tarea desde la reescritura de direcciones de correo electrónico hasta la devolución de mensajes de error a los servidores de correo remotos. Es evidente que con un abanico tan diverso el fichero de configuración acaba por ser bastante complejo y sus detalles quedan fuera de los objetivos de esta sección. Afortunadamente este fichero raras veces necesita ser modificado, al menos en lo que respecta a servidores de correo estándar.

El fichero de configuración principal de sendmail se puede construir a partir de m4(1), es decir, macros que se utilizan para definir características y comportamientos específicos de sendmail. Se ruega al lector consultar `/usr/src/contrib/sendmail/cf/README` para obtener más detalles acerca de las distintas macros que se pueden utilizar.

Cuando se realizan cambios a este fichero sendmail debe ser reiniciado para que los cambios surtan efecto.

## 27.3.5. `/etc/mail/virtusertable`

El fichero `virtusertable` asocia direcciones de correo pertenecientes a dominios y carpetas virtuales con carpetas reales. Estas carpetas pueden ser locales, remotas, alias definidos en `/etc/mail/aliases` o incluso ficheros.

Ejemplo 27-3. Ejemplo de asociación de correo de dominio virtual

    root@ejemplo.com                root
    postmaster@ejemplo.com          postmaster@noc.ejemplo.net
    @ejemplo.com                    joe

En el ejemplo superior se observa una asociación para el dominio `ejemplo.com`. Este fichero se procesa de arriba a abajo buscando la primera coincidencia. La primera entrada asocia `root@ejemplo.com` con la carpeta de correo local denominada `root`. La siguiente entrada asocia `postmaster@ejemplo.com` con la carpeta `postmaster` situada en la máquina `noc.ejemplo.net`. Por último, si no se ha encontrado ninguna coincidencia para `ejemplo.com` se le asigna la última asociación, la cual asocia cualquier mensaje de correo proveniente de `ejemplo.com` con la carpeta de correo local denominada `joe`.

Anterior | Inicio | Siguiente
Utilización del correo electrónico | Subir | Sustitución del Agente de Transferencia de Correo

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.