17.2. ¿Cómo se reparte el correo?

Generalmente, usted escribirá su correo usando un interfaz de correo como mail o mailx u otros más sofisticados como mutt, tkrat, o pine. Estos programas se denominan agentes de usuario de correo (mail user agents), o MUAs para abreviar. Si usted envía un mensaje de correo, el programa interfaz en la mayoría de los casos se lo pasara a otro programa para que lo transmita. Este programa se denomina agente de transporte de correo (mail transport agent), o MTA. En la mayoría de los sistemas se usa el mismo MTA tanto para el reparto local como remoto, y normalmente se invoca como /usr/sbin/sendmail o, en algunos sistemas que no cumplen la norma FSSTND, /usr/lib/sendmail. En sistemas UUCP no es raro ver que el correo se reparte por dos programas distintos: rmail para el envío remoto de correo, y lmail para el reparto local.

Un envío local de correo es, por supuesto, algo más que añadir el mensaje al buzón del destinatario. Usualmente el MTA local entenderá como usar alias (definir direcciones locales de destinatarios que dirigen a otras direcciones) y como usar redirecciones (dirigir el correo de un usuario a otra dirección). Además, los mensajes que no pudieron ser enviados deben ser normalmente devueltos(bounced) al remitente junto con algún mensaje de error.

Para envíos lejanos, el software de transporte usado depende del tipo de enlace. Si el correo debe enviarse a través de una red que usa TCP/IP, se usará normalmente Protocolo Simple de Trasferencia de Correo (SMTP), que se define en el RFC 821. SMTP se diseñó para repartir correo directamente en la máquina de un destinatario, negociando la transferencia del mensaje con el demonio SMTP del lado remoto. Hoy es práctica común de las organizaciones establecer máquinas especiales que aceptan todo el correo para destinatarios de la organización, y estos anfitriones se encargan de controlar el reparto apropiado a los destinos adecuados.

En redes tipo UUCP, el correo no suele ser enviado directamente, sino que es redirigido hasta su destino a través de un conjunto de máquinas intermedias. Para enviar un mensaje a través de un enlace UUCP, el MTA remitente ejecutará usualmente rmail en la máquina intermedia usando uux, y suministrándole el mensaje en la entrada estándar.

Desde que se llama a uux separadamente para cada mensaje, puede producirse una carga considerable en un anfitrión procesador de correo, además de inundar las colas UUCP con cientos de pequeños mensajes que ocupan una cantidad de disco desproporcionada.[1] Por esto algunos MTAs permiten recopilar varios mensajes de un sistema remoto en un único lote. El fichero de lotes contiene los comandos SMTP que el anfitrión local ejecutaría normalmente si usara una conexión SMTP directa. A esto se le llama BSMTP, o batched SMTP (SMTP por lotes). El lote se suministra a los programas rsmtp o bsmtp en el sistema remoto, que procesará la entrada como si se hubiera dado una conexión SMTP normal.

Notas

[1]

Esto es así porque el espacio de disco se asigna usualmente en bloques de 1024 Bytes. Incluso un mensaje de unas docenas de Bytes ocupara 1 Kb completo.