【发布时间】:2011-03-30 07:55:37
【问题描述】:
如何在电子邮件正文中区分发件人生成的回车和自动换行的回车?我正在使用 Python imaplib 访问 Gmail 并下载邮件正文,如下所示:
user='whoever@gmail.com'
pwd='password'
m = imaplib.IMAP4_SSL("imap.gmail.com")
m.login(user,pwd)
m.select("INBOX")
resp, items = m.search(None, "ALL")
items = items[0].split()
messages = []
for emailid in items:
resp, data = m.fetch(emailid, "(RFC822)")
email_body = data[0][1]
mail = email.message_from_string(email_body)
for part in mail.walk():
if part.get_content_type() == 'text/plain':
body = part.get_payload(decode=1)
messages.append(body)
我关注的是从其他 Gmail 用户收到邮件的情况。消息正文文本中有许多回车符 ('\r\n')。这些分为两类:1) 由电子邮件发件人插入的那些,“真”返回,2) 那些由 Gmail 自动换行创建的约 78 个字符,“假”返回。我只想删除第二类回车。我确信我可以想出一个程序化的近似值,在每 78 个字符附近的窗口中搜索 '\r\n' ,但这不是防弹的,也不是我想要的。有趣的是,我注意到当邮件在网络浏览器的 Gmail 中显示时,第二类回车没有回车。 Gmail 不知何故知道要删除/不专门显示这些。如何?是否缺少一些特殊的编码?
【问题讨论】: