Python код не может быть запущен в планировщике задач - PullRequest
1 голос
/ 18 февраля 2020

Я написал python код для загрузки вложений электронной почты, и этот код отлично работает, когда я запускаю его вручную (просто дважды щелкните / откройте с помощью python).

Однако, когда я попытался настроить задание в планировщике заданий, задание продолжается вечно, и выходные данные не видны (вложения в выходной папке отсутствуют). Что я тут не так сделал?

Я перепробовал все комбинации настроек планировщика, о которых мог только подумать (запускать только когда пользователь вошел в систему / запустить независимо от того, вошел ли пользователь в систему; запускать с наивысшими привилегиями)

Я также пытался определить действия различными способами:

-script: C:\Windows\System32\cmd.exe
-argument: "C:\ProgramData\Anaconda3\python.exe "C:\Users\LN\Documents\PythonScripts\outlookdownload.py""

-script: C:\ProgramData\Anaconda3\python.exe
-argument: "C:\Users\LN\Documents\PythonScripts\outlookdownload.py"

-script: C:\ProgramData\Anaconda3\python.exe
-argument: "C:\Users\LN\Documents\PythonScripts\outlookdownload.py"
-start in: C:\Users\LN\Documents\PythonScripts\

-script: C:\ProgramData\Anaconda3\python.exe
-argument: "C:\Users\LN\Documents\PythonScripts\outlookdownload.py"
-start in: C:\Users\LN\Documents\PythonScripts\"

Ниже приведен код python:


    outpfolder= [output folder link]

    import datetime
    import win32com.client
    outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
    inbox = outlook.Folders('Elo Inventory').Folders('Inbox')
    messages = inbox.Items
    message = messages.GetLast()
    sentdate = message.senton.date()
    datelimit = (datetime.date.today () - datetime.timedelta (days=7))

    #define function to save attachment:
    def OL_Attsave(outpath, name, filenamefilter):
        attachments = message.Attachments
        att_count = attachments.Count
        for i in range(1,att_count+1):
            attachment = attachments.Item(i)
            if filenamefilter in attachment.FileName and "image" not in attachment.FileName:
                    attachment.SaveASFile(outpath + str(sentdate)+"_"+name+"_" +str(attachment.Filename)) 
        return "saved " + str(att_count) + " files for " + name +" to " + outpath

    while sentdate>datelimit:
        try:

            #Company1:
            if message.SenderEmailAddress == "abc@company1.com" and message.subject == "INV ELO":
                outpath = outpfolder + "company1\\"
                name = 'company1'
                OL_Attsave(outpath, name ,'') 

            #Company2:
            elif "@company2.com" in message.SenderEmailAddress:
                outpath = outpfolder + "company2\\"
                name = 'company2'
                OL_Attsave(outpath, name, 'INV')                

            message = messages.GetPrevious()
            sentdate = message.senton.date()
        except:
            message = messages.GetPrevious()
            sentdate = message.senton.date()

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