Проблема в том что если вложение имеет русское название обработка останавливается
Traceback (most recent call last):
File "senddoc.py", line 51, in <module>
fp = open(path+filename, 'wb')
IOError: [Errno 2] No such file or directory: 'c:\\sender\\tmp\\=?windows-1251?B?0cjAX8Hu7fPsMzAxNDI5NDMudHh0?='
вот сам код:
#! /usr/bin/python
# -*- coding: windows-1251 -*-
# Autors - Kolesnikov Alexey
#E-mail: kawsoft@yandex.ru
import sys
import getopt
import errno
import mimetypes
import mimetools
import email
import poplib
import os
import datetime
import time
# Учетные данные пользователя:
SERVER = "server"
USERNAME = "user"
USERPASSWORD = "password"
p = poplib.POP3(SERVER)
print p.getwelcome()
# этап идентификации
print p.user(USERNAME)
print p.pass_(USERPASSWORD)
# этап транзакций
response, lst, octets = p.list()
print response
for msgnum, msgsize in [i.split() for i in lst]:
print "Сообщение %(msgnum)s имеет длину %(msgsize)s" % vars()
print "UIDL =", p.uidl(int(msgnum)).split()[2]
if int(msgsize) > 32000:
(resp, lines, octets) = p.top(msgnum, 0)
else:
(resp, lines, octets) = p.retr(msgnum)
msgtxt = "\n".join(lines)+"\n\n"
msg = email.message_from_string(msgtxt)
#print "* От: %(from)s\n* Кому: %(to)s\n* Тема: %(subject)s\n" % msg
# msg содержит заголовки сообщения или все сообщение (если оно небольшое)
for part in msg.walk():
if part.get_content_maintype() == 'multipart':
continue
filename = part.get_filename()
if not filename:
continue
path ="c:\\sender\\tmp\\"
while os.path.exists(path+filename):
filename = "1"+filename
fp = open(path+filename, 'wb')
fp.write(part.get_payload(decode=1))
fp.close()
p.dele(msgnum)
print p.quit()
помогите разобраться плеазззз….