def file_imap(pmail): """ Получение объекта письма. """ title = get_title(pmail) date_ = get_date(pmail) from_ = get_from(pmail) to_ = get_to(pmail) for part in pmail.walk(): if part.get_content_maintype() == 'multipart': continue if part.get('Content-Disposition') is None: continue filename = decode(part.get_filename()) print "FIND FILE - ", filename if bool(filename): filename = name_for_file(part, DIR_ATTACH) filepath = os.path.join(DIR_ATTACH, filename) if not os.path.isfile(filepath): print filename fp = open(filepath, 'wb') fp.write(part.get_payload(decode=True)) fp.close() m = MailObject(title=title, date_=date_, from_=from_, to_=to_, file_=filepath) return m
def files_imap(pmail): title = get_title(pmail) date_ = get_date(pmail) from_ = get_from(pmail) to_ = get_to(pmail) text = "" files = [] # body = email.message_from_file(pmail) for part in pmail.walk(): if (part.get_content_maintype() == "text" and part.get_content_type() == "text/plain"): text = part.get_payload(decode=True) try: text = text.decode("windows-1251") except UnicodeEncodeError: pass if part.get_content_maintype() == 'multipart': continue if part.get('Content-Disposition') is None: continue filename = decode(part.get_filename()) filename = rus_to_eng(filename) print "FIND FILE - ", filename if bool(filename): filename = name_for_file(part, PATH_TO_GENERATE_INVOICE) filepath = os.path.join(PATH_TO_GENERATE_INVOICE, filename) link = os.path.join(PATH_WEB, filename) if not os.path.isfile(filepath): print filename fp = open(filepath, 'wb') fp.write(part.get_payload(decode=True)) fp.close() files.append({'name': filename, 'path': filepath, 'link': link}) m = MailObjectNew(title=title, date_=date_, from_=from_, to_=to_, files=files, text=text) return m