Homepage

Software
- JWindowsScheduler
- EPGScheduler
- Locosys GT-31/BGT-31 Tools
- Wintec 201 Tools
- Wintec 201 Fileformat
- WebCheck
Programmierung
- Python Codeschnipsel
Fremdsoftware
- Java System Toolkit

Portierungen

Fotografie

Fotos

Kontakt

Python Codeschnipsel

Email per SMTP mit Authentifizierung verschicken

Die smtplib in Python erlaubt es recht einfach, Mails per SMTP zu verschicken. Leider haben es die Python Entwickler immer noch nicht geschafft, eine Authentifizierung, wie sie inzwischen die meisten SMTP Server zur Vermeidung von SPAM verlangen, zu implementieren.

Immerhin gibt es für Python 2.2 eine erweiterte smtplib.py. Das Original findet man auf der Homepage des Autor.

Mit dieser Library ist ein Versenden von Emails z.B. über gmx recht einfach:

import smtplib

fromaddr = "<user>@gmx.de"
password = "<password>"
toaddrs = "<email address>"

msg = 'Dies ist eine Testmail über Python'

server = smtplib.SMTP('mail.gmx.net')
#server.set_debuglevel(1)
server.login(fromaddr, password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()

urllib mit Timeout

Verbindungen mit der urllib wie sie bei Python mitgeliefert wird können bei Serverproblemen hängen bleiben. Leider ist es nicht möglich, einen Timeout zu definieren.

Mit der timeoutsocket.py Library ist es aber möglich, einen Timeout für beliebige Socketverbindungen einzustellen, ohne daß man die Socket verwendende Library anpassen muß. Das Original findet man auf der Homepage des Autor.

import timeoutsocket
import urllib
timeoutsocket.setDefaultSocketTimeout(20)
urlopener = urllib.URLopener()
try:
  con = urlopener.open(url)
  output = con.read()
except timeoutsocket.Timeout:
  print "Timeout"




Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /www/htdocs/v080712/php/notes.inc:73 Stack trace: #0 /www/htdocs/v080712/soft/python/schnipsel.html(196): note_footer('e', 'soft/python/sch...', NULL, NULL, NULL, NULL, NULL) #1 {main} thrown in /www/htdocs/v080712/php/notes.inc on line 73