web-dev-qa-db-ja.com

Python Outlookの電子メールメールボックスを読んでメッセージを解析する

重複の可能性:
OutlookからPython MAPI経由 で電子メールを読む

私はPythonにまったく慣れておらず、Microsoft Outlookメールボックスに接続し、すべての電子メールを調べ、件名に特定のWordがある場合は、詳細を処理するプログラムを作成するタスクを与えられています。電子メールの時間と件名の一部が変数に保存され、電子メールメッセージの本文が解析され、関連情報が変数に保存されます。次に、この情報は外部サーバー/データベースに保存されます。メールボックスに届く新しい電子メールを監視し、件名を確認して適切なアクションを実行するドリルを繰り返します。

以前、Interopライブラリを使用してC#でまったく同じ種類のプログラムを作成しましたが、Pythonでこれを行う必要があります。後でモジュールのドキュメントを読むことで、本質的な詳細を理解できますが、高レベルの観点からは、どのモジュールを使用する必要がありますか。私は調査を行っており、言及されているいくつかのモジュールには、電子メール、procmail、およびimaplibが含まれますが、ここでのPythonベテランは、私が追い越している種類のプロジェクトに対して何を推奨しますか?

あなたが提供できるかもしれないどんな助けにも前もって感謝します!

11
user1650464

私が働いていたある会社では、「アダルト」素材を含むWebサイトを提案するためのメールボックスと、ブロックする必要のあるスパムメール用のメールボックスが1つあります。私が働き始めたら、私はこの「優雅な」仕事を「担当」していました。それをチェックすると、ブロックする2000の未読メールとブロックする4000のスパムメールのようなものがありました。もちろん、それは自動化される機能であり、私は自分にとって良い解決策を探しました。私がしたこと:

[1]使用python IMAPを使用してExchangeサーバーに接続しました[2] beatifulsoup(python)を使用して電子メール内のhref値を解析しました[3]その後、電子メールを送信します 'ユーザーに感謝します'そのコラボレーション(非常に重要)

上司から3日後、私はすべての電子メールに返信するために多大な努力をしてくれたこと、そして私たちが褒められたことに感謝しました。今、私たちは顧客に返事をしているからです。 (私はスクリプトではありません)

OK。今計画をしましょう

  1. Imap python module [1]を確認し、ssl imap4 [4]を使用して1つのチュートリアルを受講した後
  2. あなたの問題に最適なものを決定しますか?電子メール(pop3)をダウンロードするか、サーバー(IMAP)で検索して参照します。
  3. IMAP4またはPOP3プロトコルを使用して接続できるかどうかを確認する以前は、この部分で交換にバグがあります。このバグレポートも確認してください[3]
  4. OK、IMAP4またはPOP3を使用して接続できることを確認しました。次に、1つのメッセージをフェッチし、美しいスープまたはlxmlで解析します。 (私の場合、hrefと 'mailto:'を探しました)
  5. 「from:」フィールドを使用して素敵なメッセージを送信します。
  6. 利益

[1] google it imap python

[2] google it BeautifulSoup python

[3] http://support.Microsoft.com/kb/296387

[4] http://yuji.wordpress.com/2011/06/22/python-imaplib-imap-example-with-gmail/

申し訳ありませんが、スコアが低いため、GoogleのURLを指定する必要がありました。

この答えがあなたの解決策へのいくつかの良い指針を与えることを願っています。もちろん、lxmlを使用してデータをDBに送信することで、より多くのhax0rにすることができます。しかし、接続して操作を開始した後は、何でもできます:)

13