Seite 1 von 1

Fehler im cgi-Script mit socket.gethostbyname

Verfasst: Mittwoch 4. April 2007, 22:54
von Mawilo
Hallo,

ich habe auf einer Webseite ein cgi-Script, mit dem Daten in eine Datenbank geschrieben werden und an eine angegebene Adresse ein Email mit einer Datei gesendet wird. Das funktioniert auch fast. Nur beim Senden des Emails habe ich Probleme. Beim lokalen test mit xampp hat alles funktioniert.
Zum Senden des Mails verwende ich simplemail von gerold (vielen Dank :lol: )

Hier die Fehlermeldung, die cgitb ausspuckt:

Code: Alles auswählen

 120         if email.send(): 
 
  121             self.printMessage('Email send successfully')
 
  122         else: 
 
email = <simplemail.Email object>, email.send = <bound method Email.send of <simplemail.Email object>> 
 /mnt/kw1/01/953/00000029/htdocs/JoPop/cgi-bin/simplemail.py in send(self=<simplemail.Email object>) 
  518         # Am SMTP-Server anmelden und evt. authentifizieren
 
  519         #
 
  520         smtp = smtplib.SMTP()
 
  521         if self.smtp_server:
 
  522             smtp.connect(self.smtp_server)
 
smtp undefined, global smtplib = <module 'smtplib' from '/opt/RZpython2/lib/python2.4/smtplib.pyc'>, smtplib.SMTP = <class smtplib.SMTP> 
 /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') 
Nach der Meldung gibt es ein Problem mit der Zeile:

Code: Alles auswählen

  258                 addr = socket.gethostbyname(socket.gethostname())
Ich befasse mich erst seit kurzem mit dieser Materie. Wie kann ich den Fehler beheben?
Hier ist ein Bild der Meldung.

Viele Grüße
Mawilo

Verfasst: Freitag 6. April 2007, 22:43
von Mawilo
Dank der Mailingliste habe ich den Fehler gefunden. Im Script simplemail.py von Gerold habe ich die Zeile 520 geändert auf:

Code: Alles auswählen

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

Natürlich muss os auch importiert werden.

Dann hat es funktioniert.