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

Mailx invia la posta usando un relay SMTP o si collega direttamente al server SMTP di destinazione?

Supponiamo che io invii una mail usando il seguente comando:

mailx person@x.com

allora mailx cerca prima di trovare il server SMTP del mio ISP per inoltrare la posta o si collega direttamente. Dipende se il mio PC ha un indirizzo IP pubblico o se è dietro un NAT. Come posso controllare le impostazioni di mailx sul mio PC? Come posso verificarlo usando tcpdump?

Risposte (4)

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

mailx può usare SMTP. Il suo file di configurazione è ~/.mailrc

Un esempio è mailx che usa SMTP di Gmail .

La configurazione può anche essere in 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

Se si usa un normale server SMTP, è molto più semplice (vedi un'introduzione dettagliata qui ):

mailx -v -s "$EMAIL_SUBJECT" \
-S smtp=smtp://smtp.example.com
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
$TO_EMAIL_ADDRESS

Puoi anche metterli nel file di configurazione di mailx ~/.mailrc

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

Tradizionalmente, Unix mail e derivati (e molti altri strumenti Unix) usano l'interfaccia /usr/bin/sendmail, fornita da quasi tutti i mail transfer agent (MTA - postfix, exim, courier, e naturalmente sendmail).

Cioè, il programma mail non parla alcun protocollo di rete - invia il messaggio a sendmail via stdin, e lascia che sia lui a gestire la consegna effettiva. (Questo risale ai tempi in cui alcune mail usavano SMTP, altre UUCP, altre ancora BITNET…)

Una volta che un messaggio è accodato attraverso sendmail, l'MTA gestisce l'effettiva trasmissione del messaggio, sia attraverso SMTP o qualcos'altro. A seconda della configurazione, può connettersi direttamente all'MTA di destinazione, o trasmettere la posta attraverso un altro host (chiamato anche smarthost).

La connessione diretta è più comune sui server; il relay via smarthost è più comune sui personal computer su connessioni domestiche - il relay attraverso il tuo account email Gmail o ISP/lavoro è essenziale per evitare i filtri anti-spam “IP dinamico”.

(Alcuni MTA come esmtp o nullmailer sono costruiti specificamente per utenti domestici e usano sempre un relayhost. Questi non supportano la ricezione della posta e sono molto più leggeri in termini di risorse).

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

Altri programmi, soprattutto i client grafici user-friendly come Thunderbird o Outlook, si connettono sempre direttamente a un server SMTP relay/smarthost (di nuovo, di solito Gmail o il server SMTP dell'ISP/lavoro), che trasmette il messaggio per tuo conto.

Il supporto SMTP nativo è presente in heirloom-mailx , ma non nel tradizionale bsd-mailx.

app → [SMTP] → Gmail or ISP/work servers → [SMTP] → recipient MTA → recipient inbox

Il terzo metodo - connettersi direttamente al server del destinatario - non è quasi mai usato, e nessun MUA lo supporta. Sui personal computer, usarlo causerebbe il rifiuto del messaggio (molto spam viene inviato da indirizzi IP di utenti domestici infetti).

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

Dalla pagina man mailx(1), sezione DESCRIZIONE, sottosezione Opzioni stringa:

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

esiste un'alternativa senza mta locale come sendmail/postix.

pacchetto debian ssmtp

info da descrizione 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.