Où sommes nous ?

Envoyer des mail

vers l'extérieur sous Ubuntu

Pour des raisons de sécurité et d'anti-spam, Ubuntu n'est pas capable d'envoyer des mails vers l'extérieur de lui-même. Par exemple, l'utilisation de sendmail ou depuis un code PHP échouera lamentable avec l'erreur suivante :

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

lolo@fai.com
Mailing to remote domains not supported

Dans ce billet, nous allons donc configurer ce qu'il manque pour que les mails issus de mon serveur soient envoyés vers le serveur mail de mon FAI, Free, puis vers l'extérieur.

Les relais de mail

Il faut installer un logiciel supplémentaire : les plus connus sont Sendmail et Postfix mais c'est un peu comme utiliser une pelle mécanique pour planter un clou ... il existe des outils plus légers lorsqu'il s'agit uniquement d'envoyer des mails depuis une seule machine vers un seul compte.

Nullmailer est l'un d'eux et s'il est extrêmement simple à configurer, c'est que son unique fonction est de relayer les mails qui lui sont envoyés vers un autre "Mail Transfer Agent" comme celui des FAI.

Installation de NullMailer

On lance l'installation en temps que root :

root@bidule:~# apt-get install nullmailer
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets suivants seront ENLEVÉS :
exim4 exim4-base exim4-config exim4-daemon-light
Les NOUVEAUX paquets suivants seront installés :
nullmailer
0 mis à jour, 1 nouvellement installés, 4 à enlever et 1 non mis à jour.
Il est nécessaire de prendre 92,7ko dans les archives.
Après cette opération, 3 564ko d'espace disque seront libérés.
Souhaitez-vous continuer [O/n] ? O
Réception de : 1 http://fr.archive.ubuntu.com karmic/universe nullmailer 1:1.04-1.1 [92,7kB]
92,7ko réceptionnés en 1s (70,3ko/s)
Préconfiguration des paquets...

Une fois le téléchargement effectué, le programme de configuration démarre automatiquement :

 

 ┌──────────────────────┤ Configuration de nullmailer ├──────────────────────┐
│ Le nom de courrier du système est le nom complet qualifié de la machine │
│ faisant fonctionner nullmailer. Par défaut, ce sera le nom « me » │
│ (« moi », en anglais). │
│ │
│ Nom de courrier de votre système : │
│ │
│ bidule.chez.moi__________________________________________________________ │
│ │
│ <Ok> <Cancel> │
│ │
└───────────────────────────────────────────────────────────────────────────┘

Il s'agit de l'identifiant de la machine qui enverra les mails ... on peut y mettre n'importe quoi.
Cette valeur est stockée dans le fichier /etc/mailname

                   ┌────┤ Configuration de nullmailer ├─────┐
│ Machines relais : │
│ │
│ smtp.free.fr__________________________ │
│ │
│ <Ok> <Cancel> │
│ │
└────────────────────────────────────────┘

Il s'agit ensuite d'indiquer le serveur de mail du FAI.
Il est stocké dans le fichier /etc/nullmailer/remotes

Et voila, c'est fini.

[...]
Dépaquetage de nullmailer (à partir de .../nullmailer_1%3a1.04-1.1_i386.deb) ...
Traitement des actions différées (« triggers ») pour « man-db »...
Paramétrage de nullmailer (1:1.04-1.1) ...
* Starting mail-transfer-agent: [ OK ]

Problème de sécurité

Histoire de diminuer le SPAM, les FAI ont parfois activé des sécurités qu'il nous faudra contourner.

ATTENTION : il ne faut pas non plus abuser de l'envoie des mails. Ainsi, certains FAI couperont automatiquement le tuyau si le nombre de mails est trop important. Idem si un de vos destinataire se plains.

Activer l'envoi de mail chez le FAI

Chez certains FAI, il faudra explicitement activer les mails sortant. Évidemment, ça dépend du FAIs et on trouvera cette option généralement dans la console d'administration.

Mail rejeté à cause d'un nom de domaine inconnu

Généralement, les FAI vérifient que le nom de l'émetteur est correct, ou du moins que le nom de domaine du host existe ... dans mon cas, avec un domaine en "chez.moi", mes mails étaient rejetés.

La solution est d'ajouter dans le fichier /etc/environment les lignes suivantes :

NULLMAILER_SUSER=toto
NULLMAILER_SHOST=yahoo.com

Ce qui est important, c'est que le nom du HOST soit valide. Je dois avouer ne pas avoir plus approfondi, mais ça marche. Par contre, l'entête des mails est toujours pris en compte ... ce qui fait que ces valeurs ne sont pas forcement assoicées explicitement aux les mails reçus dans les clients de messageries.

Backlistage chez Free

C'est extrêmement facile de se faire backlister : il suffit par exemple d'installer un logiciel de monitoring tel que Nagios, de lui demander d'envoyer des mails lorsque la charge CPU est trop haute, d'oublier le tout ... et de lancer des compilations ...

Vérifier pourquoi les mails n'arrivent pas

La première chose à faire est d'aller voir dans les logs s'il n'y a pas d'erreur. Le fichier se nome /var/log/mail.log

Oct  9 06:45:59 bidule nullmailer[23847]: smtp: Failed: 421 4.7.0 smtp4-g21.free.fr Error: too many connections from <<votre IP >>

Ici clairement, on a envoyé trop de mails

Que faire ?

La réponse est simple : rien !

Normalement, la situation devrait se débloquer d'elle-même après quelques heures,  une journée maximum.

On peut voir en temps réel si notre IP est bloquée sur le site de free idoine.


Visitez :
La liste de nos voyages
Nos sorties Ski et rando
Copyright Laurent Faillie 2001-2024
N'oubliez pas d'entrer le mot de passe pour voir aussi les photos perso.
Contactez moi si vous souhaitez réutiliser ces photos et pour les obtenir avec une plus grande résolution.
Visites durant les 7 derniers jours Nombre de visites au total.

Vous pouvez laissez un commentaire sur cette page.