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

Mailx envoie-t-il du courrier en utilisant un relais SMTP ou se connecte-t-il directement au serveur SMTP cible ?

Supposons que j'envoie un courrier en utilisant la commande suivante :

mailx person@x.com

alors mailx essaie d'abord de trouver le serveur SMTP de mon FAI pour relayer le courrier ou se connecte-t-il directement. Cela dépend-il du fait que mon PC a une adresse IP publique ou qu'il se trouve derrière un NAT ? Comment puis-je vérifier les paramètres de mailx sur mon PC ? Comment puis-je le vérifier en utilisant tcpdump ?

Réponses (4)

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

mailx peut utiliser le SMTP. Son fichier de configuration est ~/.mailrc

Un exemple est mailx utilisant le SMTP de Gmail .

Le fichier de configuration peut même être en une seule commande :

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 un serveur SMTP normal est utilisé, c'est beaucoup plus facile (voir une introduction détaillée ici ) :

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

Vous pouvez également les mettre dans le fichier de configuration de mailx ~/.mailrc

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

Traditionnellement, Unix mail et ses dérivés (et de nombreux autres outils Unix) utilisent l'interface /usr/bin/sendmail, fournie par presque tous les agents de transfert de courrier (MTA - postfix, exim, courier, et bien sûr sendmail).

C'est-à-dire que le programme mail ne parle aucun protocole de réseau - il transmet le message à sendmail via stdin, et lui permet de gérer la livraison effective. (Cela remonte à l'époque où certains courriers utilisaient le SMTP, d'autres l'UUCP, d'autres encore le BITNET…)

Une fois qu'un message est mis en file d'attente à sendmail, le MTA s'occupe de la transmission effective du message, que ce soit par SMTP ou autre chose. Selon la configuration, il peut soit se connecter directement au MTA de destination, soit relayer le courrier via un autre hôte (également appelé smarthost).

La connexion directe est plus courante sur les serveurs ; le relais via un smarthost est plus courant sur les ordinateurs personnels sur les connexions à domicile - le relais via votre compte Gmail ou votre FAI/mail professionnel est essentiel pour éviter les filtres antispam “IP dynamique” généralisés.

(Certains MTA tels que esmtp ou nullmailer sont conçus spécifiquement pour les utilisateurs à domicile et utilisent toujours un relais. Ceux-ci ne prennent pas en charge la réception de courrier et sont beaucoup plus légers en termes de ressources).

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

D'autres programmes, principalement les clients graphiques conviviaux tels que Thunderbird ou Outlook, toujours se connectent directement à un serveur SMTP relais/smarthost (là encore, généralement Gmail ou ISP/serveur SMTP de travail), qui transmet le message en votre nom.

Le support SMTP natif est présent dans heirloom-mailx , mais pas dans le traditionnel bsd-mailx.

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

La troisième méthode - se connecter directement au serveur du destinataire - n'est presque jamais utilisée, et aucun MUA ne la prend en charge. Sur les ordinateurs personnels, son utilisation entraînerait le rejet de votre message (beaucoup de spam est envoyé à partir d'adresses IP d'utilisateurs domestiques infectés).

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

De la page mailx(1) man, section DESCRIPTION, sous-section Options de chaîne :

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

il existe une alternative sans mta local comme sendmail/postix.

paquet debian ssmtp

info de la description du 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.