Добрый день! Подскажите, никак не могу понять что делаю не так!
import poplib, email, imaplib
in_server = 'pop.gmail.com'
class cb_import:
def receive_imap(self):
print "connecting"
m = imaplib.IMAP4_SSL(in_server)
print m.login(username, userpass)
print m.select()
typ, data = m.search(None, 'ALL')
print data
for num in data[0].split():
typ, data = m.fetch(num, '(RFC822)')
print 'Message %s\n%s\n' % (num, data[0][1])
msg = email.message_from_string(data[0][1])
print "Date:",msg.get("Date")
print "Message-ID:",msg.get("Message-ID")
print "Subject:",msg.get("Subject")
attachments = msg.get_payload()
for part in attachments:
filename = part.get_filename()
if filename:
print filename
f = open(filename, "wb")
f.write(part.get_payload(decode=1))
f.close
m.close()
m.logout()
def receive_mail(self):
con = poplib.POP3_SSL(in_server,995)
print "Connecting to",username
print con.user(username)
print con.pass_(userpass)
print con.stat()
response, lst, octets = con.list()
for msgnum, msgsize in [i.split() for i in lst]:
(resp, lines, octets) = con.retr(msgnum)
msgtxt = "\n".join(lines)+"\n\n"
msg = email.message_from_string(msgtxt)
msg_from = msg['from']
msg_to = msg['to']
msg_date = msg['date']
msg_subj = "".join([text for text,enc in dkh(msg['subject'])])
print "* От: %s\n* Кому: %s\n* Дата: %s\n* Тема: %s\n" % (msg_from,msg_to,msg_date,msg_subj)
msg_parts = [(part.get_filename(), part.get_payload(decode=True))
for part in msg.walk() if part.get_content_type() == 'text/plain']
for name,data in msg_parts:
if name != None: # вложенный текстовый файл
print "Вложенный файл: "+name
f = file(name,'wb')
f.write(data)
f.close()
else: # текст письма
print "Текст письма: "+str(data)
con.quit()
cb = cb_import()
print "---------------POP3"
cb.receive_mail()
print "---------------IMAP"
cb.receive_imap()
На выходе получаю:
---------------POP3
Connecting to zzz@gmail.com
+OK send PASS
+OK Welcome.
(0, 0)
---------------IMAP
connecting
('OK', ['zzz@gmail.com authenticated (Success)'])
('OK', ['8'])
['1 2 3 4 5 6 7 8']
Первый вопрос: почему через pop3 показывает, что писем в ящике 0, хотя их там 8?
Второй вопрос: что не так с получением почты через imap? Вчера оно на linux'e работало и распаковывало вложения, сегодня на винде стопорится непонятно почему ((((