ajt*_*ajt 10 python email gmail attachment imaplib
我是python的新手,我试图通过python的imaplib和电子邮件解析来自gmail的电子邮件.它工作得很好,但我遇到了电子邮件附件的问题.
我想从电子邮件中解析出所有明文,同时忽略可能作为辅助内容类型插入的任何HTML,同时还删除并保存所有其他附件.我一直在尝试以下方面:
...imaplib connection and mailbox selection...
typ, msg_data = c.fetch(num, '(RFC822)')
email_body = msg_data[0][1]
mail = email.message_from_string(email_body)
for part in mail.walk():
if part.get_content_type() == 'text/plain':
body = body + '\n' + part.get_payload()
else:
continue
Run Code Online (Sandbox Code Playgroud)
这是我最初尝试只接收电子邮件的明文部分,但当有人发送带有文本附件的电子邮件时,文本文件的内容会显示上面的"body"变量.
有人能告诉我如何在忽略有时存在的辅助HTML的同时提取电子邮件的明文部分,同时还将所有其他类型的文件附件保存为文件?如果这没有多大意义,我会道歉.如果需要,我会更详细地更新问题.
rob*_*jpg 12
如果您只需要将body变量与文件附件保留在变量中,那么它应该像这样简单:
mail = email.message_from_string(email_body)
for part in mail.walk():
c_type = part.get_content_type()
c_disp = part.get('Content-Disposition')
if c_type == 'text/plain' and c_disp == None:
body = body + '\n' + part.get_payload()
else:
continue
Run Code Online (Sandbox Code Playgroud)
然后,如果Content-Disposition指示它是附件,您应该能够使用part.get_filename()和part.get_payload()处理该文件.我不知道这是否会有所不同,但它基本上是我过去用来与我的邮件服务器连接的东西.
| 归档时间: |
|
| 查看次数: |
7874 次 |
| 最近记录: |