mailx puede usar SMTP. Su archivo de configuración es ~/.mailrc
Un ejemplo es mailx usando el SMTP de Gmail.
La configuración puede incluso estar en un comando:
mailx -v -s "$EMAIL_SUBJECT" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://smtp.gmail.com:587 \
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
-S smtp-auth-user=$FROM_EMAIL_ADDRESS \
-S smtp-auth-password=$EMAIL_ACCOUNT_PASSWORD \
-S ssl-verify=ignore \
-S nss-config-dir=~/.mozilla/firefox/xxxxxxxx.default/ \
$TO_EMAIL_ADDRESS
Si se utiliza un servidor SMTP normal, es mucho más fácil (ver una introducción detallada aquí):
mailx -v -s "$EMAIL_SUBJECT" \
-S smtp=smtp://smtp.example.com
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
$TO_EMAIL_ADDRESS
También puede colocarlos en el archivo de configuración de mailx ~/.mailrc
Tradicionalmente, Unix mail
y derivados (y muchas otras herramientas de Unix) usan el /usr/bin/sendmail
interfaz proporcionada por casi todos los agentes de transferencia de correo (MTA:postfix, exim, courier y, por supuesto, sendmail).
Es decir, el mail
El programa no habla ningún protocolo de red:envía el mensaje a sendmail
a través de stdin, y le permite manejar la entrega real. (Esto se remonta a los días en que algunos correos usaban SMTP, algunos usaban UUCP, algunos usaban BITNET...)
Una vez que un mensaje se pone en cola a través de sendmail
, el MTA maneja la transmisión de mensajes reales, ya sea a través de SMTP o de otra manera. Según la configuración, puede conectarse directamente al MTA de destino o retransmitir el correo a través de otro host (también llamado host inteligente).
La conexión directa es más común en los servidores; la retransmisión a través de smarthost es más común en computadoras personales en conexiones domésticas:la retransmisión a través de su cuenta de correo electrónico de Gmail o ISP/trabajo es esencial para evitar los filtros antispam de "IP dinámica" general.
(Algunos MTA como esmtp
o nullmailer
están diseñados específicamente para usuarios domésticos y siempre usa un servidor de retransmisión. Estos no admiten la recepción de correo y son mucho más livianos en recursos).
mailx → [/usr/bin/sendmail] → local MTA queue → [SMTP] → recipient MTA → recipient inbox
mailx → [/usr/bin/sendmail] → local MTA queue → [SMTP] → Gmail or ISP/work servers → [SMTP] → recipient MTA → recipient inbox
Otros programas, principalmente los clientes gráficos fáciles de usar como Thunderbird o Outlook, siempre conéctese directamente a un servidor SMTP de retransmisión/host inteligente (nuevamente, generalmente Gmail o ISP/servidor SMTP de trabajo), que transmite el mensaje en su nombre.
La compatibilidad con SMTP nativo está presente en heirloom-mailx
, pero no en el tradicional bsd-mailx
.
app → [SMTP] → Gmail or ISP/work servers → [SMTP] → recipient MTA → recipient inbox
El tercer método, conectarse directamente al servidor del destinatario, es casi nunca. utilizado, y ningún MUA lo admite. En las computadoras personales, su uso haría que su mensaje fuera rechazado (se envía una gran cantidad de spam desde las direcciones IP de los usuarios domésticos infectados).
app → [SMTP] → recipient MTA → caught by the spam filter
Desde el mailx(1)
página man, DESCRIPCIÓN sección, Opciones de cadena subsección:
smtp Normally, mailx invokes sendmail(8) directly to transfer
messages. If the smtp variable is set, a SMTP connection
to the server specified by the value of this variable is
used instead.