Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam
Jeżeli chodzi o pythona jestem kompletnym laikiem, ale potrzebuje napisać sobie skrypt który będzie mi wrzucał maile do bazy danych - kolega polecił mi pythona niestety mam problem z parsowaniem wiadomości
Oto mój kod:
import poplib import email from email import parser pop_conn = poplib.POP3('serwer.pop3') pop_conn.user('login') pop_conn.pass_('haslo') messages = [pop_conn.retr(i) for i in range(1, len(pop_conn.list()[1]) + 1)] messages = ["\n".join(mssg[1]) for mssg in messages] messages = [parser.Parser().parsestr(mssg) for mssg in messages] for message in messages: print message['from'] print message['subject'] if message.is_multipart()!=True: print message.get_payload(decode=True) else: print message.get_payload() pop_conn.quit()
i w zależności od formatu wiadomości zwraca mi takie wyniki
"Adrian" <adrian@wp.eu> test2 [<email.message.Message instance at 0x012843A0>, <email.message.Message instance at 0x01284378>] -------------------- "Adrian" <adrian@wp.eu> test3 Tescior 3 -------------------- =?iso-8859-2?B?R79lZ7/zs2th?= <adrian@wp.eu> =?iso-8859-2?B?dGVzdCBHv2Vnv/Oza2E=?= Test Gżegżółka
patrzałem w kilka manuali i próbowałem to rozwiązać, ale efekt był mizerny.
Może znajdzie się ktoś, kto zechce pomóc.
Offline
Może napisz na czym polega problem, wkleiłeś kod, podałeś przykład co robi, a nie wiemy co miałby robić. Co ma być sparsowane i co wrzucone do bazy. Widać, że masz adres e-mail, temat i treść. W czym problem? Chyba zostało to powrzucać do bazy danych.
Offline
chciałbym wrzucać sam tekst bez znaczników i innych zbędnych informacji - czyli tak jak jest w przykładzie 2.
i moje pytanie jest jak wyłuskać z pozostałych przypadków ten tekst.
Offline
W pierwszym przykładzie masz jakieś obiekty Message, być może jakieś załączniki. Twój kod powinien być na to przygotowany, załączniki mogą mieć własne załączniki. Dobrze byłoby wykorzystać rekurencje, to nie takie proste. Zerknij na przykład: http://code.activestate.com/recipes/86675-using-the … unpack-a-mul/ . Niektóre nagłówki zostały zakodowane jak widać w przypadku 3 gdzie są polskie znaki i te stringi zostały zakodowane za pomocą base64. Dobrze by było gdybyś poczytał o tym jak taka wiadomość e-mail wygląda, jakie zawiera nagłówki, jak są kodowane znaki, załączniki. To nie takie banalne jak się wydaje.
Offline