Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 类型错误:'_文件夹';对象不可调用_Python_Vba_Email_Outlook - Fatal编程技术网

Python 类型错误:'_文件夹';对象不可调用

Python 类型错误:'_文件夹';对象不可调用,python,vba,email,outlook,Python,Vba,Email,Outlook,我正在使用win32.client并尝试处理电子邮件正文文本 这是今天的工作,但我认为当测试时,我可能已经打破了Outlook!当我试图调用一个_Folders对象的索引时,我得到一个类型错误,它是不可调用的 我使用索引进入嵌套文件夹。这是工作到今晚,我没有改变任何代码 import win32com.client import urllib.parse import webbrowser from pyshorteners import Shortener application = win

我正在使用win32.client并尝试处理电子邮件正文文本

这是今天的工作,但我认为当测试时,我可能已经打破了Outlook!当我试图调用一个_Folders对象的索引时,我得到一个类型错误,它是不可调用的

我使用索引进入嵌套文件夹。这是工作到今晚,我没有改变任何代码

import win32com.client
import urllib.parse
import webbrowser
from pyshorteners import Shortener

application = win32com.client.Dispatch('Outlook.Application')
namespace = application.GetNamespace('MAPI')

# 6 is the number for the main inbox
inbox_folder = namespace.GetDefaultFolder(6) 

# had to create multiple objects of subfolders to get to specific directory
inbox = inbox_folder.Folders
mobile_folder = inbox(3)
mobile_folder_directory = mobile_folder.Folders
mobile_script_folder = mobile_folder_directory(2)

# using Items method to parse specific email files within the folder
messages = inbox_folder.Items
我得到这个错误:

文件“mail1.py”,第10行,在mobile_folder=inbox_folders(3)TypeError:“_folders”对象不可调用

我正忙于其他代码,试图监视我的收件箱中是否有新邮件

我在另一个文件中运行了一些代码,并做了一些修改以匹配我的收件箱

import ctypes # for the VM_QUIT to stop PumpMessage()
import pythoncom
import win32com.client
import sys


# outlook config
SHARED_MAILBOX = "Your Mailbox Name"

# get the outlook instance and inbox folder
session = win32com.client.Dispatch("Outlook.Application").Session
user = session.CreateRecipient(SHARED_MAILBOX)
shared_inbox = session.GetSharedDefaultFolder(user, 6).Items  # 6 is Inbox


class HandlerClass(object):

    def OnItemAdd(self, item):
        print("New item added in shared mailbox")
        if item.Class == 43:
            print("The item is an email!")


outlook = win32com.client.DispatchWithEvents(shared_inbox, HandlerClass)


def main():
    print("Starting up Outlook watcher")
    pythoncom.PumpMessages()


if __name__ == "__main__":
    try:
        status = main()
        sys.exit(status)
    except KeyboardInterrupt:
        print("Terminating program..")
        ctypes.windll.user32.PostQuitMessage(0)
        sys.exit()
我怀疑它改变了Outlook版本的某些东西

我还得到消息说MAPIFolder对象不可调用。我的研究表明这是一个旧的、不受支持的Outlook协议

以下是我尝试为文件夹编制索引时的更多数据:

>>> inbox_folder
<win32com.gen_py.Microsoft Outlook 16.0 Object Library.MAPIFolder instance at 0x12191504>
>>> inbox = inbox_folder.Folders
>>> inbox
<win32com.gen_py.Microsoft Outlook 16.0 Object Library._Folders instance at 0x46668848>
>>> inbox(3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '_Folders' object is not callable
>>收件箱\u文件夹
>>>inbox=inbox\u Folders.Folders
>>>收件箱
>>>收件箱(3)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“\u文件夹”对象不可调用

我仍然不知道是什么破坏了它,但事实证明,按索引搜索文件夹已经不起作用了

解决方案现在正在按文件夹名称搜索:

inbox_folder = namespace.GetDefaultFolder(6) 

# had to create multiple objects of subfolders to get to specific directory
inbox = inbox_folder.Folders
mobile_folder = inbox["Mobile"]
mobile_script_folder = mobile_folder.Folders["Mobile_4_4_Alpha"]

不知道为什么它会修好,但它确实修好了。耶

我仍然不知道是什么破坏了它,但事实证明,按索引搜索文件夹已经不起作用了

解决方案现在正在按文件夹名称搜索:

inbox_folder = namespace.GetDefaultFolder(6) 

# had to create multiple objects of subfolders to get to specific directory
inbox = inbox_folder.Folders
mobile_folder = inbox["Mobile"]
mobile_script_folder = mobile_folder.Folders["Mobile_4_4_Alpha"]

不知道为什么它会修好,但它确实修好了。耶

也许你可以分享错误的细节?嘿@TsTeaTime,真的很抱歉第一次出现在这里。我得到了一个回溯(最近一次调用上次):文件“mail1.py”,第10行,在mobile\u folder=inbox\u folders(3)TypeError:“\u folders”对象不是callableHi,不用担心。只是想确保你从某人那里得到一个有用的答案。尝试编辑您的问题并将此信息添加到原始信息中。@t谢谢!我添加了更多的infoPerhaps,您可以分享错误的详细信息吗?嘿@TsTeaTime,真的很抱歉第一次出现在这里。我得到了一个回溯(最近一次调用上次):文件“mail1.py”,第10行,在mobile\u folder=inbox\u folders(3)TypeError:“\u folders”对象不是callableHi,不用担心。只是想确保你从某人那里得到一个有用的答案。尝试编辑您的问题并将此信息添加到原始信息中。@t谢谢!我添加了更多信息