Discussion:
[Python-de] gaierror
Stephan John
2007-04-05 21:00:48 UTC
Permalink
Hallo,

ich habe ein cgi-Script erstellt, das mit Hilfe des Moduls simplemail.py von
Gerold (Veröffentlicht im Python-Forum -
http://www.python-forum.de/topic-3158.html) an den User ein Mail sendet,
nachdem verschiedene Daten erfasst und in einer MySQL-Datenbank gespeichert
wurden. Lokal funktioniert alles wunderbar. Lege ich das cgi-Script auf den
Server, bekomme ich folgende Fehlermeldung von cgitb zurück:

...
/opt/RZpython2/lib/python2.4/smtplib.py in __init__(self=<smtplib.SMTP
instance>, host='', port=0, local_hostname=None)
256 else:
257 # We can't find an fqdn hostname, so use a domain
literal
258 addr = socket.gethostbyname(socket.gethostname())
259 self.local_hostname = '[%s]' % addr
260
addr undefined, global socket = <module 'socket'
from '/opt/RZpython2/lib/python2.4/socket.pyc'>, socket.gethostbyname =
<built-in function gethostbyname>, socket.gethostname = <built-in function
gethostname>

gaierror: (8, 'node name or service name not known')
args = (8, 'node name or service name not known')

Die Zeile 258 ist als "Verursacher" farblich markiert. Ein zusätzlicher import
von socket hat nichts gebracht.

Wie kann ich den Fehler beheben? Oder ist da evtl. die Serverkonfiguration
falsch? Da es nicht mein Server ist, kann ich die Konfiguration leider nicht
ändern.

Danke
Stephan
Karsten Schulz
2007-04-06 05:33:08 UTC
Permalink
Hi,
Post by Stephan John
gaierror: (8, 'node name or service name not known')
args = (8, 'node name or service name not known')
es sieht so aus, als ob die SMTP-Lib nicht in der Lage ist, den
Hostnamen Deines Servers herauszufinden. Das kann verschiedene Ursachen
haben, von denen die meisten nicht durch Dich beseitigt werden können.

Abhilfe: gib Deinem SMTP-Objekt den Hostnamen explizit mit:
.... SMTP(..., local_hostname='mein.server.name')

dadurch verhinderst Du, dass der nicht funktionierende Code ausgeführt
wird.

Gruß
Karsten
Stephan John
2007-04-06 22:07:21 UTC
Permalink
Post by Karsten Schulz
Hi,
Post by Stephan John
gaierror: (8, 'node name or service name not known')
args = (8, 'node name or service name not known')
es sieht so aus, als ob die SMTP-Lib nicht in der Lage ist, den
Hostnamen Deines Servers herauszufinden. Das kann verschiedene Ursachen
haben, von denen die meisten nicht durch Dich beseitigt werden können.
.... SMTP(..., local_hostname='mein.server.name')
dadurch verhinderst Du, dass der nicht funktionierende Code ausgeführt
wird.
Gruß
Karsten
_______________________________________________
python-de maillist - python-de at python.net
http://python.net/mailman/listinfo/python-de
Danke, die Angabe des Hostnamens hat geholfen und das Script funktioniert.

Ich habe die Zeile wie folgt geändert:

smtp = smtplib.SMTP(local_hostname=os.environ['HTTP_HOST'])


Stephan

Jens Diemer
2007-04-06 07:12:08 UTC
Permalink
Post by Stephan John
socket.gethostbyname =
<built-in function gethostbyname>, socket.gethostname = <built-in function
gethostname>
gaierror: (8, 'node name or service name not known')
args = (8, 'node name or service name not known')
Check auch mal, wie deine "from"-Adresse ist. Man könnte die z.B. so
zusammen bauen:

from_address = "python_skript@%s" % os.environ['HTTP_HOST']
--
Mfg.

Jens Diemer


----
A django powered CMS: http://www.pylucid.org
Loading...