Art. 122-5

Sommaire

[modifier] Le problème

Certains FAI comme neuf.fr refusent les mails provenant de serveurs qui ne se présentent avec un FQDN de type A du domaine de l'expéditeur. Ce problème se pose essentiellement pour les domaines se trouvant sur des serveurs mail mutualités.

Une solution simple consiste à se présenter avec son adresse IP, en respectant la RFC 2821 : l'IP doit être entre crochets. Comment configurer QMail pour se présenter avec son IP

Une autre solution consiste à choisir un FQDN du domaine de l'expéditeur pour se présenter (si il en existe un), le patch Art122-5 essaye de se présenter comme le MX du domaine, si il l'est effectivement et si ce MX est bien un FQDN du domaine.

[modifier] Description détaillée

En fait c'est très simple, lorsque notre serveur SMTP essaye d'envoyer un mail à neuf.fr, il contacte le serveur av.mgp.neufgp.fr obtenu grâce à une requête DNS. On peu par exemple le faire via dig :

dig neuf.fr MX

Ensuite notre serveur établie une connection TCP avec ce serveur sur le port 25

telnet av.mgp.neufgp.fr 25

Ce dernier lui répond via l'entête qui va bien

Trying 84.96.92.100...
Connected to av.mgp.neufgp.fr..
Escape character is '^]'.
220 sp604002av neuf telecom ESMTP server ready

et on peu commencer la négociation par un bonjour, et c'est là que les chose ce gatte ... notre machine n'a pas un nom, mais plusieurs ... et elle utilise son "vrai" nom pour se présenté (celui que retourne le reverse-dns dig -x 82.165.36.103)

HELO s15213153.onlinehome-server.info

réponse:

250 sp604002av hello [82.165.36.103], Bonjour - ravi de bavarder

hors lorsque l'on envoi le :

MAIL FROM:<toto@art122-5.net

Le serveur coupe la connexion avec :

550 5.1.0 <toto@art122-5.net>  - Utilisez la passerelle messagerie de votre fournisseur Internet (smtp.xxx)
Connection closed by foreign host.

Hors cela fonnctione très bien si au lieu de

HELO s15213153.onlinehome-server.info

le serveur envoi (smtp.art122-5.net étant la même machine que s15213153.onlinehome-server.info)

HELO smtp.art122-5.net

Mais cela marche également si on se présente comme étant ns.art122-5.net qui n'est pas MX, ou [82.165.36.103]

Une fois la connexion établie avec le nom adéquate, il est possible de se présenter avec n'importe quel nom pendant un certain temps.

[modifier] Que disent les RFC

Il n'existe rien de plus limpide qu'une RFC, je vous conseil donc la lecture de la RFC-2821 : Simple Mail Transfer Protocol. Après ça le seigneur des annaux vous semblera être un simple nouvelle parue dans un recoin d'une feuille de choux.


dans la RFC 2821 section 3.6

   -  The domain name given in the EHLO command MUST BE either a primary
      host name (a domain name that resolves to an A RR) or, if the host
      has no name, an address literal as described in section 4.1.1.1.


dans la RFC 1123 section 5.2.5

      5.2.5  HELO Command: RFC-821 Section 3.5

         The sender-SMTP MUST ensure that the <domain> parameter in a
         HELO command is a valid principal host domain name for the
         client host.  As a result, the receiver-SMTP will not have to
         perform MX resolution on this name in order to validate the
         HELO parameter.

         The HELO receiver MAY verify that the HELO parameter really
         corresponds to the IP address of the sender.  However, the
         receiver MUST NOT refuse to accept a message, even if the
         sender's HELO command fails verification.

         DISCUSSION:
              Verifying the HELO parameter requires a domain name lookup
              and may therefore take considerable time.  An alternative
              tool for tracking bogus mail sources is suggested below
              (see "DATA Command").

              Note also that the HELO argument is still required to have
              valid <domain> syntax, since it will appear in a Received:
              line; otherwise, a 501 error is to be sent.

         IMPLEMENTATION:
              When HELO parameter validation fails, a suggested
              procedure is to insert a note about the unknown
              authenticity of the sender into the message header (e.g.,
              in the "Received:"  line).

[modifier] La solution au problème

Comme je doutes que l'on puisse toucher à la configuration de neuf.fr, le plus simple est de modifier notre serveur, et lui apprendre à choisir le nom avec lequel il se présente, ou de le faire se présenter avec son adresse IP plutôt qu'avec son nom.

[modifier] Modification de QMail pour se présenter avec son IP

Ce qui est bien c'est qu'il n'y a aucune modification de code à faire. il suffit d'éditer le fichier /var/qmail/control/helohost et de remplacer le nom de la machine par son adresse IP entre crochet.

Les crochet sont très important, sinon vous n'êtes pas compliant avec la RFC 2821 et vous vous ferez jeter.

[modifier] Utilisez le patch art122-5

Le Patch Qmail Art122-5 est une solution plus complète mais peut être pas utilisable sur toutes les machines. C'est une modification de QMail pour qu'il utilise son nom de MX sur le domaine si il existe et est bien un FQDN du domaine.

Cette solution est complémentaire de la première, non une alternative.

Anglais
L'article que vous demandez n'existe pas en Anglais.
Pages liées
Les pages menant à celle-ci
Un peu de musique ?


A propos