Download attachments received for the last 5 days in Python(下载最近5天收到的附件(使用Python)
                            本文介绍了下载最近5天收到的附件(使用Python的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
                        
                        问题描述
我还是个新手。这是我正在使用的工作代码,但我如何添加一个筛选器,以便只扫描和下载最近5天的电子邮件附件。
提前谢谢!
      import os
      from imbox import Imbox # pip install imbox
      import traceback
      import datetime
      
      host = "imap.gmail.com"
      username = "myemail@gmail.com"
      password = '*******'
      download_folder = "my/existing/dir"
      
      if not os.path.isdir(download_folder):
          os.makedirs(download_folder, exist_ok=True)
      
      mail = Imbox(host, username=username, password=password, ssl=True, ssl_context=None, starttls=False)
      # messages = mail.messages() # defaults to inbox
      
      for (uid, message) in messages:
          mail.mark_seen(uid) # optional, mark message as read
      
          for idx, attachment in enumerate(message.attachments):
              try:
                  att_fn = attachment.get('filename')
                  download_path = f"{download_folder}/{att_fn}"
                  print(download_path)
                  with open(download_path, "wb") as fp:
                      fp.write(attachment.get('content').read())
              except:
                  pass
                  print(traceback.print_exc())
      
      mail.logout()
推荐答案
无法在IMAP中按附件直接搜索。(*BODYSTRUCTURE功能可以获取结构。)
您可以:
- 获取最近5天的电子邮件
 - 分析其附件
 
编码:
import datetime
from imap_tools import MailBox, A
with MailBox('imap.mail.com').login('test@mail.com', 'pwd') as mailbox:
    for msg in mailbox.fetch(A(date_gte=datetime.date.today() - datetime.timedelta(days=5))):
        print(msg.uid, msg.subject)
        for att in msg.attachments:
            print(att.filename, len(att.payload))
https://github.com/ikvk/imap_tools 我是作者。
这篇关于下载最近5天收到的附件(使用Python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
				 沃梦达教程
				
			本文标题为:下载最近5天收到的附件(使用Python
				
        
 
            
        
             猜你喜欢
        
	     - 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
 - 使用 Cython 将 Python 链接到共享库 2022-01-01
 - CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
 - 我如何透明地重定向一个Python导入? 2022-01-01
 - 如何使用PYSPARK从Spark获得批次行 2022-01-01
 - 计算测试数量的Python单元测试 2022-01-01
 - 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
 - 我如何卸载 PyTorch? 2022-01-01
 - ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
 - YouTube API v3 返回截断的观看记录 2022-01-01
 
