mails abrufen mit Python?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Roman
User
Beiträge: 65
Registriert: Dienstag 14. März 2006, 09:10
Wohnort: Berlin

Hallo,
Ich habe folgendes Problem:
Ich möchte über smtplib auf einen Server zugreifen und von dort mails empfangen.
Der Zugriff geht auch schon mal, aber jetzt weiss ich nicht, wie ich meine alle eingegangenen mails abrufe...
Kann mir da jemand helfen??

Danke schon mal im Voraus,
Roman
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Roman hat geschrieben:Ich möchte über smtplib auf einen Server zugreifen und von dort mails empfangen.
Hallo Roman!

Emails versendest du mit dem Modul ``smtplib``. Ein Email wird dann von Server zu Server über das SMTP-Protokoll weitergereicht, bis die Email am richtigen Server angelangt ist. Der SMTP-Server, der das Email empfängt, gibt es (oft auch indirekt) in ein Postfach. Das ist meist irgendein Ordner auf dem Server.

Um von diesem Server die Email abrufen zu können, verbindest du dich mit dem Postfach. Und das geht mit dem Modul ``poplib``. Hier ist nicht mehr das SMTP-Protokoll, sondern das POP3-Protokoll im Spiel.

Es gibt auch IMAP-Server, das ist so etwas Ähnliches wie POP3, nur mit dem Vorteil, dass die Emails am Server in selbstdefinierbaren Ordnern abgelegt werden können. Die Emails bleiben am Server und können von überall aus immer wieder neu angesehen werden. POP3 ist da ein wenig simpler gestrickt -- und normalerweise werden die Emails nach dem Abrufen vom Server glöscht.

- smtplib: http://docs.python.org/lib/module-smtplib.html
- poplib: http://docs.python.org/lib/module-poplib.html
- imaplib: http://docs.python.org/lib/module-imaplib.html

- http://www.python-forum.de/topic-2286.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Roman
User
Beiträge: 65
Registriert: Dienstag 14. März 2006, 09:10
Wohnort: Berlin

hallo Gerold,
Tut mir leid, dass ich so lange abwesend war... Internetprobleme :roll:
Gibt es eigentlich auch Möglichkeiten, sich mit "kommerziellen" Servern, wie zum Beispiel hotmail.com oder mail.google.com zu verbinden?
Bei mir taucht da immer folgende Fehlermeldung beim Verbindungsaufbau auf:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Dokumente und Einstellungen\Familie\Eigene Dateien\Romans Dateien\PROGRAMME\SCHULE\test2.py", line 2, in <module>
    g = poplib.POP3('mail.google.com')
  File "C:\Python25\lib\poplib.py", line 99, in __init__
    self.welcome = self._getresp()
  File "C:\Python25\lib\poplib.py", line 137, in _getresp
    resp, o = self._getline()
  File "C:\Python25\lib\poplib.py", line 119, in _getline
    line = self.file.readline()
  File "C:\Python25\lib\socket.py", line 345, in readline
    data = self._sock.recv(self._rbufsize)
error: (10054, 'Connection reset by peer')
>>> 
Das ganze sollte mit folgendem simplem skript gemacht werden:

Code: Alles auswählen

import poplib
g = poplib.POP3('mail.google.com')
print g
Muss ich das anders machen?
Danke,
Roman
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

WEnn ich mich noch richtig erinnern kann, musst du bei gmail POP3 zuerst aktivieren und dann per SSL zugreifen. Bin mir allerdings nicht mehr sicher.
Roman
User
Beiträge: 65
Registriert: Dienstag 14. März 2006, 09:10
Wohnort: Berlin

Ok, danke. Ich werds dann mal so versuchen und schreiben, ob es funktioniert.
Bis dann,
Roman
Antworten