12

重複の可能性:
MAPI を介して Python で Outlook から電子メールを読み取る

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

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

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

4

1 に答える 1

14

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

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

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

Ok。今、計画を立てましょう

  1. imap python モジュール [1] を確認し、ssl imap4 を使用して 1 つのチュートリアルを受講した後 [4]
  2. あなたの問題に最適なものを決定してください。メールをダウンロード (pop3) するか、サーバーで検索して参照します (IMAP)。
  3. プロトコル IMAP4 または POP3 を使用して接続できるかどうかを確認してください 前に、交換はこの部分でバグがあります このバグレポートも確認してください [3]
  4. わかりました。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 にすることもできます。しかし、接続して操作を開始すると、何でもできます:)

于 2012-09-09T19:33:17.803 に答える