2010-05-04 13:17:09 +0000 2010-05-04 13:17:09 +0000
31
31

¿Mailx envía el correo utilizando un relé SMTP o se conecta directamente al servidor SMTP de destino?

Supongamos que envío un correo utilizando el siguiente comando

mailx person@x.com

entonces mailx intenta primero encontrar el servidor SMTP de mi ISP para retransmitir el correo o se conecta directamente. ¿Depende de si mi PC tiene una dirección IP pública o está detrás de un NAT? ¿Cómo puedo comprobar la configuración de mailx en mi PC? ¿Cómo puedo verificar esto usando tcpdump?

Respuestas (4)

31
31
31
2010-12-06 16:37:44 +0000

mailx puede utilizar SMTP. Su archivo de configuración es ~/.mailrc

Un ejemplo es mailx usando el SMTP de Gmail .

El configure puede estar incluso en un solo 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 poner esto en el archivo de configuración de mailx ~/.mailrc

29
29
29
2010-05-04 16:16:41 +0000

Tradicionalmente, Unix mail y sus derivados (y muchas otras herramientas Unix) utilizan la interfaz /usr/bin/sendmail, proporcionada por casi todos los agentes de transferencia de correo (MTAs - postfix, exim, courier, y por supuesto sendmail).

Es decir, el programa mail no habla ningún protocolo de red - alimenta el mensaje a sendmail a través de stdin, y deja que se encargue de la entrega real. (Esto se remonta a los días en que algunos correos usaban SMTP, otros UUCP, otros BITNET…)

Una vez que un mensaje se pone en cola a través de sendmail, el MTA se encarga de la transmisión real del mensaje, ya sea a través de SMTP o de otra forma. Dependiendo de la configuración, puede conectarse directamente al MTA de destino, o retransmitir el correo a través de otro host (también llamado smarthost).

La conexión directa es más común en los servidores; la retransmisión a través de un smarthost es más común en los ordenadores personales en las 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”.

(Algunos MTAs como esmtp o nullmailer están construidos específicamente para usuarios domésticos y siempre utilizan un relayhost. Estos no soportan la recepción de correo y son mucho más ligeros 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, sobre todo los clientes gráficos de fácil uso como Thunderbird o Outlook, siempre se conectan directamente a un servidor SMTP de retransmisión/smarthost (de nuevo, normalmente Gmail o el servidor SMTP del ISP/trabajo), que transmite el mensaje en su nombre.

El soporte 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 - conectar directamente con el servidor del destinatario - no se utiliza casi nunca, y ningún MUA lo soporta. En los ordenadores personales, su uso provocaría el rechazo del mensaje (se envía mucho spam desde direcciones IP de usuarios domésticos infectados).

app → [SMTP] → recipient MTA → caught by the spam filter
3
3
3
2010-05-04 13:27:27 +0000

De la página man mailx(1), sección DESCRIPCIÓN, subsección Opciones de cadena:

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.
1
1
1
2014-01-27 09:06:23 +0000

hay una alternativa sin mta local como sendmail/postix.

paquete debian ssmtp

información de la descripción del rpm:

Summary : Extremely simple MTA to get mail off the system to a Mailhub
URL : http://packages.debian.org/stable/mail/ssmtp
License : GPLv2+
Description : A secure, effective and simple way of getting mail off a system to your mail
            : hub. It contains no suid-binaries or other dangerous things - no mail spool
            : to poke around in, and no daemons running in the background. Mail is simply
            : forwarded to the configured mailhost. Extremely easy configuration.

hth

Stefan K.