ПОИСК Входящие в Outlook с помощью Python


1

Я успешно подключаюсь к почтовому ящику Outlook и просматриваю его через код, измененный с: Reading e-mails from Outlook with Python through MAPI. То, что я хотел бы сделать, это искать мой почтовый ящик для определенных тем электронной почты. Я могу сделать это, просто перейдя по всем сообщениям электронной почты, но задаваясь вопросом, есть ли более элегантный (возможно, с использованием MAPI) путь до поиск the inbox? Я просмотрел MailItem methods, но, похоже, ничего не нашел.

Благодаря

1

Вам необходимо использовать метод AdvancedSearch класса Application, который позволяет искать элементы в нескольких папках. Методы класса Items (Restrict и Find/) позволяют искать элементы только в одной папке.

Основные преимущества использования метода AdvancedSearch в Outlook, являются:

  • Поиск выполняется в другом потоке. Вам не нужно запускать другой поток вручную, так как метод AdvancedSearch запускает его автоматически в фоновом режиме.
  • Возможность поиска любых типов предметов: почты, назначения, календаря, заметок и т. Д. В любом месте, то есть за пределами определенной папки. Методы Restrict и Find/FindNext могут применяться к определенной коллекции элементов (см. Свойство Items класса Folder в Outlook).
  • Полная поддержка запросов DASL (пользовательские свойства могут также использоваться для поиска). Подробнее об этом можно узнать в статье Filtering в MSDN. Чтобы повысить эффективность поиска, ключевые слова Instant Search можно использовать, если для хранилища включен Instant Search (см. Свойство IsInstantSearchEnabled класса Store).
  • Вы можете остановить процесс поиска в любой момент, используя метод поиска Stop.

Подробнее о способе AdvancedSearch в статье Advanced search in Outlook programmatically: C#, VB.NET. Обратите внимание: объектная модель Outlook является общей для всех языков программирования, поэтому не имеет значения, используется ли Python или C#.


0

Ссылки вы вывесили переговоры об использовании объектной модели Outlook, а не MAPI - Extended MAPI является совершенно другим API доступен из C++ или Delphi, но не из Python.

Для поиска по электронной почте, используйте Items.Find/FindNext или Items.Restrict (где коллекция предметов происходит от MAPIFolder.Items собственности) - см https://msdn.microsoft.com/en-us/library/ms268869.aspx для примера.