Seite 1 von 1

mails abrufen mit Python?

Verfasst: Freitag 10. November 2006, 16:10
von Roman
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

Re: mails abrufen mit Python?

Verfasst: Freitag 10. November 2006, 17:00
von gerold
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
:-)

Verfasst: Freitag 10. November 2006, 17:05
von gerold

Verfasst: Mittwoch 15. November 2006, 15:17
von Roman
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

Verfasst: Mittwoch 15. November 2006, 15:20
von DatenMetzgerX
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.

Verfasst: Samstag 25. November 2006, 16:23
von Roman
Ok, danke. Ich werds dann mal so versuchen und schreiben, ob es funktioniert.
Bis dann,
Roman