亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python從電子郵件中提取特定附件

Python從電子郵件中提取特定附件

人到中年有點甜 2022-09-06 16:22:53
我正在努力實現以下目標:我有一個電子郵件對象(eml),它可以包含多個附件,如zip /images/ txt等。我只想下載一個特定的附件,而不是從這個對象下載所有附件。我嘗試了以下代碼:import emailimport mimetypesimport uuidimport osm = email.message_from_file(open('hello.eml'))for part in m.walk():filename = part.get_filename()print('fileName: ', filename)if part.get_content_type() == 'multipart/mixed' and not filename:    number_of_attachments = (len(part.get_payload()) - 1)    print('number_of_attachments: ', number_of_attachments)    for attachment in range(number_of_attachments):        tmp_name = str(uuid.uuid4())        fp = open('.' + tmp_name, 'wb')        attachment += 1        fp.write(part.get_payload()[attachment].get_payload(decode=True))        fp.close()這將提取所有附件。有沒有辦法只過濾特定的附件并處理它。任何幫助都非常感謝!
查看完整描述

1 回答

?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

所以,我找到了以下方法。


 import email

 import mimetypes

 import uuid

 import os


 m = email.message_from_file(open('hello.eml'))

 for part in m.walk():

 filename = part.get_filename()

 print('fileName: ', filename)

 if part.get_content_type() == 'multipart/mixed' and not filename:

   number_of_attachments = (len(part.get_payload()) - 1)

   print('number_of_attachments: ', number_of_attachments)

   for attachment in range(number_of_attachments):

       filteredFile = m.get_payload()[attachment]

       if filteredFile.get_content_type() == 'text/html':

            print("Search successful.")

       else:

            print("Search unsuccessful.")


查看完整回答
反對 回復 2022-09-06
  • 1 回答
  • 0 關注
  • 311 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號