Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 5, 2011 17:02:05

spensor47
От:
Зарегистрирован: 2010-12-05
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Как прочитать текст письма?

Доброго времени суток всем!
Пишу две программы. Первая - отсылает по нужным адресам письма с вложением, вторая прога - обрабатывает письма с вложениями (сохраняет вложения локально куда нужно). Проблема заключается в том, что не могу считать текст самого письма.

# -*- coding: cp1251 -*-

#--------------------------------------------------------------------------------------------------
# необходимые модули
#--------------------------------------------------------------------------------------------------
from smtplib import SMTP
import poplib, email
import os
import time
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.mime.image import MIMEImage
from email.Header import make_header as mkh
from email.Header import decode_header as dkh
from email.Utils import COMMASPACE, formatdate
from email import Encoders
from email import Charset
import socket, sys, getopt

#--------------------------------------------------------------------------------------------------
# информация по почтовым серверам
#--------------------------------------------------------------------------------------------------
inserver = 'pop3.mail.ru'
outserver = 'smtp.mail.ru'
username = username
userpass = userpass
fromuser = fromuser # от кого
touser = touser' #кому

#--------------------------------------------------------------------------------------------------

class cb_import:
def receive_mail(self):
con = poplib.POP3(inserver)
con.getwelcome()
con.user(username)
con.pass_(userpass)
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'])])
if msg_from == 'alaleck@mail.ru':
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() == 'application/octet-stream']
for name,data in msg_parts:
if name != None: # вложенный текстовый файл
print "Вложенный файл: "+name
f = file('D:\\3\\' + name,'wb')
f.write(data)
f.close()
else: # текст письма
print "Текст письма: "+str(data)
con.quit()

cb = cb_import()
cb.receive_mail()
как вывести текст письма? Или лучше как запиать в файл текст письма?



Офлайн

#2 Авг. 7, 2011 08:21:54

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Как прочитать текст письма?

> Проблема заключается в том, что не могу считать текст самого письма.
В чём именно проблема?
Что не так с print “Текст письма: ”+str(data)?

..bw



Офлайн

#3 Авг. 7, 2011 10:55:21

spensor47
От:
Зарегистрирован: 2010-12-05
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Как прочитать текст письма?

если в письме только текст или только вложения, то всё нормально. А если в письме и текст и вложение, то выдаётся

......
r]ЌUЅТДJL`љЙад•Ъ4X—µКгVёуТG`UNvЃЃ]MµэµдAѓ эpA®©`ЉPX Н*HЮќwПD¶Чd¶!ЃQьB®я
......
Как, в случае если в письме и вложения и текст, считать текст сообщения?



Отредактировано (Авг. 22, 2011 14:00:17)

Офлайн

#4 Авг. 22, 2011 14:19:08

spensor47
От:
Зарегистрирован: 2010-12-05
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Как прочитать текст письма?

Получается, что никто не знает - как в письме, где есть вложения и текст - прочесть только текст письма?
Быть того не может….



Офлайн

#5 Авг. 25, 2011 13:42:21

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Как прочитать текст письма?

Content-Type у текста письма, как правило “text/plain”



Офлайн

#6 Сен. 28, 2011 13:45:09

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

Как прочитать текст письма?

spensor47
Получается, что никто не знает - как в письме, где есть вложения и текст - прочесть только текст письма?
Быть того не может….
Проблему удалось решить?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version