%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 
%  $Id: sendmail.tex,v 1.14 1994/06/03 05:47:47 vince Exp vince $
%
%
%  Changes since v1.10:
%       - included Olaf's formatting changes to set up OR+A formats
%       - Olaf matched the examples with the rest of the NAG examples
%               (done except for the installing/testing section
%                       which was still under construction)
%       - wrote the installing and testing section.  Please take a
%               look at the formatting in particular.  My brain must
%               me dead but those darn '-' characters are driving me
%               nutso.  Also I'm not certain if the bullet-list looks
%               ok since there are a lot of bullets in the section.
%
% To-do:
%       - clean up examples and formatting in the 'installing and 
%               testing' section to match the rest of the book
%       - I'm not certain the sendmail.m4 example is totally right.
%               please see the comments in the text.
%       - The inevitable typos/grammar edits :-)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% This document requires no approvals other than ours for 
% publications, but at this time it is still a draft.
% 
% I don't see any problem in you guys sending edits/comments/etc. to
% both the work and home addresses at this time. 
% 
%               Vince Skahan
% 
%   Home: +1 206 661 9265   vince@victrola.wa.com (primary)
%                           vince@halcyon.com     (alternate)
%
%   Work: +1 206 662 4407   vince@atc.boeing.com
% 
% This document assumes that the reader already knows or has been told
% in either previous chapter(s) of the fact that there are several major
% system mail transport agents (sendmail5.65, smail3.1.28,
% sendmail8.6.5, and sendmail5.67b+IDA1.5) 
%
% this document only references sendmail+IDA.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Revisado en 9-Abril-1999 por:
%   Juan Jose Amor <jjamor@ls.fi.upm.es>
% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 %\documentstyle[linuxdoc,private,spanish]{article}
 %\title{Sendmail+IDA}
 %\author{Vince Skahan}
 %\years{1994}

 %\begin{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Make the title
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\maketitle

\chapter{Sendmail+IDA}
\label{sendmail}

\index{configuraci\'on!sendmail@\prog{sendmail}|(}
\index{sendmail@\prog{sendmail}|(}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Moved to the foreword
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{Acerca del autor}
 

Vince Skahan (\email{vince@victrola.wa.com}) ha estado administrando un gran
n\'umero de sistemas unix desde 1987, y actualmente hace funcionar sendmail+IDA
en aproximadamente 300 estaciones de trabajo unix para unos 2000 usuarios.      

Admite haber perdido considerablemente el sue\~no editando unos cuantos ficheros
 \file{sendmail.cf} ``por la fuerza bruta'' antes de descubrir sendmail+IDA en 1990. Admite asimismo que aguarda ansiosamente la llegada de la primera versi\'on 
en Perl de sendmail, para todav\'{\i}a mayor disfrute.

\section{Reconocimientos}

Gracias a Neil Rickert y Paul Pomes por la gran cantidad de ayuda proporcionada a lo largo de los a\~nos en lo que se refiere al cuidado y mantenimiento de 
sendmail+IDA y a Rich Braun por hacer el porte inicial a \linux. Las 
mayores gracias son de lejos para mi mujer Susan, por todo el apoyo en este y 
otros proyectos.
	
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Introductory part
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Introducci\'on a Sendmail+IDA}

Se dice que no se es un \emph{verdadero}
administrador de sistemas Unix  
hasta que se haya editado el archivo \file{sendmail.cf}. Se dice asimismo
que se est\'a loco si se intenta hacer dos veces.


Sendmail es un programa incre\'{\i}blemente potente. Y tambi\'en, para la
mayor\'{\i}a de la gente, incre\'{\i}blemente dif\'{\i}cil de aprender y comprender. Un
programa cuyo manual de referencia definitiva ocupa 792 p\'aginas es suficiente
para espantar justificadamente a cualquiera. (\emph{Sendmail}, editado por 
O'Reilly and Associates) 

\index{sendmail.cf@\file{sendmail.cf}|see {\prog{sendmail}, \file{sendmail.cf}}}
\index{sendmail@\prog{sendmail}!sendmail.cf@\file{sendmail.cf}}

Con sendmail+IDA es distinto. Se elimina la necesidad de editar el siempre
cr\'{\i}ptico archivo \file{sendmail.cf}, permitiendo al administrador definir
la configuraci\'on de las rutas y direcciones particulares de una m\'aquina 
espec\'{\i}fica, 
por medio de archivos de apoyo relativamente sencillos de entender,
llamados \emph{tables}. Cambiar a sendmail+IDA puede ahorrarle muchas
horas de trabajo y estr\'es.

En comparaci\'on con los dem\'as agentes principales de transporte de correo, es
probable que no haya nada que no se pueda hacer m\'as r\'apida y
f\'acilmente que con sendmail+IDA. Las actividades m\'as comunes, necesarias
para hacer funcionar sistemas Internet o UUCP usuales, pasan a ser tareas 
f\'aciles de llevar a cabo.

 Configuraciones que normalmente ser\'{\i}an extremadamente dif\'{\i}ciles, son ahora 
simples de crear y mantener.

Cuando se escribi\'o este manual, la versi\'on actual de
\file{sendmail5.67b+IDA1.5} estaba disponible por FTP an\'onimo en
\host{vixen.cso.uiuc.edu}. Esta versi\'on compila sin parches ni modificaciones bajo \linux.

%All the configuration files required to get sendmail+IDA sources to compile,
%install, and run under \linux{} are included in \file{newspak-2.2.tar.gz}
%which is available via anonymous FTP on \host{sunsite.unc.edu} in the
%directory \file{/pub/Linux/system/Mail}.

Todos los archivos de configuraci\'on necesarios para poder compilar, instalar y 
hacer funcionar los fuentes de sendmail+IDA bajo \linux{} se hallan en el 
archivo \file{newspak-2.2.tar.gz}, disponible por FTP an\'onimo en 
\host{sunsite.unc.edu}, en el directorio \file{/pub/Linux/system/Mail}.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Overview of the tables
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Archivos de configuraci\'on --- Preliminares}
\index{IDA|see {\prog{sendmail}, IDA}}

\index{sendmail@\prog{sendmail}!CF}

El sendmail tradicional se configura a trav\'es de un archivo de
configuraci\'on de sistema (t\'{\i}picamente \file{/etc/sendmail.cf} o
\file{/usr/lib/sendmail.cf}), que no se asemeja ni de lejos a cualquier
otro lenguaje que haya podido ver antes. Editar el archivo
\file{sendmail.cf} para proporcionar un comportamiento personalizado puede
ser una experiencia humillante. 

\index{sendmail@\prog{sendmail}!IDA}
Sendmail+IDA hace que este suplicio sea algo del pasado, siendo todas las 
opciones de configuraci\'on controladas por ficheros con formato de listados
(tables), con una sintaxis bastante f\'acil de comprender.
Estas opciones son configuradas mediante el procesado de ciertos archivos de
informaci\'on, que son proporcionados con los fuentes, v\'{\i}a ``Makefiles''
que invocan a m4 (analizador de macros) o dbm (procesador de bases de datos).


\index{sendmail@\prog{sendmail}!tables}

El archivo \file{sendmail.cf} define \'unicamente el comportamiento por omisi\'on
del sistema. Virtualmente, todos los ajustes especiales se hacen a trav\'es de
un n\'umero de tablas opcionales en vez de editar directamente el archivo
\file{sendmail.cf}. La figura~\ref{sendmail.fig.tables} muestra todas las tablas que  
utiliza \prog{sendmail}.

%%
%% Andy would like this in a table so people can find it in the TOC
%%
%% I don't think this looks too great.  Maybe the figure needs to
%% be boxed or something but whatever y'all want is ok with me - vds
%%
\begin{figure}[htbp]
  \begin{quote}
  \begin{dispitems}
  \item[\file{mailertable}]
	define un comportamiento especial para nodos o dominios remotos.
  \item[\file{uucpxtable}]
	fuerza a UUCP a entregar el correo a los nodos que est\'an en formato DNS.
  \item[\file{pathtable}]
	define rutas de rebote UUCP a nodos o dominios remotos.
  \item[\file{uucprelays}]
	cortocircuita el camino \emph{pathalias} a nodos remotos bien conocidos.
  \item[\file{genericfrom}]
	convierte direcciones internas a gen\'ericas visibles para el 
	mundo exterior.
  \item[\file{xaliases}]
	convierte direcciones gen\'ericas de/a direcciones internas v\'alidas.
  \item[\file{decnetxtable}]
	convierte direcciones RFC-822 a direcciones de tipo DECnet.
  \end{dispitems}
  \end{quote}
  \caption{
   \label{sendmail.fig.tables}
   Archivos de apoyo de \prog{sendmail}.
  }
\end{figure}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% sendmail.cf - general description
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{El archivo \file{sendmail.cf}}
\index{sendmail@\prog{sendmail}!CF|(}

El archivo \file{sendmail.cf} que utiliza sendmail+IDA no se edita
directamente, sino que se genera desde un archivo de configuraci\'on
\prog{m4} proporcionado por el administrador del sistema local. De aqu\'{\i} en
adelante, siempre nos referiremos a \'el simplemente como
\file{sendmail.m4}. 

Este archivo contiene algunas definiciones y en otros casos
simplemente apunta a las tablas en donde se lleva realmente a cabo el trabajo. 
En general, s\'olo es necesario especificar:

\begin{itemize}
\item
	las trayectorias y nombres de archivos utilizados en el sistema local.
\item
	el o los nombres de los sistemas conocidos para prop\'ositos e-mail.
\item
	cu\'al ser\'a el gestor de correo por defecto deseado (y quiz\'a tambi\'en
	alg\'un nodo inteligente de reenv\'{\i}o
\footnote{N. del T.: estos nodos se conocen también como {\it relevos},
del inglés {\it relay}}
de correo)
\end{itemize}

Hay una gran variedad de par\'ametros que pueden ser definidos para establecer
el comportamiento del sistema local o para ir m\'as all\'a del comportamiento precompilado.
 Estas opciones de configuraci\'on se identifican en el
archivo \file{ida/cf/OPTIONS} del directorio fuente.

Un archivo \file{sendmail.m4} para una configuraci\'on m\'{\i}nima (UUCP o SMTP confiando
todo el correo externo a anfitriones inteligentes
conectados directamente) puede ser tan escueto como 10 o 15 l\'{\i}neas de texto
excluyendo los comentarios.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% sendmail.cf - example
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Un ejemplo del archivo \file{sendmail.m4}}

A continuaci\'on se muestra un ejemplo del archivo \file{sendmail.m4} para \host{vstout} en la
Cervecera Virtual. \host{vstout} utiliza SMTP para
hablar con todos los anfitriones de la red local de la Cervecera, y env\'{\i}a todo
el correo para otros destinos a \host{moria}, su nodo de reenv\'{\i}o de
Internet, v\'{\i}a UUCP.

%%%
%%% Olaf, I'm not so certain that this .m4 is correct.  From what I read
%%% in your edits, you have a host that talks SMTP on the local LAN
%%% and that talks UUCP to a relay host for the rest of the world.
%%% If that's the case, I'm not certain if we want a DEFAULT_MAILER
%%% set to TCP here added to the following example that sets the
%%% UUCP-based RELAY_MAILER/RELAY_HOST stuff.
%%% Unfortunately, I have no way to test this here.
%%%
%%% -- I checked this out using the file below with Rich Braun's
%%% sendmail5.65c port. Mail to sites in /etc/hosts gets delivered
%%% via TCP by default.   -okir

\begin{figure}[tbp]
\small
\footnotesize           %% Necesario para que quepa en una pagina
\begin{verbatim}   
dnl #------------------ EJEMPLO DE UN ARCHIVO SENDMAIL.M4 ---------
dnl # (la cadena 'dnl' es la forma de escribir un comentario en m4)
dnl # en general usted no debera ignorar LIBDIR de las trayectorias compiladas
dnl #define(LIBDIR,/usr/local/lib/mail)dnl     # lugar de los arch. de soporte
define(LOCAL_MAILER_DEF, mailers.linux)dnl     # gestor de correo para la 
					       # entrega local

define(POSTMASTERBOUNCE)dnl                    # el gestor de correo obtiene los rebotes
define(PSEUDODOMAINS, BITNET UUCP)dnl          # no intente usar DNS 
					       # en estos casos
dnl #-------------------------------------------------------------
dnl #
define(PSEUDONYMS, vstout.vbrew.com  vstout.UUCP vbrew.com)
dnl                                            # los nombres seran conocidos por
define(DEFAULT_HOST, vstout.vbrew.com)dnl      # nuestro nombre primario,
					       # 'nombre' para el correo

define(UUCPNAME, vstout)dnl                    # nuestro nombre uucp
dnl #
dnl #-------------------------------------------------------------
dnl #
define(UUCPNODES, |uuname|sort|uniq)dnl        # nuestros vecinos uucp
define(BANGIMPLIESUUCP)dnl                     # aseguran que el correo
define(BANGONLYUUCP)dnl                        # uucp sea tratado correctamente
define(RELAY_HOST, moria)dnl                   # nuestro sistema de 
					       # relevo inteligente

define(RELAY_MAILER, UUCP-A)dnl                # alcanzamos moria via uucp
dnl #
dnl #--------------------------------------------------------------------
dnl #
dnl # varias tablas de busqueda dbm
dnl #
define(ALIASES, LIBDIR/aliases)dnl            # alias del sistema
define(DOMAINTABLE, LIBDIR/domaintable)dnl    # distribucion de dominios 
					      # entre nodos

define(PATHTABLE, LIBDIR/pathtable)dnl        # base de datos de trayectorias
define(GENERICFROM, LIBDIR/generics)dnl       # directorio generico 
					      # de direcciones

define(MAILERTABLE, LIBDIR/mailertable)dnl    # gestores de correo por 
					      # nodo o dominio

define(UUCPXTABLE, LIBDIR/uucpxtable)dnl      # trayectorias a los nodos
					      # que alimentamos

define(UUCPRELAYS, LIBDIR/uucprelays)dnl      # trayectorias de cortocircuito
\end{verbatim}
\begin{verbatim}   
dnl #
dnl #--------------------------------------------------------------------
dnl #
dnl # incluye el codigo 'real' que hace que todo funcione
dnl # (provisto con el codigo fuente)
dnl #
include(Sendmail.mc)dnl                         # LINEA INDISPENSABLE !!!
dnl #
dnl #------------ FIN DEL ARCHIVO EJEMPLO DE SENDMAIL.M4 -------
\end{verbatim}
\normalsize         %% Restablecemos tama~no de letra normal
\caption{
 \label{sendmail.fig.m4}
 Un archivo muestra de \file{sendmail.m4} para \host{vstout}.
}
\end{figure}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Par\'ametros de uso com\'un en \file{sendmail.m4}}

Algunas partes del archivo \file{sendmail.m4} son necesarias siempre; 
 otras pueden ser ignoradas si se acepta la configuraci\'on por defecto. Las
siguientes secciones describir\'an cada una de las partes del archivo ejemplo
\file{sendmail.m4} con m\'as detalle.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Partes que definen los directorios}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{tscreen}
\begin{verbatim}
dnl #define(LIBDIR,/usr/local/lib/mail)dnl  # el directorio en donde estan
					    # los archivos de soporte
\end{verbatim}
\end{tscreen}

\keyword{LIBDIR} define el directorio en donde sendmail+IDA espera
encontrar los archivos de configuraci\'on, las diversas tablas dbm, y 
definiciones especiales de \'{\i}ndole local. En una t\'{\i}pica distribuci\'on
ejecutable, esto est\'a ya compilado en el ejecutable de sendmail y no es necesario
ponerlo expl\'{\i}citamente en el archivo sendmail.m4.

El ejemplo anterior tiene una l\'{\i}nea inicial \keyword{dnl} que significa
que esta l\'{\i}nea es \'unica y esencialmente un comentario informativo.

Para modificar la localizaci\'on de los archivos de soporte a un lugar distinto,
elimine el \keyword{dnl} inicial de la l\'{\i}nea superior, y ajuste el
directorio deseado, luego recompile y reinstale el archivo
\file{sendmail.cf}.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{C\'omo definir un sistema de correo local (mailer)}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{sendmail@\prog{sendmail}!transporte|see \prog{sendmail}, gestor de correo}
\index{sendmail@\prog{sendmail}!gestores de correo}

\begin{tscreen}
\begin{verbatim}
define(LOCAL_MAILER_DEF, mailers.linux)dnl  # gestor de correo para entrega local
\end{verbatim}
\end{tscreen}

La mayor parte de los sistemas operativos tienen un programa encargado de la gesti\'on 
de correo local. Los programas m\'as comunes para la mayor parte de las variantes 
de Unix est\'an ya compiladas en el ejecutable de sendmail.

En \linux, es necesario definir expl\'{\i}citamente el gestor local de correo correspondiente,
ya que, en algunas distribuciones, puede no estar incluido.
Esto se lleva a cabo especificando \keyword{LOCAL\_MAILER\_DEF} en el fichero
\file{sendmail.m4}

\index{sendmail@\prog{sendmail}!entrega@\prog{deliver}}

Por ejemplo, para que el popular programa \prog{deliver}\footnote{
  \prog{deliver} fue escrito por Chip Salzenberg
  (\email{chip\%tct@ateng.com}).  Es parte de varias distribuciones
  de \linux{} y se puede encontrar en los sistemas de FTP an\'onimo m\'as
  comunes como \host{ftp.uu.net}.  }
gestione este servicio, se debe
especificar en \keyword{LOCAL\_MAILER\_DEF} \file{mailers.linux}.

El siguiente archivo deber\'a ser instalado como \file{mailers.linux} en
el directorio al que apunta \keyword{LIBDIR}. Esto define
expl\'{\i}citamente el programa \prog{deliver}, como gestor de correo interno
\keyword{Mlocal}; por lo que con los par\'ametros adecuados, 
\prog{sendmail} se encargar\'a de entregar correctamente el correo cuyo destino es el
sistema local. A menos que se sea un experto de sendmail, es probable
que no se desee modificar el siguiente ejemplo.

\begin{tscreen}
\begin{verbatim}
# -- /usr/local/lib/mail/mailers.linux --
#     (gestores de correo locales para su uso en Linux)
Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10, R=25/10, A=deliver $u
Mprog,  P=/bin/sh,       F=lsDFMeuP,   S=10, R=10, A=sh -c $u
\end{verbatim}
\end{tscreen}

%%
%% The following works, but the linux file system standards are
%% different from the sendmail+IDA idea of 'proper'.  I mention it because
%% it'll surprise people if they read the docs in the sendmail+IDA sources
%% and merely use the built-in definition for 'deliver'. Fortunately I
%% run here with syslog so I had a log file to show me why the mail was
%% disappearing. Since it's important for people to NOT edit the Sendmail.mc
%% file, I thought it was worth mentioning here. (vds 3/11)
%%

Hay tambi\'en una opci\'on compilada por defecto para \prog{deliver} en el 
archivo \file{sendmail.mc} incluida en el archivo \file{sendmail.cf}.
Si se opta por ella, se debe evitar el uso del archivo mailers.linux y en
cambio definir lo siguiente en el archivo \file{sendmail.m4}:

\begin{tscreen}
\begin{verbatim}
dnl --- (en sendmail.m4) ---
define(LOCAL_MAILER_DEF, DELIVER)dnl       # gestor de correo para entrega local
\end{verbatim}
\end{tscreen}

Desafortunadamente, \file{Sendmail.mc} asume que el programa deliver est\'a
instalado en \file{/bin}, lo cual no es el caso con Slackware~1.1.1 (que lo
instala en \file{/usr/bin}). En este caso es necesario, ya sea enga\~narlo
con un enlace simb\'olico o recompilar
\prog{deliver} a partir del c\'odigo fuente para que resida en \file{/bin}. 

%%
%% Merely moving the binary for 'deliver' may result in 'unexpected features'
%%
%% Editing Sendmail.mc to set the path to match the Linux distribution is
%% something that's easy to forget to do as the sendmail+IDA authors come out
%% with updates of the file to fix problems, add features, etc.
%%
%% Defining a LOCAL_MAILER_DEF file is the safest compromise...
%%










%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Gesti\'on de correo rechazado}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{sendmail@\prog{sendmail}!postmaster@\user{postmaster}}
\index{correo!rechazo}

\begin{tscreen}
\begin{verbatim}
define(POSTMASTERBOUNCE)dnl   #  el correo rechazado ira dirigido 
			      #  al postmaster o administrador de correo. 
\end{verbatim}
\end{tscreen}

Muchos sistemas consideran importante asegurar que el correo que se env\'{\i}a y
se recibe tenga un 100\% de fiabilidad. A\'un cuando es \'util que se
examinen los ficheros de registro \prog{syslogd(8)}, en general, el administrador
del correo necesitar\'a ver las cabeceras del correo rechazado, de tal
forma que pueda determinar si el correo no fue entregado debido a un
error del usuario, o a un error de configuraci\'on en alguno de los sistemas
involucrados.

La definici\'on de \keyword{POSTMASTERBOUNCE} hace que se env\'{\i}e una copia de
cada mensaje rechazado a la persona que ha sido definida como
\user{Postmaster} para el sistema.

Desafortunadamente, al definir este par\'ametro, tambi\'en se incluir\'a el
\emph{texto} en el mensaje enviado al Postmaster, lo cual en potencia,
podr\'{\i}a inquietar a los usuarios de correo del sistema en cuanto a su
intimidad se refiere. 

Es conveniente que los postmasters de sistema se autodisciplinen (o lo
hagan por la v\'{\i}a de medios t\'ecnicos a trav\'es de programitas del shell
que borren el texto de los mensajes rechazados que ellos reciben) a no
leer el correo que no est\'a dirigido a ellos.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Asuntos relacionados con el servidor de nombres o Domain Name Service}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{tscreen}
\begin{verbatim}
define(PSEUDODOMAINS, BITNET UUCP)dnl       # no intente usar DNS aqui
\end{verbatim}
\end{tscreen}

Hay varias redes bien conocidas que son punto de referencia com\'un en
las direcciones de correo por razones hist\'oricas, pero que no son
v\'alidas a efectos DNS. El definir \keyword{PSEUDODOMAINS}
evita intentos de b\'usqueda infructuosos por parte del DNS, que siempre 
resultar\'an fallidos.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{C\'omo definir los nombres por los que se conoce al sistema local}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{sendmail@\prog{sendmail}!local hostnames}

\begin{tscreen}
\begin{verbatim}
define(PSEUDONYMS, vstout.vbrew.com  vstout.UUCP vbrew.com)
dnl                                         # nombres por los cuales se nos conoce
define(DEFAULT_HOST, vstout.vbrew.com)dnl   # nuestro 'nombre' primario para el correo
\end{verbatim}
\end{tscreen}

Frecuentemente, los sistemas quieren ocultar su verdadera identidad, o
servir como pasarelas de correo, o recibir y procesar correo dirigido a los
nombres anteriores por los cuales se les conoc\'{\i}an.

\keyword{PSEUDONYMS} especifica la lista de todos los nombres de sistema para
los cuales el sistema local aceptar\'a el correo.

\keyword{DEFAULT\_HOST} especifica la direcci\'on de sistema que aparecer\'a en los
mensajes que se originan en el nodo local. Es importante que este
par\'ametro sea ajustado a un valor v\'alido o todo el correo de retorno
no podr\'a ser entregado.











%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Temas relacionados con UUCP}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{sendmail@\prog{sendmail}!local hostnames}
\index{sendmail@\prog{sendmail}!UUCP}

%%
%%  yes, the '|' before the uuname command is correct
%%

\begin{tscreen}
\begin{verbatim}
define(UUCPNAME, vstout)dnl                 # nuestro nombre uucp
define(UUCPNODES, |uuname|sort|uniq)dnl     # nuestros vecinos uucp
define(BANGIMPLIESUUCP)dnl                  # asegurandonos que el correo
define(BANGONLYUUCP)dnl                     #  uucp sea tratado correctamente
\end{verbatim}
\end{tscreen}

Con frecuencia, los sistemas son conocidos por un nombre a efectos
DNS y otro para prop\'ositos de UUCP. \keyword{UUCPNAME}
permite definir que aparezca un nombre de sistema distinto en los encabezados
del correo enviado a trav\'es de UUCP.

\keyword{UUCPNODES} define las instrucciones que proporcionan como resultado 
una lista con
las direcciones de sistemas con los cuales se est\'a conectado
directamente a trav\'es de conexiones UUCP.

\keyword{BANGIMPLIESUUCP} y \keyword{BANGONLYUUCP} aseguran que el
correo direccionado con la sintaxis ``bang'' de UUCP sea tratado de
acuerdo con el comportamiento de UUCP en vez de utilizar el DNS,
m\'as com\'un hoy en d\'{\i}a en Internet.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Sistemas de relevo y de correo}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{sendmail@\prog{sendmail}!rutado!M\'aquinas inteligentes}
\index{sendmail@\prog{sendmail}!Sistemas de relevo}
\index{sendmail@\prog{sendmail}!gestores de correo}

\begin{tscreen}
\begin{verbatim}
define(RELAY_HOST, moria)dnl                # nuestro sistema de relevo inteligente
define(RELAY_MAILER, UUCP-A)dnl             # alcanzamos moria a traves de UUCP
\end{verbatim}
\end{tscreen}

Muchos administradores de sistema no quieren molestarse en llevar a cabo
todo el trabajo necesario para asegurar que su sistema sea capaz de
encontrar todas las redes (y por supuesto otros sistemas)
existentes en el mundo. En lugar de hacer esto, prefieren confiar
todo el correo saliente a otro sistema reconocido como
``inteligente''.

\keyword{RELAY\_HOST} define el nombre UUCP del sistema vecino inteligente.

\keyword{RELAY\_MAILER} define el gestor de correo utilizado para enviar los mensajes hacia dicho sistema.

Es importante hacer notar que el ajuste de esos par\'ametros redunda en
que todo el correo de salida ser\'a redirigido a ese sistema remoto, lo
cual afectar\'a la carga de ese sistema. Es necesario asegurarse de
obtener el consentimiento expl\'{\i}cito del Administrador de correo del sistema 
remoto antes de
configurar el nuestro para que utilice a otro como nodo
de reenv\'{\i}o de correo a efectos generales.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Tablas de configuraci\'on variadas}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{sendmail@\prog{sendmail}!tablas}

\begin{tscreen}
\begin{verbatim}
define(ALIASES, LIBDIR/aliases)dnl          # alias del sistema
define(DOMAINTABLE, LIBDIR/domaintable)dnl  # maquinas bajo el dominio
define(PATHTABLE, LIBDIR/pathtable)dnl      # base de datos de los caminos
define(GENERICFROM, LIBDIR/generics)dnl     # direccion generica del remitente
define(MAILERTABLE, LIBDIR/mailertable)dnl  # gestores de correo por nodo o dominio
define(UUCPXTABLE, LIBDIR/uucpxtable)dnl    # caminos a los maquinas que surtimos
define(UUCPRELAYS, LIBDIR/uucprelays)dnl    # caminos de cortocircuito
\end{verbatim}
\end{tscreen}

Con estas macros, se puede cambiar la localizaci\'on donde
sendmail+IDA busca las diversas tablas dbm que definen el
comportamiento ``real'' del sistema. Es aconsejable depositarlos en
\keyword{LIBDIR}.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{El archivo maestro \file{Sendmail.mc}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{tscreen}
\begin{verbatim}
include(Sendmail.mc)dnl                     # LINEA INDISPENSABLE!!!
\end{verbatim}
\end{tscreen}

Los autores de sendmail+IDA proporcionan el archivo \file{Sendmail.mc} que
contiene las verdaderas ``tripas'', que ser\'an convertidas al archivo
sendmail.cf. Peri\'odicamente, se sacan nuevas versiones que corrigen
errores en el c\'odigo, o agregan funcionalidad sin necesidad de una
nueva versi\'on y la recompilaci\'on general de sendmail.

Es importante \emph{no} editar este archivo.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Bueno, ?`entonces cu\'ales son las l\'{\i}neas indispensables?}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{sendmail@\prog{sendmail}!CF}

Cuando no se est\'an utilizando ninguna de las tablas dbm opcionales,
sendmail+IDA entrega el correo v\'{\i}a el gestor de correo por omisi\'on
\keyword{DEFAULT\_MAILER} (y posiblemente el sistema de reenv\'{\i}o
\keyword{RELAY\_HOST} y el gestor de correo de reenv\'{\i}o \keyword{RELAY\_MAILER})
definidos en el archivo \file{sendmail.m4} utilizado para generar
\file{sendmail.cf}. Es posible modificar f\'acilmente este
comportamiento cambiando ciertas l\'{\i}neas en los archivos \file{domaintable} o
\file{uucpxtable}.

\index{sendmail@\prog{sendmail}!Sitio Internet}
\index{sendmail@\prog{sendmail}!Sitio ramal UUCP}

Un sistema gen\'erico que est\'e en Internet y se comunique por DNS, o uno que sea
s\'olo UUCP y env\'{\i}e todo su correo v\'{\i}a UUCP a trav\'es de un
\keyword{RELAY\_HOST} inteligente, probablemente no necesite de
ninguna modificaci\'on en una ``table'' espec\'{\i}fica.

Virtualmente todos los sistemas deber\'{\i}an configurar el
\keyword{DEFAULT\_HOST} y las macros \keyword{PSEUDONYMS}, de tal modo que
definan el nombre can\'onico de sistema, y alias, por los que es conocido, y
su \keyword{DEFAULT\_MAILER}. Si todo lo que se tiene es un nodo de
reenv\'{\i}o y un gestor de correo de reenv\'{\i}o, no es necesario ajustar estos valores por
defecto ya que trabajar\'a autom\'aticamente. 

Los nodos UUCP probablemente necesiten ajustar su
\keyword{UUCPNAME} a su nombre oficial UUCP. Tambi\'en es probable que
ajusten su \keyword{RELAY\_MAILER} y su \keyword{RELAY\_HOST} los
cuales habilitar\'an el encaminado de nodo inteligente a trav\'es
de un reenv\'{\i}o de correo. El transporte del correo a emplear se
define en \keyword{RELAY\_MAILER} y normalmente es \keyword{UUCP-A}
para sistemas UUCP.

Si su sistema es s\'olo SMTP y emplea `Domain Name Service' o DNS, se
podr\'{\i}a cambiar el \keyword{DEFAULT\_MAILER} a \keyword{TCP-A} y
probablemente borrar las l\'{\i}neas \keyword{RELAY\_MAILER} y
\keyword{RELAY\_HOST}.

\index{sendmail@\prog{sendmail}!CF|)}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% All IDA tables
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Un viaje por las tablas de Sendmail+IDA}

Sendmail+IDA proporciona varias tablas que permiten modificar el
comportamiento por defecto de sendmail (especificado en el archivo
\file{sendmail.m4}) y definir un comportamiento especial para
situaciones singulares, sistemas remotos y redes. Estas tablas son
luego procesadas con \prog{dbm}, utilizando un Makefile que es parte de
la distribuci\'on. 

Muchos sistemas necesitar\'an algunas de estas tablas, otros ninguna. Si
su sistema no precisa estas tablas, lo m\'as sencillo es,
probablemente, crearlas con longitud cero (con la instrucci\'on
\prog{touch}) y utilizar el archivo Makefile por defecto localizado en 
\keyword{LIBDIR} en lugar de editar el Makefile en s\'{\i} mismo.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{\file{mailertable}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{sendmail@\prog{sendmail}!mailertable@\file{mailertable}}
\index{sendmail@\prog{sendmail}!gestor de correo}

El archivo \file{mailertable} define un tratamiento especial para
m\'aquinas espec\'{\i}ficas o dominios que est\'an basados en el nodo
o nombre de la red remota. Se utiliza de forma frecuente en los
 sistemas Internet para seleccionar un nodo de reenv\'{\i}o de correo
intermedio, o una \emph{pasarela} a trav\'es de la cual alcanzar 
una red remota, y para especificar el protocolo en particular (UUCP o SMTP) 
que se utilizar\'a. Los sistemas UUCP por lo general no necesitan este archivo.

El orden es importante: sendmail lee el archivo desde el principio hacia 
el fin, y procesa el mensaje de acuerdo con la primera regla que
encuentra. Por tanto, lo l\'ogico normalmente es poner las reglas m\'as
expl\'{\i}citas al comienzo del archivo y las m\'as gen\'ericas al final.

Supongamos que se quiere redirigir todo el correo para el departamento de
Ciencias de la Computaci\'on de la Universidad Groucho Marx v\'{\i}a UUCP a
un sistema de relevo, \host{ada}. Para hacer eso, se debe agregar una
l\'{\i}nea en \file{mailertable} como la siguiente:

\begin{tscreen}
\begin{verbatim}
 # (in mailertable)
 #
 # redirige todo el correo para el dominio .cs.groucho.edu via UUCP a ada
 UUCP-A,ada         .cs.groucho.edu
\end{verbatim}
\end{tscreen}

Suponga que se quiere redirigir todo el correo al dominio m\'as grande
\host{groucho.edu} para que vaya a otro sistema de relevo,
\host{bighub}, para la resoluci\'on de sus direcciones y posterior entrega. La
expansi\'on de las l\'{\i}neas que van en el archivo \file{mailertable} ser\'{\i}a la
siguiente:

\begin{tscreen}
\begin{verbatim}
 # (en mailertable)
 #
 # redirige todo el correo para el dominio cs.groucho.edu via UUCP a ada
 UUCP-A,ada         .cs.groucho.edu
 # 
 # redirige todo el correo para el dominio groucho.edu via UUCP a bighub
 UUCP-A,bighub      .groucho.edu
\end{verbatim}
\end{tscreen}

Como se mencion\'o anteriormente, el orden es importante. Invertir el orden de
las dos reglas mostradas anteriormente tendr\'{\i}a como consecuencia que
todo el correo dirigido a \host{.cs.groucho.edu} fuese a trav\'es del
camino m\'as gen\'erico \host{bighub} en vez de utilizar la trayectoria
expl\'{\i}cita \host{ada} que es la que se quiere.

\begin{tscreen}
\begin{verbatim}
 # (en mailertable)
 #
 # redirige todo el correo para el dominio .groucho.edu via UUCP a bighub
 UUCP-A,bighub     .groucho.edu
 #
 # (es imposible alcanzar la siguiente linea porque
 #    la norma que esta arriba sera cumplida primero)
 UUCP-A,ada        .cs.groucho.edu
 #
\end{verbatim}
\end{tscreen}

%
% Mailertable Format
%

En los ejemplos de \file{mailertable} anteriores, el gestor de correo \keyword{UUCP-A}
hace que \prog{sendmail} utilice UUCP como medio de entrega con
cabeceras ``dominizadas''.

La coma entre el gestor de correo y el sistema remoto indica que el mensaje se
debe redirigir a \host{ada} para la resoluci\'on de su direcci\'on y posterior
entrega.

%Mailertable entries are of the format:

Las l\'{\i}neas que van en \file{mailertable} tienen el siguiente formato:

\begin{tscreen}\sl
% mailer delimiter relayhost\hspace{3cm} host\_or\_domain
 mailer delimitador sistema\_de\_relevo\hspace{3cm} maquina\_o\_dominio
\end{tscreen}

Existen diferentes gestores de correo posibles. Las diferencias radican
generalmente en c\'omo tratar\'an las direcciones. Los gestores de correo t\'{\i}picos son:
\keyword{TCP-A} (TCP/IP con direcciones estilo Internet),
\keyword{TCP-U} (TCP/IP con direcciones estilo UUCP), y
\keyword{UUCP-A} (UUCP con direcciones estilo Internet).

El car\'acter que separa al gestor de correo de la porci\'on del nodo en la
parte izquierda de la l\'{\i}nea de mailertable define c\'omo ser\'a modificada la 
direcci\'on 
por la \emph{mailertable}. Lo importante aqu\'{\i} es que \'unicamente se
reescribe el ``sobre'' (para obtener el correo en el sistema
remoto). Reescribir cualquier otra cosa m\'as que el sobre es
desaconsejable debido a la alta probabilidad de arruinar la
configuraci\'on del correo.

%%
%% 'envelope' needs to be mentioned in the overall mail chapter 
%% 

\begin{dispitems}
\item[!]
	Un signo final de exclamaci\'on elimina el nombre del 
	nodo receptor antes de redirigirlo al gestor de correo. Esto se puede
	usar cuando lo que se desea, esencialmente, es forzar al correo
	a entrar en un sistema remoto mal configurado.

\item[,]
	Una coma no cambia la direcci\'on en modo alguno. El mensaje
	simplemente es redirigido v\'{\i}a el gestor de correo especificado al
	nodo o sistema de reenv\'{\i}o especificado.

%%
%% Andy - I've never found a reason to use ':' in real life
%%        and very rarely need to use '!'. [...vds...]
%%

\item[:]
	Dos puntos eliminan el nombre del sistema receptor si
	hay sistemas intermedios entre usted y el destino. As\'{\i},
	\email{foo!bar!joe} eliminar\'a \email{foo}, mientras que
	\email{xyzzy!janet} permanecer\'a sin cambios.
\end{dispitems}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{\file{uucpxtable}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{sendmail@\prog{sendmail}!nomenclatura de dominio plenamente cualificado}
\index{sendmail@\prog{sendmail}!nomenclatura de sistema no cualificado}
\index{sendmail@\prog{sendmail}!rutado!UUCP}
\index{sendmail@\prog{sendmail}!gestores de correo}
\index{sendmail@\prog{sendmail}!UUCP}

Es com\'un que el correo dirigido a sistemas con nombres de dominio
plenamente cualificados se entregue v\'{\i}a formato Internet (SMTP)
utilizando un servidor de DNS, o mediante un
sistema de reenv\'{\i}o. El archivo \file{uucpxtable} fuerza la entrega
mediante encaminamiento UUCP, al convertir el nombre de formato dominio a
un nombre de nodo con estilo UUCP sin formato de dominio.

Esto se utiliza frecuentemente cuando se es un ``repetidor''\footnote{Un an\'alogo de lo que se entiende por ``repetidor'' en telecomunicaciones.}  de correo
para un sistema o dominio, o cuando se desea enviar el correo a trav\'es de
un enlace UUCP directo y seguro en lugar de arriesgarse a pasar potencialmente
por muchos ``saltos''\footnote{N. del T. Como \emph{hop} o salto se entiende cada vez que 
atravesamos un sistema intermedio.} si hacemos uso del gestor de correo por omisi\'on y 
cualesquiera de los sistemas intermedios y redes.

Los sistemas UUCP que se comunican con sus vecinos UUCP, que utilizan
cabeceras de correo dominizadas, podr\'{\i}an utilizar este archivo para
forzar la entrega del correo, a trav\'es del enlace directo UUCP punto a
punto entre los dos sistemas, en lugar de emplear la ruta menos directa
a trav\'es del \keyword{RELAY\_MAILER} y el \keyword{RELAY\_HOST} o a
trav\'es del \keyword{DEFAULT\_MAILER}.

Los sistemas Internet que no empleen UUCP probablemente no utilicen el
archivo \file{uucpxtable}.

Supongamos que usted proporciona servicio de reenv\'{\i}o de correo a un sistema
llamado \host{sesame.com} en DNS y \host{sesame} en los mapas UUCP. Necesitar\'{\i}a
la siguiente l\'{\i}nea en \file{uucpxtable} para forzar el direccionamiento del 
correo para ellos a trav\'es de nuestra conexi\'on UUCP directa. 

\begin{tscreen}
\begin{verbatim}
#============== /usr/local/lib/mail/uucpxtable ============
# El correo enviado a joe@sesame.com se reescribe a
#  sesame!joe y luego se entrega via UUCP
#
sesame          sesame.com
#
#----------------------------------------------------------
\end{verbatim}
\end{tscreen}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{\file{pathtable}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{sendmail@\prog{sendmail}!rutado}

El archivo \file{pathtable} se utiliza para definir el encaminamiento
expl\'{\i}cito a sistemas o redes remotas. El archivo \file{pathtable}
debe escribirse en orden alfab\'etico con una sintaxis similar al estilo de 
\file{pathalias}. Los dos campos de cada l\'{\i}nea deben estar
separados por un TAB real; si no es as\'{\i} \prog{dbm} podr\'{\i}a ``protestar''. 

La mayor parte de los sistemas no precisar\'an ninguna l\'{\i}nea en \file{pathtable}.

%%
%%  need to define %s in the pathtable.  Olaf - can you please check it
%%  out in the pathalias man page if you have it around. My recollection
%%  is that it's effectively "any username"
%%

\begin{tscreen}
\begin{verbatim}
#=============== /usr/local/lib/mail/pathtable ================
#
# Este archivo tiene el estilo de pathalias en cuanto a trayectorias,
# y permite encauzar el correo dirigido a los vecinos UUCP a traves de un camino
# directo, de tal forma que no se tenga que hacer un rodeo hasta el 
# nodo inteligente, que se encarga de otro trafico.
#
# Es deseable que se utilicen espacios de tabulacion reales en cada linea o
#  m4 podria quejarse.
#
# Se debe encaminar el correo a traves de uno o mas sistemas intermedios
# a un sistema remoto utilizando el estilo de direcciones UUCP.
#
sesame!ernie!%s            ernie
#       
# reenviado a un sistema UUCP vecino de un sistema Internet
# alcanzable.
#
swim!%s@gcc.groucho.edu    swim
#
# Lo que sigue manda todo el correo para dos redes a traves de
# distintos gateways (observe el '.' que comienza la linea).
# En este ejemplo, "uugate" y "byte" son sistemas especificos que son
# utilizados como gateways de correo a los pseudo dominios .UUCP y
# .BITNET respectivamente.
#
%s@uugate.groucho.edu           .UUCP
byte!%s@mail.shift.com          .BITNET
#
#=================== fin de pathtable =======================
\end{verbatim}
\end{tscreen}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{\file{domaintable}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{sendmail@\prog{sendmail}!nomenclatura de dominio plenamente cualificado}
\index{sendmail@\prog{sendmail}!nombre de sistema no cualificado}
\index{sendmail@\prog{sendmail}!gestores de correo}

El archivo \file{domaintable} se utiliza generalmente para forzar cierto
comportamiento tras una b\'usqueda DNS.  Permite al administrador hacer
disponible una lista de abreviaturas de los nombres disponibles para
sistemas o dominios a los que hagamos referencia con asiduidad,
reemplazando la abreviatura con el nombre apropiado autom\'aticamente.
Tambi\'en puede ser utilizado para sustituir los nombres de un nodo o
dominio incorrectos con la informaci\'on correcta. 

La mayor parte de los sistemas no necesitan l\'{\i}neas en \file{domaintable}.

El siguiente ejemplo muestra c\'omo reemplazar una direcci\'on personal err\'onea,
 intent\'andose enviar con la correcta:

\begin{tscreen}
\begin{verbatim}
#============= /usr/local/lib/mail/domaintable =================
#
#
maquina_mal_configurada.dominio.correcto   maquina_mal_c.dominio.erroneo #
#
#=================== fin de domaintable ========================
\end{verbatim}
\end{tscreen}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{\file{alias}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{sendmail@\prog{sendmail}!escribiendo el correo a un archivo}
\index{sendmail@\prog{sendmail}!alias de usuarios}
\index{sendmail@\prog{sendmail}!alias}

Los alias posibilitan lo siguiente:

\begin{itemize}
\item
	Permiten que una abreviatura o t\'ermino f\'acil de recordar act\'ue como
	una direcci\'on de correo, que remite lo recibido a una o varias 
	personas.
\item
	Invocan a un programa que tomar\'a como entrada el mensaje.
\item
	Env\'{\i}an correo a un archivo.
\end{itemize}

\index{sendmail@\prog{sendmail}!postmaster}

Todos los sistemas precisan alias para el \user{Postmaster} y el
\user{MAILER-DAEMON} a fin de cumplir con el RFC.

Se debe ser extremadamente cuidadoso con respecto a la seguridad
cuando se definan alias que invoquen a programas o escriban a programas
ya que el sendmail generalmente se ejecuta con los permisos setuid-root.

Los cambios al archivo de \file{aliases} no tienen efecto hasta que el comando

\begin{tscreen}
 \# /usr/lib/sendmail -bi
\end{tscreen}

\noindent
se ejecuta para construir las tablas dbm necesarias. Esto tambi\'en puede
hacerse ejecutando el comando \prog{newaliases}, normalmente
mediante el comando \emph{cron}.

Para m\'as detalles concernientes a los alias de correo, se puede
encontrar m\'as informaci\'on en la p\'agina man \file{aliases(5)}.

\begin{tscreen}
\begin{verbatim}
#--------------------- /usr/local/lib/mail/aliases ------------------
#
# muestra de tipos de alias comunes 
#
usenet:         janet                     # alias para una persona
admin:          joe,janet                 # alias para varias personas
newspak-users:  :include:/usr/lib/lists/newspak
					  # lee los receptores de un archivo
changefeed:     | /usr/local/lib/gup      # alias que invoca un programa
complaints:     /var/log/complaints       # alias que escribe el
					  # correo recibido a un archivo
#
# Los siguientes dos alias deben estar presentes para cumplir con el RFC.
# Es importante tenerlos para asignar a una persona que lea el correo 
# rutinariamente.
#
postmaster:     root                      # linea indispensable
MAILER-DAEMON:  postmaster                # linea indispensable
#
#-------------------------------------------------------------------
\end{verbatim}
\end{tscreen}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Tablas utilizadas en raras ocasiones}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{sendmail@\prog{sendmail}!tablas}

Las siguientes tablas est\'an disponibles, pero se utilizan muy rara
vez. Consulte la documentaci\'on que viene con el c\'odigo fuente de
sendmail+IDA para m\'as detalles.

\begin{dispitems}
\item[\file{uucprelays}]
	\index{sendmail@\prog{sendmail}!rutado!UUCP}
	El archivo \file{uucprelays} se utiliza para
	``corto-circuitar'' la trayectoria del UUCP a sistemas
	especialmente bien conocidos en vez de utilizar una
	trayectoria multi-salto o insegura generada por el
	procesamiento de los mapas UUCP con \file{pathalias}.

\item[\file{genericfrom} y \file{xaliases}]
	\index{sendmail@\prog{sendmail}!alias de usuarios}
	El archivo \file{genericfrom} oculta los nombres y direcciones
	de los usuarios locales del mundo exterior convirtiendo
	autom\'aticamente los nombres de usuarios locales a direcciones
	gen\'ericas de env\'{\i}o no coincidentes con los nombres internos de
	usuarios.

	La utilidad asociada \file{xalparse} automatiza la generaci\'on
	de genericfrom y el archivo \file{aliases} de tal forma que las
	traducciones de los nombres del usuario de entrada y salida
	tengan lugar desde el archivo maestro \file{xaliases}.

\item[\file{decnetxtable}]
	\index{sendmail@\prog{sendmail}!DECnet}
	El archivo \file{decnetxtable} reescribe las direcciones con
	formato dominio a direcciones estilo DECnet muy similares al
	archivo domaintable, que se utiliza para reescribir direcciones
	sin dominizar a direcciones estilo SMTP con formato dominizado.

\end{dispitems}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% How to install and test sendmail+IDA                     %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Instalaci\'on de \prog{sendmail}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{sendmail@\prog{sendmail}!instalaci\'on}

En esta secci\'on se ver\'a c\'omo instalar una distribuci\'on ejecutable t\'{\i}pica
de sendmail+IDA y un recorrido por lo necesario para
personalizarla y hacerla funcionar.

La distribuci\'on binaria actual de sendmail+IDA para \linux{} puede
obtenerse de \host{sunsite.unc.edu} en \file{/pub/Linux/system/Mail}. Incluso
si se tiene una versi\'on anterior de \prog{sendmail} es muy recomendable
utilizar la versi\'on \prog{sendmail5.67b+IDA1.5} ya que todos los parches
espec\'{\i}ficos para Linux est\'an en fuentes poco revisados,
y varios e importantes agujeros de seguridad han sido enmendados (algunos
de ellos datan del primero de diciembre de 1993). 


\index{sendmail@\prog{sendmail}!versi\'on}

%% Hope I'm interpreting you right that there's no binary distribution
%% of sendmail5.67b+IDA1.5

Si se est\'a compilando \prog{sendmail} desde el c\'odigo fuente, se deben
seguir las instrucciones que est\'an en los archivos \file{README} que est\'an
incluidos en la distribuci\'on de los fuentes. El c\'odigo fuente actual de
sendmail+IDA est\'a disponible en \host{vixen.cso.uiuc.edu}. Para construir
sendmail+IDA en \linux{}, tambi\'en se necesitan los archivos de
configuraci\'on especiales para \linux{} \file{newspak-2.2.tar.gz} que est\'an
en \host{sunsite.unc.edu} en el directorio \file{/pub/Linux/system/Mail}. 

Si ten\'{\i}a instalado anteriormente \prog{smail} u otro gestor de entrega de 
correo, probablemente quiera borrar o renombrar todos los ficheros 
pertenecientes a smail para mayor seguridad.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Desempaquetado de la distribuci\'on ejecutable}

Lo primero es desempaquetar el archivo comprimido en alg\'un
lugar seguro:

\begin{tscreen}
\begin{verbatim}
$ gunzip -c sendmail5.65b+IDA1.5+mailx5.3b.tgz | tar xvf -
\end{verbatim}
\end{tscreen}

Si se tiene un \prog{tar} ``moderno'', por ejemplo de una
distribuici\'on de Slackware reciente, probablemente baste con un
\term{tar -zxvf \var{fichero}.tgz} y se obtendr\'an los mismos resultados.

Al despempaquetar el archivo se genera un directorio llamado \file{sendmail5.65b+IDA1.5+mailx5.3b}. 
En este directorio
encontrar\'a la instalaci\'on completa de sendmail+IDA m\'as un programa
binario del agente para usuario \prog{mailx}. Todos los directorios
donde se encuentran los archivos reflejan la ubicaci\'on 
donde deben ser instalados \'estos, as\'{\i} que es m\'as seguro
utilizar la aplicaci\'on \prog{tar} para moverlos a otra parte:


\begin{tscreen}
\begin{verbatim}
# cd sendmail5.65b+IDA1.5+mailx5.3b
# tar cf - . | (cd /; tar xvvpoof -)
\end{verbatim}
\end{tscreen}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Elaboraci\'on del fichero \file{sendmail.cf}}
\index{sendmail@\prog{sendmail}!g\'enesis de sendmail.cf@g\'enesis de \file{sendmail.cf}|(}
\index{sendmail@\prog{sendmail}!CF|(}

Para elaborar un fichero \file{sendmail.cf} personalizado para su sistema, se ha
de escribir un fichero \file{sendmail.m4}, y procesarlo posteriormente con \prog{m4}.

En \file{/usr/local/lib/mail/CF} puede encontrar un archivo de ejemplo llamado
\file{sample.m4}. C\'opielo a \var{nombredesusistema}\file{.m4}, y ed\'{\i}telo a fin de que
refleje la situaci\'on de su sistema. 

El fichero de ejemplo est\'a configurado para un sistema s\'olo UUCP con cabeceras 
dominizadas y que se comunica con un sistema inteligente. Los sistemas como
\'este precisan de pocas variaciones.

En esta secci\'on se se\~nalaran las macros a cambiar. 
Si quiere tener una descripci\'on completa de lo que hacen, dir\'{\i}jase a la secci\'on anterior, ``Discusi\'on del fichero \file{sendmail.m4}''.

\begin{dispitems}
\item[\keyword{LOCAL\_MAILER\_DEF}]

	Define el fichero que especifica los agentes de correo para gesti\'on 
local. Vea la secci\'on previa ``Definici\'on del gestor local de correo'' para 
saber de qu\'e va.

%joer, refino esto un poco o me ci\~no a la personalidad de la traducci\'on????

\item[\keyword{PSEUDONYMS}]

	Especifica todos los nombres por los que es conocido su sistema.

\item[\keyword{DEFAULT\_HOST}]

	Escriba su nomenclatura de dominio plenamente cualificado. Este nombre 
	aparecer\'a como su nombre de sistema en todo el correo saliente.

\item[\keyword{UUCPNAME}]
	
	Ponga su nombre de sistema sin cualificar.      

\item[\keyword{RELAY\_HOST} y \keyword{RELAY\_MAILER}]

	Si se comunica mediante UUCP con un sistema inteligente, defina 
	\keyword{RELAY\_HOST} como el nombre UUCP del ``repetidor inteligente''
	de su vecino UUCP. Haga uso del gestor de correo UUCP-A si desea que las        cabeceras de sus mensajes contengan su dominio.

\item[\keyword{DEFAULT\_MAILER}]
	Si est\'a conectado a Internet y se comunica mediante DNS, deber\'{\i}a definir
	esto como \keyword{TCP-A}. Esto le dice a sendmail que emplee 
	\keyword{TCP-A} como gestor de correo, que entregar\'a el correo via SMTP
	haciendo uso del estilo RFC normal en las direcciones de los receptores
	de correo. Los sistemas conectados permanentemente a Internet 
	probablemente no precisen definir \keyword{RELAY\_HOST} o 
	{RELAY\_MAILER}.

\end{dispitems}
	
Para crear el fichero \file{sendmail.cf}, ejecutar la orden

\begin{tscreen}
\#{} make \var{nombredesusistema}.cf
\end{tscreen}

Esto procesa el fichero \var{nombredesusistema} y crea el fichero
\var{nombredesusistema}\file{.cf} a partir de \'el. 

Lo pr\'oximo ser\'a comprobar si el fichero que acaba de crear hace lo que se 
espera de \'el o no. Esto se explica en las pr\'oximas dos secciones.

Una vez se est\'a contento con su comportamiento, c\'opielo en su sitio con el 
comando:
 
\begin{tscreen}
\#{} cp \var{nombredesusistema}\/.cf /etc/sendmail.cf
\end{tscreen}

\index{sendmail@\prog{sendmail}!generaci\'on de sendmail.cf@generaci\'on del fichero \file{sendmail.cf}|)}
\index{sendmail@\prog{sendmail}!CF|)}

\index{server!sendmail@\prog{sendmail}}
\index{sendmail@\prog{sendmail}!ejecutando}

Llegados a este punto, su sistema sendmail est\'a listo para funcionar. Escriba
la siguiente l\'{\i}nea en el fichero de arranque adecuado (generalmente \file{/etc/rc.inet2}). Puede ejecutarlo ``a mano'' para que empiece a funcionar en este momento.

\begin{tscreen}
\begin{verbatim}
# /usr/lib/sendmail -bd -q1h
\end{verbatim}
\end{tscreen}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%    putting sendmail in \test mode   %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection {Comprobando el fichero \file{sendmail.cf} }
\index{sendmail@\prog{sendmail}!Comprobaci\'on|(}
\index{Comprobaci\'on!sendmail@\prog{sendmail}|(}

%%%%%
%%%%% aaaahhhhhhhhhhh - those darn dashes are driving me crazy.
%%%%%

Para hacer que sendmail funcione en modo `test', ha de ejecutarlo con la opci\'on
\option{-bt}. La configuraci\'on por defecto es el fichero sendmail.cf que est\'e 
instalado en el sistema. Puede probar un fichero de configuraci\'on alternativo
mediante la opci\'on \option{-C}\var{fichero\_alternativo}.

En los siguientes ejemplos, probamos \file{vstout.cf}, el fichero de 
configuraci\'on generado a partir del fichero \file{vstout.m4} que puede ser 
examinado en la figura \ref{sendmail.fig.m4}.
	

\begin{tscreen}
\begin{verbatim}
# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
Enter <ruleset> <address>
[Note: No initial ruleset 3 call]
>
\end{verbatim}
\end{tscreen}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% test that it knows you're you       %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%
%%% there are sure a lot of \item things in this section.
%%% it doesn't look THAT bad, but I wonder...
%%%

Las siguientes comprobaciones aseguran que \prog{sendmail} es capaz de gestionar
el correo de todos los usuarios del sistema. En todos los casos, el resultado de
 la comprobaci\'on deber\'a ser el mismo, y apuntar al nombre del sistema local como
el gestor de correo en \keyword{LOCAL}.


Comprobemos primero c\'omo se gestionar\'{\i}a el env\'{\i}o a un usuario local:

\begin{tscreen}
\begin{verbatim}

# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
Enter <ruleset> <address>
[Note: No initial ruleset 3 call]
> 3,0 me
rewrite: ruleset  3   input: me
rewrite: ruleset  7   input: me
rewrite: ruleset  9   input: me
rewrite: ruleset  9 returns: < me >
rewrite: ruleset  7 returns: < > , me
rewrite: ruleset  3 returns: < > , me
rewrite: ruleset  0   input: < > , me
rewrite: ruleset  8   input: < > , me
rewrite: ruleset 20   input: < > , me
rewrite: ruleset 20 returns: < > , @ vstout . vbrew . com , me
rewrite: ruleset  8 returns: < > , @ vstout . vbrew . com , me
rewrite: ruleset 26   input: < > , @ vstout . vbrew . com , me
rewrite: ruleset 26 returns: $# LOCAL $@ vstout . vbrew . com $: me
rewrite: ruleset  0 returns: $# LOCAL $@ vstout . vbrew . com $: me
\end{verbatim}
\end{tscreen}

El resultado muestra c\'omo \prog{sendmail} procesa las direcciones internamente.
Esto es llevado a cabo por varias \emph{rulesets} que las analizan, llaman a otras 
involucradas, y descomponen la direcci\'on en sus componentes.

En nuestro ejemplo, le pasamos la direcci\'on \email{me} a las rulesets 3 y 0
(esto es lo que significa el t\'ermino \term{3,0} introducido antes de la 
direcci\'on).

La \'ultima l\'{\i}nea muestra la direcci\'on interpretada tal y como la devuelve la 
ruleset 0, que contiene el gestor de correo al que se le encomendar\'{\i}a el 
mensaje, y la m\'aquina y usuario proporcionados al mismo.

A continuaci\'on, comprobaremos el env\'{\i}o de correo a un usuario de nuestro sistema 
con sintaxis UUCP.

\begin{tscreen}
\begin{verbatim}

# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
Enter <ruleset> <address>
[Note: No initial ruleset 3 call]
> 3,0 vstout!me
rewrite: ruleset  3   input: vstout ! me
[...]
rewrite: ruleset  0 returns: $# LOCAL $@ vstout . vbrew . com  $: me
>

\end{verbatim}
\end{tscreen}

A continuaci\'on, comprobamos el correo dirigido a un usuario de nuestro sistema 
con sintaxis Internet, a nuestro nombre de sistema plenamente cualificado 
(FQDN)

\begin{tscreen}
\begin{verbatim}

# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
Enter <ruleset> <address>
[Note: No initial ruleset 3 call]
> 3,0 me@vstout.vbrew.com
rewrite: ruleset  3   input: me @ vstout . vbrew . com
[...]
rewrite: ruleset  0 returns: $# LOCAL $@ vstout . vbrew . com $: me
>

\end{verbatim}
\end{tscreen}

Deber\'{\i}a repetir los anteriores dos pasos con cada uno de los nombres 
especificados como par\'ametros \keyword{PSEUDONYMS} y \keyword{DEFAULT\_NAME}
del fichero \file{sendmail.m4}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% test that your relay_host and relay_mailer work %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Por \'ultimo, comprobar que puede enviar correo a su nodo de reenv\'{\i}o.
\begin{tscreen}
\begin{verbatim}

# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
Enter <ruleset> <address>
[Note: No initial ruleset 3 call]
> 3,0 fred@moria.com
rewrite: ruleset  3   input: fred @ moria . com
rewrite: ruleset  7   input: fred @ moria . com
rewrite: ruleset  9   input: fred @ moria . com
rewrite: ruleset  9 returns: < fred > @ moria . com
rewrite: ruleset  7 returns: < @ moria . com > , fred
rewrite: ruleset  3 returns: < @ moria . com > , fred
rewrite: ruleset  0   input: < @ moria . com > , fred
rewrite: ruleset  8   input: < @ moria . com > , fred
rewrite: ruleset  8 returns: < @ moria . com > , fred
rewrite: ruleset 29   input: < @ moria . com > , fred
rewrite: ruleset 29 returns: < @ moria . com > , fred
rewrite: ruleset 26   input: < @ moria . com > , fred
rewrite: ruleset 25   input: < @ moria . com > , fred
rewrite: ruleset 25 returns: < @ moria . com > , fred
rewrite: ruleset  4   input: < @ moria . com > , fred
rewrite: ruleset  4 returns: fred @ moria . com                                               
rewrite: ruleset 26 returns: < @ moria . com > , fred
rewrite: ruleset  0 returns: $# UUCP-A $@ moria $: < @ moria . com > , fred
>

\end{verbatim}
\end{tscreen}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Integraci\'on global -
	Prueba de integraci\'on del fichero \file{sendmail.cf} y las tablas.}
\index{sendmail@\prog{sendmail}!tablas}
   
Llegados a este punto, ya ha verificado que el sistema de correo tendr\'a el
comportamiento por defecto deseado, y que ser\'a capaz tanto de enviar como 
de recibir correo con direcci\'on v\'alida. Para terminar la instalaci\'on, puede
ser necesario crear las tablas dbm apropiadas para conseguir finalmente 
los resultados deseados.

Tras crear las tablas necesarias para su sistema, deber\'a procesarlas a trav\'es
de \prog{dbm} mediante la ejecuci\'on de la orden \prog{make} en el directorio 
que contenga las tablas.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Do you need tables for your site ?  Maybe...      %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Si su sistema es s\'olo UUCP, \emph{no} necesita crear ninguna de las tablas 
mencionadas
en el fichero \file{README.linux}. S\'olo tendr\'a que modificar los ficheros de tal
 modo que funcione el \emph{Makefile}.

Si su sistema es s\'olo UUCP y ``habla'' con m\'as sistemas adem\'as de su nodo 
de reenv\'{\i}o inteligente, necesitar\'a a\~nadir entradas \file{uucpxtable} para cada 
uno (o el correo destinado a ellos se encaminar\'a tambi\'en a trav\'es del nodo 
inteligente) y ejecutar \prog{dbm} sobre el reci\'en modificado fichero 
\file{uucpxtable}.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% test that your relay_host and relay_mailer work %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Para empezar, necesita asegurarse de que el correo que ha de pasar por su 
\keyword{RELAY\_HOST} se env\'{\i}a mediante el \keyword{RELAY\_MAILER}.

\begin{tscreen}
\begin{verbatim}

# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
Enter <ruleset> <address>
[Note: No initial ruleset 3 call]
> 3,0 fred@sesame.com
rewrite: ruleset  3   input: fred @ sesame . com
rewrite: ruleset  7   input: fred @ sesame . com
rewrite: ruleset  9   input: fred @ sesame . com
rewrite: ruleset  9 returns: < fred > @ sesame . com
rewrite: ruleset  7 returns: < @ sesame . com > , fred
rewrite: ruleset  3 returns: < @ sesame . com > , fred
rewrite: ruleset  0   input: < @ sesame . com > , fred
rewrite: ruleset  8   input: < @ sesame . com > , fred
rewrite: ruleset  8 returns: < @ sesame . com > , fred
rewrite: ruleset 29   input: < @ sesame . com > , fred
rewrite: ruleset 29 returns: < @ sesame . com > , fred
rewrite: ruleset 26   input: < @ sesame . com > , fred
rewrite: ruleset 25   input: < @ sesame . com > , fred
rewrite: ruleset 25 returns: < @ sesame . com > , fred
rewrite: ruleset  4   input: < @ sesame . com > , fred
rewrite: ruleset  4 returns: fred @ sesame . com
rewrite: ruleset 26 returns: < @ sesame . com > , fred                                                          
rewrite: ruleset  0 returns: $# UUCP-A $@ moria $: < @ sesame . com > , fred
>
\end{verbatim}
\end{tscreen}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% test that you can mail directly to uucp neighbors %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Si tiene m\'as vecinos UUCP, adem\'as de su \keyword{RELAY\_HOST}, necesita
asegurarse de que el correo para ellos experimenta un procesamiento
adecuado. El correo con direcciones de sintaxis tipo UUCP dirigido a otro
sistema con el que se comunique tambi\'en mediante UUCP, ir\'a a ellos
directamente (a menos de que lo impida expl\'{\i}citamente mediante una entrada
\file{domaintable}). Asumimos que el sistema \host{swim} es un vecino 
UUCP directo para nosotros. Pasar a \prog{sendmail} un mensaje 
\email{swim!fred} deber\'a producir el siguiente resultado:

\begin{tscreen}
\begin{verbatim}

# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
Enter <ruleset> <address>
[Note: No initial ruleset 3 call]
> 3,0 swim!fred
rewrite: ruleset  3   input: swim ! fred
[...lines omitted...]
rewrite: ruleset  0 returns: $# UUCP $@ swim $: < > , fred
>
\end{verbatim}
\end{tscreen}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% test your uucpxtable entries %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Si tiene entradas \file{uucpxtable} para forzar la gesti\'on de correo UUCP a 
ciertos vecinos UUCP que env\'{\i}an su correo con cabeceras dominizadas tipo 
Internet, tamb\'{\i}en tiene que verificarlo.

\begin{tscreen}
\begin{verbatim}

# /usr/lib/sendmail -bt -Cvstout.cf
ADDRESS TEST MODE
Enter <ruleset> <address>
[Note: No initial ruleset 3 call]
> 3,0 dude@swim.2birds.com
rewrite: ruleset  3   input: dude @ swim . 2birds . com
[...lines omitted...]
rewrite: ruleset  0 returns: $# UUCP $@ swim . 2birds $: < > , dude
>

\end{verbatim}
\end{tscreen}


\index{sendmail@\prog{sendmail}!testing|)}
\index{checking!sendmail@\prog{sendmail}|)}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\section{Administrivia and Stupid Mail Tricks}
\section{Trucos y trivialidades sobre administraci\'on de correo}

Ahora que ya se ha discutido la teor\'{\i}a sobre configuraci\'on, instalaci\'on y 
comprobaci\'on de un sistema sendmail+IDA, dediquemos unos instantes al an\'alisis
de las cosas que \emph{suceden} rutinariamente en la vida de un administrador de
correo.

Los sistemas remotos fallan a veces. Los modems o l\'{\i}neas telef\'onicas fallan o
las definiciones DNS son elaboradas incorrectamente debido a un error humano.  
En estos casos, los administradores de correo han de saber c\'omo reaccionar 
de forma r\'apida, efectiva y \emph{segura} para mantener el tr\'afico del correo a
trav\'es de rutas alternativas hasta que los sistemas remotos o los proveedores 
de acceso puedan restablecer sus servicios habituales.

El resto de este cap\'{\i}tulo pretende proporcionarle soluciones para las 
``emergencias con el correo electr\'onico'' m\'as frecuentes.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Reenv\'{\i}o de correo a un sistema inteligente}
\index{sendmail@\prog{sendmail}!rutado!dominio}
\index{sendmail@\prog{sendmail}!Sistemas de reenv\'{\i}o}

Para redirigir el correo para un sistema o dominio particular hacia el sistema
de reenv\'{\i}o inteligente designado, se emplear\'a normalmente el fichero \file{mailertable}. 

Por ejemplo, para redirigir el correo para \host{backwood.org} a su sistema de
pasarela UUCP \host{backdoor}, tendr\'a que poner la siguiente entrada en \file{mailertable}:


\begin{tscreen}
\begin{verbatim}
 UUCP-A,backdoor   backwood.org
\end{verbatim}
\end{tscreen}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Env\'{\i}o de correo a Sistemas Remotos mal configurados}
\index{sendmail@\prog{sendmail}!sistemas remotos mal configurados}
\index{sendmail@\prog{sendmail}!forzado de correo}

Los sistemas Internet tendr\'an frecuentemente problemas a la hora de hacer entrar el correo en sistemas mal configurados. 
Existen varios casos, pero el s\'{\i}ntoma general es que el correo es devuelto por el sistema 
remoto o que nunca lo alcanza.

Estos problemas pueden colocar al administrador local del sistema en una 
situaci\'on cr\'{\i}tica, ya que sus usuarios generalmente no tienen en cuenta que 
usted no administra todos los sistemas a lo largo y ancho del mundo (o que usted
 no sepa c\'omo hacer que el administrador remoto solucione el problema). Ellos
tan s\'olo sabr\'an que su correo no lleg\'o al destinatario deseado en el otro
extremo, y usted ser\'a la persona m\'as cercana a la que pedir responsabilidades.
 
La configuraci\'on de un sistema remoto es problema de sus administradores, no de usted. En cualquier caso, aseg\'urese de no estropear la configuraci\'on de 
su sistema a fin de comunicarse con un sistema remoto mal configurado. Si no 
puede ponerse en contacto con el administrador (\emph {Postmaster}) del sistema
 remoto a fin de que arreglen su configuraci\'on lo antes posible, tiene dos 
opciones:

%%
%% Probably it would look better not to itemize this. I usually shy away
%% from itemizing large portions of text
%%
%% (ok with me if you want to reformat it to look better - vds)
%%
\begin{itemize}
\item

	Generalmente es posible forzar el correo hacia el interior del sistema
	remoto con \'exito, aunque el sistema remoto est\'e mal configurado;
	las respuestas provenientes del otro extremo posiblemente no 
	funcionen\ldots pero ese es problema del administrador remoto.

	Puede corregir las cabeceras err\'oneas de sus destinatarios de correo
	saliente simplemente usando una entrada \file{domaintable} para su
	sistema/dominio, lo que redundar\'a en que la 
	informaci\'on no v\'alida sea corregida en el correo originado desde su
	sistema:
	
	\begin{tscreen}
	\begin{verbatim}
	 descerebrado.dominio.correcto.com        descerebrado.dominio.erroneo.com
	\end{verbatim}
	\end{tscreen}

\item
	Los sistemas mal configurados devuelven con frecuencia el correo
	al sistema que lo origin\'o, argumentando que ``este correo no es 
	para este sistema'' ya que no tienen debidamente configurado su 
	\keyword{PSEUDONYMNS} o equivalente. Es posible 
	quitar toda informaci\'on relativa al nombre y dominio del sistema en
	los destinatarios de correo saliente de nuestro sistema hacia ellos.
	
	El \keyword{!} de la siguiente \file{mailertable} gestiona el correo
	hacia su sistema remoto


	\begin{tscreen}
	\begin{verbatim}
	 TCP!descerebrados.dominio.correcto.com   descerebrados.dominio.erroneo.com
	\end{verbatim}
	\end{tscreen}
\end{itemize}

No obstante, y aunque se consiga que el correo entre en su sistema, no  hay 
garant\'{\i}as de que ellos puedan responder a nuestros mensajes (su sistema est\'a mal
configurado, recu\'erdelo\ldots) pero para entonces sus usuarios estar\'an 
quej\'andose a sus administradores, que es mejor que los suyos se enfaden con usted.  

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Env\'{\i}o Forzado de correo a trav\'es de UUCP}
\index{mail!Forzado rutado UUCP}
\index{sendmail@\prog{sendmail}!Forzado de rutado UUCP}
\index{sendmail@\prog{sendmail}!nombre de sistema no cualificado}
\index{sendmail@\prog{sendmail}!rutado!UUCP}
\index{sendmail@\prog{sendmail}!UUCP}
\index{sendmail@\prog{sendmail}!gestores de correo}

En un mundo ideal (desde la perspectiva Internet), todas las m\'aquinas tendr\'an
registro en el Servicio de Nombres de Dominio (DNS) y env\'{\i}an su correo con 
nombres de dominio plenamente cualificados.

Si se da la circunstancia de que se comunica v\'{\i}a UUCP con un sistema de estas 
caracter\'{\i}sticas, puede forzar el correo a ser enviado directamente a trav\'es de
la conexi\'on punto-a-punto UUCP en lugar de hacerlo a trav\'es de su gestor de correo 
habitual, esencialmente ``desdominizando'' su nombre de sistema mediante el 
fichero \file{uucpxtable}.

Para forzar el env\'{\i}o de correo a la m\'aquina \host{sesame.com}, deber\'a poner lo 
siguiente en el fichero \file{uucpxtable}:

\begin{tscreen}
\begin{verbatim}
 # desdominizamos sesame.com para forzar el envio UUCP
 sesame    sesame.com
\end{verbatim}
\end{tscreen}

El resultado es que sendmail determinar\'a entonces (a trav\'es de \keyword{UUCPNODES} del fichero \file{sendmail.m4}) que se est\'a conectado directamente al sistema
remoto, y encolar\'a el correo saliente para ser enviado v\'{\i}a UUCP.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Prevenci\'on de que el correo sea enviado v\'{\i}a UUCP}
\index{rail!impidiendo el env\'{\i}o UUCP}
\index{sendmail@\prog{sendmail}!impidiendo el env\'{\i}o UUCP}
\index{sendmail@\prog{sendmail}!nomenclatura de sistema no cualificado}
\index{sendmail@\prog{sendmail}!rutado!UUCP}
\index{sendmail@\prog{sendmail}!UUCP}
\index{sendmail@\prog{sendmail}!gestores de correo}

La condici\'on contraria tambi\'en se da. Con frecuencia, los sistemas tienen cierto
n\'umero de conexiones UUCP que rara vez se emplean o que no siempre son tan 
fiables, o que no est\'an tan disponibles como el gestor de correo por defecto o el 
sistema de reenv\'{\i}o.
 
Por ejemplo, en el \'area de Seattle hay varios sistemas que intercambian las 
distintas distribuciones \linux{} v\'{\i}a UUCP an\'onimo conforme se van liberando las
distribuciones. Estos sistemas se comunican mediante UUCP s\'olo cuando es 
necesario, por lo que es generalmente m\'as r\'apido y fiable enviar el correo a 
trav\'es de m\'ultiples saltos muy fiables y nodos de reenv\'{\i}o (que siempre est\'an
disponibles).

Se puede evitar f\'acilmente el env\'{\i}o directo de correo a una m\'aquina a la que
se est\'a directamente conectado. Si el sistema remoto posee un nombre de dominio
 plenamente cualificado, se puede a\~nadir una entrada como \'esta en el fichero
\file{domaintable}:
 
\begin{tscreen}
\begin{verbatim}
# Evitamos que se envie el correo via UUCP a un sistema vecino
 snorkel.com       snorkel
\end{verbatim}
\end{tscreen}

Esto reemplazar\'a cualquier aparici\'on del nombre UUCP con el nombre 
FQDN, impidiendo por 
tanto cualquier concordancia con la l\'{\i}nea \keyword{UUCPNODES} del fichero \file{sendmail.m4}.
El resultado es, generalmente, que el correo se enviar\'a v\'{\i}a \keyword{RELAY\_MAILER} y \keyword{RELAY\_HOST} (o \keyword{DEFAULT\_MAILER}).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Procesado de la cola de correo a voluntad}
\index{sendmail@\prog{sendmail}!manipulaciones de la cola de correo}
\index{sendmail@\prog{sendmail}!procesado de la cola de correo}

Para procesar los mensajes de la cola de correo saliente inmediatamente, no hay
m\'as que teclear '/usr/lib/runq'\footnote{La llamada a sendmail con el par\'ametro '-q' tiene id\'enticos efectos ('sendmail -q')}. Esto llamar\'a a sendmail con las 
opciones apropiadas para hacer que procese inmediatamente la cola de procesos 
pendientes en lugar de esperar al pr\'oximo procesamiento programado.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Informe sobre las estad\'{\i}sticas de correo}
\index{sendmail@\prog{sendmail}!estad\'{\i}sticas}

Muchos administradores de sistema (y las personas para las que trabajan) est\'an 
interesados en el volumen de correo que es enviado, recibido o que pasa a trav\'es 
de nuestro sistema. Hay varios m\'etodos de cuantificar el tr\'afico de correo.

\begin{itemize}
\item
El paquete sendmail incorpora una utilidad llamada \prog{mailstats} que
lee un fichero llamado \file{/usr/local/lib/mail/sendmail.st}
\footnote{N. del T.: En ciertas distribuciones actuales, como por ejemplo \emph{RedHat}, la localizaci\'on es \file{/var/log/sendmail.st}; 
esto depender\'a de la filosof\'{\i}a de la distribuci\'on
que emplee; el \emph{LFS} (Linux Filesystem Standards, anterior FSSTND) al ser un fichero de \emph{log} o de registro, recomienda el directorio \file{/var/log}}e informa sobre el n\'umero de mensajes y bytes 
transferidos por cada uno de los gestores de correo que se empleen y que aparezcan
en el fichero \file{sendmail.st}. Este fichero debe ser creado manualmente por 
el administrador local para que el registro tenga lugar por parte de sendmail. 
Los totales se reinicializan borrando y volviendo a crear el fichero \file{sendmail.st}. Un m\'etodo para hacer esto es el siguiente;


	\begin{tscreen}
	 \# cp /dev/null /usr/lib/local/mail/sendmail.st
	\end{tscreen}

\item
	Probablemente la mejor forma de obtener informes de calidad acerca de
	qui\'en usa el correo y la cantidad de volumen que pasa hacia, por, y a 
	trav\'es del sistema local sea activar el depurado de correo ({\it debugging}) mediante el uso de \prog{syslogd(8)}. Esto generalmente conlleva el tener que arrancar el demonio \file{syslogd} desde su fichero de inicializaci\'on del sistema
	(de todos modos lo deber\'{\i}a estar haciendo), y a\~nadir una l\'{\i}nea al 
	 fichero \file{/etc/syslog.conf(5)} que tiene el siguiente aspecto:

	%% No s\'e si est\'a en los est\'andares, pero definitivamente, deber\'{\i}a ir en /var
	\begin{tscreen}
	\begin{verbatim}
	mail.debug                         /var/log/syslog.mail
	\end{verbatim}
	\end{tscreen}

	Si emplea \keyword{mail.debug}, y recibe un volumen de correo medio/alto, el resultado proporcionado por syslog puede hacerse bastante grande. Los ficheros de registro generados por \prog{syslogd} necesitan generalmente ser purgados
	rutinariamente por \prog{crond(8)}.

	Existen cierto n\'umero de utilidades disponibles com\'unmente que pueden resumir el resultado del registro de correo procedente de syslogd. Una de las m\'as
conocidas es \file{syslog-stat.pl}, un script en \prog{Perl} que se distribuye
con los fuentes de sendmail+IDA.

\end{itemize}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Integraci\'on y puesta a punto de Distribuciones Ejecutables}
\index{sendmail@\prog{sendmail}!localizaci\'on de ficheros}

A pesar de que el Est\'andar de Sistema de Ficheros de Linux est\'a en 
desarrollo, todav\'{\i}a no est\'a ni terminado ni aceptado universalmente. Mi 
intenci\'on aqu\'{\i} es mostrar que todav\'{\i}a no somos\footnote{N. del T.: Esto ha cambiado desde que esta gu\'{\i}a fue escrita, el \emph{LFS} (Linux Filesystem Standards) o anterior \emph{FSSTND} est\'a en v\'{\i}as de ser aceptado, si es que no lo est\'a ya.} un est\'andar, y proporcionar 
una idea de cu\'ales son los lugares donde aparecen problemas con mayor frecuencia
 
No existe ninguna configuraci\'on aut\'enticamente est\'andar del transporte de correo 
electr\'onico y sus agentes, as\'{\i} como no hay una ``\'unica estructura de 
directorios.''

De acuerdo con esto, es necesario asegurarse de que todas las distintas partes
del sistema (USENET news, mail, TCP/IP) est\'an de acuerdo con la localizaci\'on del
gestor de correo local (\prog{lmail}, \prog{deliver}, etc.), el gestor de correo 
remoto (\prog{rmail}), y el programa de transporte de correo (\prog{sendmail} o
\prog{smail}). Estas suposiciones generalmente no est\'an documentadas; no obstante,
el uso del comando \prog{strings} puede ayudarnos a determinar qu\'e ficheros
 y directorios son los esperados. A continuaci\'on vienen algunos problemas que 
hemos observado en el pasado con algunas de las distribuciones ejecutables y 
fuentes disponibles com\'unmente para \linux{}.
\begin{itemize}
\item
	Algunas versiones de la distribuci\'on de NET-2 de TCP/IP tienen 
	servicios definidos para un programa llamado \prog{umail} en lugar
	de para \prog{sendmail}.

\item
	Existen varios portes de \prog{elm} y \prog{mailx} que buscan al 
gestor de correo (env\'{\i}o) \file{/usr/bin/smail} en lugar de a sendmail.

\item
	Sendmail+IDA tiene un gestor de correo local interno para \prog{deliver}, pero
espera que est\'e en \file{/bin} en lugar de la localizaci\'on m\'as t\'{\i}pica en 
\linux{} \file{/usr/bin}.

\end{itemize}

En lugar de pasar por la trabajosa tarea de compilar todos los clientes de
correo a partir de sus fuentes, generalmente los enga\~naremos con los enlaces
simb\'olicos apropiados.

%%
%% merely moving 'deliver' from where the Linux binary distribution put it
%% to where sendmail+IDA expects it gets you into a posisteman where you have
%% to remember that you altered your configuration and opens you up to the
%% chances that you may create some 'unexpected features'
%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{D\'onde obtener m\'as informaci\'on}

Existen muchos lugares donde buscar m\'as informaci\'on sobre \prog{sendmail}. 
Si se quiere un listado completo, vea el ``\emph{\linux{} MAIL Howto}'', que se env\'{\i}a 
regularmente a \ngrp{comp.answers}. Tambi\'en est\'a disponible por FTP en 
\host{rtfm.mit.edu}. De todos modos, el lugar definitivo son los fuentes de 
sendmail+IDA. Busque en el directorio \file{ida/cf} que cuelga del directorio 
de los fuentes, los ficheros \file{DBM-GUIDE}, \file{OPTIONS}, y 
\file{Sendmail.mc}.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%
% that's all folks (aarff, eso digo yo! :-)
%

\index{configuraci\'on!sendmail@\prog{sendmail}|)}
\index{sendmail@\prog{sendmail}|)}
% \end{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

