# [mail] Les mails ne partent plus alors que ca allais avant

## loopx

Bonsoir, 

J'avais réglé, il y a quelques semaines, un système de mail (simple envoie, pas vraiment de réception). J'ai un serveur local qui utilise le FAI pour l'envoie de mails sur le net.

Mais, bizarement, un jour, les mails ne veulent plus partit :

```
Apr 10 22:10:15 serveur postfix/master[22021]: daemon started -- version 2.5.5, configuration /etc/postfix

Apr 10 22:11:46 serveur postfix/pickup[22027]: 4D3635AEB08: uid=0 from=<root>

Apr 10 22:11:46 serveur postfix/cleanup[22093]: 4D3635AEB08: message-id=<20090410201146.4D3635AEB08@serveur>

Apr 10 22:11:46 serveur postfix/qmgr[22029]: 4D3635AEB08: from=<root@serveur.mondomaine>, size=344, nrcpt=1 (queue active)

Apr 10 22:11:46 serveur postfix/smtp[22095]: 4D3635AEB08: to=<root@serveur.mondomaine>, orig_to=<root@serveur>,relay=relay.skynet.be[195.238.5.128]:25, delay=0.24, delays=0.09/0.03/0.09/0.03, dsn=5.0.0, status=bounced (host relay.skynet.be[195.238.5.128] said: 553 Envelope sender <root@serveur.mondomaine> rejected (in reply to MAIL FROM command))

Apr 10 22:11:46 serveur postfix/cleanup[22093]: 8FB0362858: message-id=<20090410201146.8FB0362858@serveur>

Apr 10 22:11:46 serveur postfix/qmgr[22029]: 8FB0362858: from=<>, size=2275, nrcpt=1 (queue active)

Apr 10 22:11:46 serveur postfix/qmgr[22029]: 4D3635AEB08: removed

Apr 10 22:11:46 serveur postfix/bounce[22096]: 4D3635AEB08: sender non-delivery notification: 8FB0362858

Apr 10 22:11:46 serveur postfix/qmgr[22029]: 8FB0362858: removed

Apr 10 22:11:46 serveur postfix/smtp[22095]: 8FB0362858: to=<root@serveur.loopx.dyndns.org>, relay=relay.skynet.be[195.238.5.128]:25, delay=0.29, delays=0.02/0/0.09/0.18, dsn=2.0.0, status=sent (250 ok:  Message 277388421 accepted)
```

En gros, le mail part, il doit surement être refusé et revient dans la boite de l'envoyeur (si possible). Le truc, c'est que entre temps, je n'ai absolument rien fait : 

- aucune mise à jour

- aucun arret/test sur la machine

- aucune modif réseau particulière

- j'ai simplement éteint le serveur un samedi pour préserver la planète (1 heure) mais le problème ne vient pas de la puisque les mais bloque depuis un jeudi ...

Donc, je me pose de beaucoup de question ... Je suis chez BELGACOMMMM et je me demande si ce ne serait pas eux qui auraient bloqué l'envoie des mails pour X raison (jespère que les mails ne sont pas arrivé dans leur boite mails par erreur ... comme c'était le cas avec un autre thread).

Je suis tombé sur ce post :

http://www.mail-archive.com/debian-user-french@lists.debian.org/msg134521.html

il y est dis (pour une autre erreur plus bavarde que la mienne) que l'adresse DNS doit exister pour le domaine ... Or :

- mon domaine = "mondomaine" (je l'ai changé hein   :Wink:    je vous le cache)

- la machine qui envoie est : root@mondomaine

- mon domaine est pingable via le net, j'utilise dyndns

- le serveur.mondomaine est aussi pingable

- mais mondomaine et tout autre *.mondomaine n'est pas un MX record ...

Je sais pas si quelques chose pourrais faire en sorte que les mails ne passe plus, je pense vraiment que j'ai été bloqué, mais l'adresse de destination est toujours joignable (ai testé via telnet ... 25 et c'est bien arrivé à destination).

Une idée ? en attendant, je vais lire ceci :

http://irp.nain-t.net/doku.php/170smtp:start

J'avoue que ca me fait mousser cette histoire, tout allais si bien  :Sad: 

----------

## loopx

Ok, j'ai trouvé : 

```
serveur ~ # telnet relay.skynet.be 25

Trying 195.238.5.128...

Connected to relay.skynet.be.

Escape character is '^]'.

220 relay.skynet.be ESMTP

helo .

250 relay.skynet.be

mail from: root@serveur.mondomaine

553 Envelope sender <root@serveur.mondomaine> rejected

500 #5.5.1 command not recognized

500 #5.5.1 command not recognized

mail from: caca@serveur.be

250 sender <caca@serveur.be> ok
```

Le problème vient donc du fait que "serveur.mondomaine" est rejeté par ce con de belga! Et donc, ben ... Comment je fais ? Pourqoi ? Comment ???   :Mad: 

----------

## guilc

Bah c'est plutôt clair non ?

Le sender est sensé être VALIDE

La plupart des serveurs vont vérifier qu'il existe un enregistrement MX sur le domaine utilisé. C'est le cas du relais belgacom, et c'est une bonne chose. Certains serveurs vont aussi vérifier que le user est valide sur le domaine en utilisant la commande VRFY sur le MX de l'émetteur (plus rare, mais ça existe).

Tout ça pour lutter contre le SPAM.

Donc en clair, utilise un domaine valide et légitime, ce que tu es sensé avoir quand tu mets en place un serveur mail, et ça marchera.

----------

## geekounet

+1 pour le MX, c'est requis dans la majorité des cas.  :Wink: 

----------

## loopx

Pouaaaaaarf   :Crying or Very sad: 

Ok, je comprend mieux  :Sad:      Mais alors, la vérification des MX est complètement différée (1 mois  :Surprised: ) car ca à bien fonctionné au début ...

Bon, ben j'ai plus qu'a enregistrer mon domaine avec un MX ... Comment que je peux faire gratuitement en sachant que mon domaine est déjà sur dyndns (gratuit) ???

Je pourrais peut être utilisé la technique du "mail spoofing"   :Laughing:    je vais créer une adresse mail bidon jamais utilisée, mais au moins, j'aurais un "from" valide ... C'est vraiment mauvais quoi ...

Sinon, ok pour le bloquage mais qu'en est-il du déblocage si l'adresse devient réellement valide ? Devrais-je attendre 1 mois ou téléphonner à belgacom ?

----------

## guilc

 *loopx wrote:*   

>  je vais créer une adresse mail bidon jamais utilisée, mais au moins, j'aurais un "from" valide ... 

 

Ah bon parce que toi, quand tu envoies un mail, le from est pas valide ? traduit autrement : tu envoies des mails, mais on ne peut pas te répondre ????

Quant à blocage/déblocage : tout simplement, belgacom a du changer la conf de ses relays. Et le "déblocage" prends le temps d'une propagation DNS sur ton domaine...

----------

## loopx

 *guilc wrote:*   

>  *loopx wrote:*    je vais créer une adresse mail bidon jamais utilisée, mais au moins, j'aurais un "from" valide ...  
> 
> Ah bon parce que toi, quand tu envoies un mail, le from est pas valide ? traduit autrement : tu envoies des mails, mais on ne peut pas te répondre ????

 

Tout à fait  :Smile:     Car ces adresses mails n'auront jamais de réponses.

----------

## geekounet

Sinon l'achat d'un vrai nom de domaine c'est quand même pas la mort : les moins chers sont dans les 5€/an, et c'est 10-15€/an en moyenne (le prix change selon l'extension), bref ça coute genre un café par mois... Et avec ça t'es en totale liberté et total controle sur ton domaine, et c'est aussi préférable quand on fait du mail.

----------

## loopx

 *geekounet wrote:*   

> Sinon l'achat d'un vrai nom de domaine c'est quand même pas la mort : les moins chers sont dans les 5€/an, et c'est 10-15€/an en moyenne (le prix change selon l'extension), bref ça coute genre un café par mois... Et avec ça t'es en totale liberté et total controle sur ton domaine, et c'est aussi préférable quand on fait du mail.

 

Je suis pauvre pour le moment   :Laughing:       puis non mert, devoir payer 5 euro pour un MX me fou un peu les boules. Je vais bricoler : création d'une boite mail réel mais jamais utilisé et hop, tout rentrera dans l'ordre  :Smile: 

Je dirais à postfix de dire que les mails viennent de cette boite et Belgacom ira encore une fois se faire mettre ^^

EDIT: hihihi, j'ai juste un tit souci pour config postfix, mais ca va aller, je trouverais ... Il faut que je fasse une espèce de "masquerade" avec les mails en modifiant l'adresse source :

```
Apr 11 14:14:53 serveur postfix/qmgr[9704]: F3FEA5AEB22: from=<root@serveur.mondomaine@gmail.com>, size=352, nrcpt=1 (queue active)

Apr 11 14:14:53 serveur postfix/smtp[9752]: F3FEA5AEB22: to=<root@serveur.mondomaine>, orig_to=<root@serveur>, relay=relay.skynet.be[195.238.5.128]:25, delay=0.31, delays=0.1/0.03/0.16/0.03, dsn=5.0.0, status=bounced (host relay.skynet.be[195.238.5.128] said: 501 #5.1.3 Invalid character ('@') in username. (in reply to MAIL FROM command))
```

J'ai utiliser le paramètre "myorigin" mais visiblement, ce n'est que pour le domaine ... Ca ne fixe pas le nom de l'envoyeur ...

EDIT2: ok la technique fonctionne, reste plus qu'a fixé le nom du user car ... pour le moment, les mails partent sous le nom de "root@gmail"...

EDIT3: c'est cela qu'il me faudrait :

 *Quote:*   

> 
> 
> # ADDRESS REWRITING
> 
> #
> ...

 

EDIT4: http://www.postfix.org/ADDRESS_REWRITING_README.html

j'aurais jamais pensé que les systèmes de mails étaient aussi compliqué ...

----------

## guilc

C'est pas compliqué, c'est fait pour identifier un minimum l'expéditeur et se donner les moyens de déterminer si un mail est légitime ou non.

En l'occurrence, le mail from "@gmail.com" est une très mauvaise idée : tu vas partir en SPAM sur pas mal de serveurs qui utilisent SPF (et je dirais, bien fait, on récolte se qu'on sème en tentant de détourner le bon fonctionnement des serveurs mail)...

```
gmail.com.              1       IN      TXT     "v=spf1 redirect=_spf.google.com"

_spf.google.com.        257     IN      TXT     "v=spf1 ip4:216.239.32.0/19 ip4:64.233.160.0/19 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:209.85.128.0/17 ip4:66.102.0.0/20 ip4:74.125.0.0/16 ip4:64.18.0.0/20 ip4:207.126.144.0/20?all"
```

Google utilise les enregistrements SPF, donc ton serveur n'est pas légitime pour émettre des mails @gmail.com, donc tout serveur vérifiant les SPF (il y en a de plus en plus) va rejeter tes mails...

Et dis toi bien que belgacom n'est pas la pour embêter le monde, mais pour éviter de devenir relais à SPAM...

----------

## loopx

Ok, j'ai bien compris, mais ca me bloque mon système  :Sad: 

J'ai trouvé ceci :

```
sender_canonical_maps = hash:/etc/postfix/sender_canonical_maps
```

mais bon, ca fonctionne pas encore :

```
Apr 11 21:22:59 serveur postfix/cleanup[5131]: fatal: open database /etc/postfix/sender_canonical_maps.db: Invalid argument

Apr 11 21:23:00 serveur postfix/master[3122]: warning: process /usr/lib/postfix/cleanup pid 5131 exit status 1

Apr 11 21:23:00 serveur postfix/master[3122]: warning: /usr/lib/postfix/cleanup: bad command startup -- throttling
```

En fait, il n'y a que le serveur qui envoie des mails de notification : ce sont donc des users locaux qui envoie. Je me suis dis que, si j'arrivais à transformer le "root" en un nom potable @gmail, ca ira peut être ...

Maintenant, les mails passe mais ca va rebloquer car la vérification du user dans le domaine ne pourrait être valide ; la technique du dessus consiste donc à utiliser un user existant sur gmail ... et de faire en sorte que chaque sender local du serveur (qui envoie à root ... root qui a un alias pour renvoyer vers l'adresse ou je check les notifications) se voit "remapé" et se faire changer d'adresse source.

Avec cette technique, je ne vois pas du tout pourquoi/comment mes mails pourraient encore être bloqué  :Surprised: 

EDIT: bon j'envoie ma config car ca me rend fou, c'est compliqué pour faire un truc de simple  :Sad: 

```
serveur postfix # egrep -v '^(#|$)' /etc/postfix/main.cf

queue_directory = /var/spool/postfix

command_directory = /usr/sbin

daemon_directory = /usr/lib/postfix

mail_owner = postfix

myhostname = serveur.mondomaine

mydomain = mondomaine

sender_canonical_maps = hash:/etc/postfix/sender_canonical_maps

myorigin = gmail.com

unknown_local_recipient_reject_code = 550

relayhost = relay.skynet.be

smtpd_banner = $myhostname ESMTP $mail_name is for LOCAL SENDER ONLY!

debug_peer_level = 2

debugger_command =

         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin

         xxgdb $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail

newaliases_path = /usr/bin/newaliases

mailq_path = /usr/bin/mailq

setgid_group = postdrop

html_directory = /usr/share/doc/postfix-2.4.6-r2/html

manpage_directory = /usr/share/man

sample_directory = /etc/postfix

readme_directory = /usr/share/doc/postfix-2.4.6-r2/readme

home_mailbox = .maildir/
```

Il y a un truc que je n'ai pas encore bien compris avec le "sender_canonical_maps" .. c'est donc un fichier .db  qu'il veut, et moi j'ai fais un fichier texte  :Very Happy:  :

```
serveur postfix # cat sender_canonical_maps.db

root            ttttts
```

 :Very Happy:   en espérant que, si je suis loggé en root sur le serveur et qeu je fais "mail monadressemail"    je recoive un mail provenant de "tttttt@gmail.com"   :Rolling Eyes: 

Possible ca ?

EDIT2: mais waaah, suis complètement foutu en mail moi ... je connais vraiment pas grand chose, y a pas un bon howto qui explique les trucs que les gens explique pas habituellement  :Surprised:  ?  SPF, connait pas .. ca fonctionne comment ? comment il pourrait rejeté mes mails ?   :Rolling Eyes: 

----------

## loopx

 :Surprised: : :Surprised:  :Surprised: 

Je viens de voir ca sur dyndns.org (ou mon domaine est enregistré) pour la configuration de mon hote :

```
Mail Routing:

 Yes, let me configure Email routing.

```

La case n'est PAS cochée   :Rolling Eyes:     c'est de ca qu'il s'agit ? Si je coche, j'aurais un MX et mon domaine sera valide   :Very Happy:   ????

EDIT: une fois coché, ca se déroule :

```

MX Hostname:

Primary:

 Yes, use it as my primary mail relay.

 No, use it as backup MX record.
```

Dans "hostname", c'est le nom du serveur de mail dans mon domaine  :Surprised:         mais, on accès à mon domaine que via le seul nom d'hote ... donc, je dois mettre quoi  :Surprised:       serveur.mondomaine ? ou laisser vide  :Surprised:         et les 2 ligne de bas, je dois cocher quoi pour bien faire ?

EDIT2: Hostname mondomaine updated.

J'ai mis, comme Hostname MX, "mondomaine" .. pour qu'il envoie les mails pour "mondomaine" vers ... mon seul serveur ... non ?  et j'ai laissé en primary aussi   :Rolling Eyes: 

Alors quoi, cette fois, Belgacom va pouvoir me débloquer si je reprend la config de début (quand les mails était envoyé correctement avec un mail from non valide) ?

----------

## guilc

SPF, c'est un enregistrement DNS (de type TXT) que l'administrateur du domaine indique pour spécifier quels sont les serveurs valides pour émettre des mails sur le domaine. Ainsi, seul les serveurs dûment déclarés dans cet enregistrement seront à considérer comme légitime sur le domaine, tous les autres étant des potentielles sources de SPAM puisque non officiels.

Charge au SMTP qui reçoit le mail de vérifier (ou pas, c'est l'administrateur du SMTP de réception qui fait ce choix lorsqu'il configure ses mécanismes anti-spam) cette information. Mais s'il utilise cette information, il va voir que tu es émetteur avec un domaine pour lequel tu n'es pas légitime, et il va dégager ton mail => SPAM

C'est une technique mise en place pour lutter contre le SPAM. Il y en a d'autres, mais celle là est maintenant très répandue.

http://www.openspf.org/

----------

## loopx

 *guilc wrote:*   

> SPF, c'est un enregistrement DNS (de type TXT) que l'administrateur du domaine indique pour spécifier quels sont les serveurs valides pour émettre des mails sur le domaine. Ainsi, seul les serveurs dûment déclarés dans cet enregistrement seront à considérer comme légitime sur le domaine, tous les autres étant des potentielles sources de SPAM puisque non officiels.
> 
> Charge au SMTP qui reçoit le mail de vérifier (ou pas, c'est l'administrateur du SMTP de réception qui fait ce choix lorsqu'il configure ses mécanismes anti-spam) cette information. Mais s'il utilise cette information, il va voir que tu es émetteur avec un domaine pour lequel tu n'es pas légitime, et il va dégager ton mail => SPAM
> 
> C'est une technique mise en place pour lutter contre le SPAM. Il y en a d'autres, mais celle là est maintenant très répandue.
> ...

 

 :Surprised: 

C'est assez récent comme technique alors  :Smile: 

Merci pour les info, ca m'intéresse beaucoup  :Smile:     J'ai envie de faire un vrai serveur de mail maintenant avec tout ca   :Rolling Eyes:        c'est malin, jvais y passer des nuits  :Very Happy: 

EDIT: je viens d'annuler toute les magouilles et maintenant, retour à la normal (sauf que j'ai modifier "mylocation" en "mondomaine" et non "serveur.mondomaine" de manière à avoir simplement "mondomaine" de visible vu que c'est uniquement sur "mondomaine" que j'ai maintenant un MX (enfin, je crois, on m'a toujours pas dit si c'était possible avec dyndns..)

----------

## guilc

 *loopx wrote:*   

> C'est assez récent comme technique alors 

 

La RFC a 3 ans et le projet a été initié en 2003. Pas si récent que ça !

----------

## loopx

Ouf, c'est vieux de fait  :Surprised: 

tiens au fait, avec dig ... Donc, j'ai activé le soit disant MX sur mondomaine .... 

```

loop loopx # dig mx mondomaine

; <<>> DiG 9.6.0-P1 <<>> mx mondomaine

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40492

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:

;mondomaine.              IN      MX

;; AUTHORITY SECTION:

mondomaine.       86400   IN      SOA     serveur.mondomaine. loop_x.hotmail.com. 200511251 28800 7200 604800 86400

;; Query time: 1 msec

;; SERVER: 10.2.1.62#53(10.2.1.62)

;; WHEN: Sat Apr 11 21:00:23 2009

;; MSG SIZE  rcvd: 96
```

Alors déjà, le "serveur.mondomaine" (SOA), je sais pas du tout ce qu'il fou la, ni même comment il sais qu'il y a un "serveur.mondomaine" dans ce domaine ... une idée ? Et donc, aucun MX (je m'attendais à une ligne avec "mondomaine" MX "mondomaine"    routage de mail quoi ...)

EDIT: merde, on dirait que le site dyndns.org déconne car j'ai beau coché le routage de mail, quand je retourne voir, il est à nouveau décoché  :Sad: 

EDIT2: mdr, en fait, sur l'hote "mondomaine", je ne peux pas mettre l'hote pour l'échange de mail sur "mondomaine" ... mais si j'utilise "mondomaine2" (qui est dyndns.org aussi et qui pointe vers la même ip), et bien la il sauvegarde   :Laughing: 

devrais-je utiliser un nom plus complet (avec wildcard) genre mail.mondomaine pour que ca pass  :Surprised:  ?   Serait plus joli note  :Smile: 

EDIT3: 

Dynamic DNS Free (DDNS) allows you to create a hostname that points to your home or office IP address, providing an easy-to-remember URL for quick access. We also provide an update mechanism which makes the hostname work with your dynamic IP address. We continue to offer this service free to the Internet community as we have done so for nearly 10 years.

Capabilities and Features

    * Get five (5) hostnames in 88 available domains for free.

    * Forward web requests or mark host offline for maintenance or downtime.

    * Configure MX records for flexible mail routing.

    * Update host using ddns update clients for a wide variety of platforms.

    * Modify DNS TTL values for fast propagation or reliable static IP caching.

    * Deliver your DNS records to 5 DNS servers in 5 tier-1 datacenters around the globe.

    * Query volume up to 648,000 queries/month

donc, ca doit fonctionner ..

EDIT4: 

4. Mail Routing Parameters

If you would like to set MX (Mail eXchanger) records for your hostname, check "Yes, let me configure Email routing" box. When this is checked, we will publish MX records for your hostname.

Then enter "MX Hostname" where you must use a host (A) record of the server that will process mail for yourhostname.example.org.

When the server you specify is only a backup MX (MX with less priority), change selection to the "Backup" option. We will create a primary MX record assigned to your current hostname and secondary record entered in "MX Hostname". For more information, see Email, Mail Exchangers, and DNS article.

EDIT5: il faudra peut être attendre 12h ... (pourtant, il me semble que ce n'est que quand on avait déjà un MX, ce qui n'est aps mon cas) :

Caching Errors

By default, MX records created for Custom DNS hosts have a Time To Live (TTL) value of 12 hours. If you change the MX records for your domain, sending mail servers may continue to try to deliver email using the old information for up to 12 hours, until the records clear and the new information is retrieved. If you have just changed your MX records and you are receiving bounced messages or other errors, you may need to wait for the changes to propagate completely before mail is delivered correctly.

Ok, je viens d'avoir un MX pour mon deuxième domaine, mais pas pour le premier alors que ca devrait être pareil. C'est bien ce qu'il me semblait, mon premier domaine est tellement vieux, qu'il doit avoir un souci avec les MX ... C'est de la aussi que j'ai un "serveur.domaine" dans la requette "dig" plus haut (que je n'ai pas du tout avec le deuxième domaine).

Je crois que je vais essayer d'utiliser le deuxième domaine pour les mails ... ca change pas grand chose pour moi   :Wink:     mais ce sera un domaine valide (donc important pour belgacom  :Smile: ).

EDIT6: j'ai envoyé un mail au support de dyndns car je ne comprend pas pourquoi, avec la meme configuration, un des deux domaine veut bien d'un MX, alors que l'autre non (justement celui dont j'ai envie en plus).

----------

## loopx

De dyndns :

```
The MX record has absolutely nothing to do with sending mail, as I

explained previously.  It is only affects receiving mail.  Most likely

your mail is blocked because you are on a dynamic IP and/or have no

reverse DNS for your IP.  If that is the case, you can use our MailHop

Outbound service to send mail:

 

http://www.dyndns.com/services/mailhop/outbound.html
```

Ca vous parle ce genre de truc ? Car bon, ce n'est plus un problème de MX alors   :Rolling Eyes: 

----------

