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.