Загрузите вложение электронной почты текущей даты из Outlook, используя IMAP в Python - PullRequest
0 голосов
/ 10 июля 2019

У меня есть скрипт для загрузки электронной почты определенной темы из Outlook, используя IMAP и Python.Я могу загрузить вложения определенной темы из этого скрипта, но я хочу загрузить только вложение текущей даты

Я создал скрипт для загрузки вложения электронной почты из outlook, но хочу загрузить только вложение текущей даты этогоконкретный предмет

import imaplib
import email
import os
import glob
from glob import glob
import shutil
import datetime

def file_remove(files_r):
    try:
        rm_file = glob(files_r)
        for f_r in rm_file:
            os.remove(f_r)
    except Exception as e:
        print(e)


def attachments_download():

    svdir = os.getcwd()+'\\'+"Attachments\\"
    val_date = datetime.date.today()
    mail = imaplib.IMAP4_SSL('outlook.office365.com')
    mail.login("abc@outlook.com","p@111")
    mail.select("INBOX")

    type,msgs = mail.search(None,'(SUBJECT "Employees Dump")','(SENTSINCE {0})'.format(val_date))
    msgs = msgs[0].split()

    for emailid in msgs:
        resp,data=mail.fetch(emailid,"(RFC822)")
        email_body = data[0][1]
        m = email.message_from_bytes(email_body)

        if m.get_content_maintype() != 'multipart':
            continue

        for part in m.walk():
            if part.get_content_maintype() == 'multipart':
                continue
            if part.get('Content-Disposition') is None:
                continue

            filename = part.get_filename()

            if filename is not None:
                sv_path = os.path.join(svdir,filename)
                if not os.path.isfile(sv_path):
                    fp = open(sv_path,'wb')
                    fp.write(part.get_payload(decode=True))
                    fp.close()



def file_rename(files):
    file = glob(files)
    for f in file:
        os.rename(f,'C:\\Users\\128938\\PycharmProjects\\attachment_download_script\\Attachments\\hcm_dump.xls')

        if os.path.exists('D:\\sas_projects\\data_files\\input_files\\hcm_file_upload\\hcm_dump.xls'):

            os.remove('D:\\sas_projects\\data_files\\input_files\\hcm_file_upload\\hcm_dump.xls')

            shutil.copy('C:\\Users\\128938\\PycharmProjects\\attachment_download_script\\Attachments\\hcm_dump.xls','D:\\sas_projects\\data_files\\input_files\\hcm_file_upload\\')


if __name__ == '__main__':
    abc = ("C:\\Users\\128938\\PycharmProjects\\attachment_download_script\\Attachments\\*")
    file_remove(abc)

    attachments_download()

    xyz = ("C:\\Users\\128938\\PycharmProjects\\attachment_download_script\\Attachments\\*")
    file_rename(xyz)

Как я могу скачать вложение в электронное письмо по теме, упомянутой выше, только на текущую дату

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...