Accueil » Tutoriels Python » Ce script semble sympa mais...

Commentaire

Au-dessus dans le fil de ce commentaire : Envois d'email

Ce script semble sympa mais...

Posté par sebastien le 26/02/2005 22:32
...il y a toujours un *mais*.
Si je veux envoyer directement mes emails en passant par un serveur smtp distant, je me retrouve avec une erreur de connexion de socket
<code>
% python mail.py
Traceback (most recent call last):
File "mail.py", line 21, in ?
'sebastien@cheminel.com')
File "mail.py", line 14, in send
server = smtplib.SMTP('smtp.free.fr') # objet serveur
File "/usr/lib/python2.3/smtplib.py", line 254, in __init__
addr = socket.gethostbyname(socket.gethostname())
socket.gaierror: (-2, 'Name or service not known')
</code>
Une courte recherche sur internet me renvoi vers des explications sur /etc/resolv.conf ce qui me chagrine beaucoup. Comment avoir accès à de tel fichier sur un serveur mutualisé. C'est impossible.
Ma question est donc : est-ce un problème de python (qui m'échappe) ? Ou est-ce un problème de résolution DNS propre à ma machine (je n'ai aucun problème par ailleurs) ?

Ce tutorial vise un but très intéressant mais comment le mettre en pratique hors localhost ?
Je n'en suis qu'au début de mes recherches sur ce problème et dès que j'ai trouvé une solution (si personne ne m'en apporte ici :) je vous en fait part.

Mets l'ip au lieu du FQDN

Posté par lstep le 28/02/2005 09:59
[quote]server = smtplib.SMTP('smtp.free.fr') # objet serveur
File "/usr/lib/python2.3/smtplib.py", line 254, in __init__
addr = socket.gethostbyname(socket.gethostname())
socket.gaierror: (-2, 'Name or service not known') [/quote]


Si ton problème est que tu n'as pas de /etc/resolv.conf, cela veut dire que ta machine ne peut pas convertir les adresses DNS -> IP. Donc, à priori, tu devrais pouvoir t'en sortir en mettant l'adresse IP de smtp.free.fr au lieu de 'smtp.free.fr'.
smtp.free.fr a plusieurs IP (pour la repartition de charge). Essayes 213.228.0.44.

Précisions

Posté par jkermabo le 28/02/2005 22:06
Salut

Il s'agit effectivement normalement d'une erreur de résolution de nom.
Pour t'aider il faudrait :

1) le contenu de ton /etc/nsswitch.conf
2) le contenu de ton /etc/resolv.conf
3) le contenu de ton /etc/hosts
4) la sortie de la commande "hostname"
5) la sortie de la commande "dig `hostname`"
6) la sortie de "dig smtp.free.fr"

Aprés tout ça on y verra plus clair déjà. Sinon effectivement tu peux mettre l'adresse IP en dur mais bon, intellectuellement ce n'est pas trés satisfaisant non ?

Joël

 
Aidez l'AfPy

Rechercher
Dernières news AFPY
Les 6 dernières news
RMLL 2008 - On y était !!!
13/07/2008 06:00
Sun se rapproche de Python
09/07/2008 06:00
AFPyro de Juin
24/06/2008 00:00