2017-06-30 23 views
1

Reading e-mails from Outlook with Python through MAPIから変更されたコードを使用して、Outlookの受信トレイに接続して読んでいます。私がやりたいことは、特定の電子メールの件名を受信トレイで検索することです。私はすべての電子メールをループするだけで、これを行うことができますが、受信トレイにもっと優雅な(おそらくMAPIを使用して)方法があるのだろうか? MailItem methodsを見てきましたが、何も見つかりませんでした。SEARCH Outlookの受信トレイ(Pythonを使用)

おかげ

答えて

1

ApplicationクラスのAdvancedSearchメソッドを使用すると、複数のフォルダ内のアイテムを検索できます。 ItemクラスのRestrictFind/FindNextのメソッドでは、単一のフォルダ内のアイテムのみを検索できます。

OutlookでAdvancedSearch方法を使用することの主な利点は以下のとおりです。

  • 検索は、別のスレッドで実行されます。 AdvancedSearchメソッドは自動的にバックグラウンドで実行されるため、別のスレッドを手動で実行する必要はありません。
  • メール、予定、カレンダー、メモなど、任意の場所で、つまり特定のフォルダの範囲を超えて、アイテムの種類を検索することができます。 RestrictFind/FindNextメソッドは、特定のItemsコレクション(OutlookのFolderクラスのItemsプロパティを参照)に適用できます。
  • DASLクエリを完全にサポートしています(カスタムプロパティは検索にも使用できます)。この詳細については、MSDNのFilteringの記事を参照してください。検索パフォーマンスを向上させるために、インスタント検索のキーワードは、ストアでインスタント検索が有効になっている場合に使用できます(StoreクラスのIsInstantSearchEnabledプロパティを参照)。
  • SearchクラスのStopメソッドを使用して、検索プロセスをいつでも停止することができます。

Advanced search in Outlook programmatically: C#, VB.NETの記事のAdvancedSearchメソッドの詳細を参照してください。 Outlookオブジェクトモデルはすべてのプログラミング言語に共通するので、PythonとC#のどちらを使用するかは関係ありません。

0

は、Outlookオブジェクトモデルを使用する方法について協議を投稿、リンクではなく、MAPI - 拡張MAPIは、C++やDelphiのからではなく、Pythonのからアクセスできる完全に異なるAPIです。

(ItemsコレクションがMAPIFolder.Items財産どこから来る)Items.Find/FindNextまたはItems.Restrictを使用して、電子メールを検索するには - 例えばhttps://msdn.microsoft.com/en-us/library/ms268869.aspxを参照してください。

関連する問題