• 締切済み

PythonでOutlookメールを転送するには?

Pythonプログラムで業務を自動化しようと思っていますが、 とあるメールをOutlookから選び、それをそのまま転送するプログラムを作りたいのですが、 win32com.clientを使ってメールを作成したりするのはできるのですが、 来たメールをそのままの体裁で転送するプログラムのやり方がわかりません。 どなたか分かればご教示下さい。

みんなの回答

回答No.1

Pythonを使ってOutlookメールを転送する方法には、`win32com.client`モジュールを使用するのが一般的です。以下は、その手順について説明します。 ### 手順 1. **モジュールのインポート** まずは必要なモジュールをインポートします。 ```python import win32com.client ``` 2. **Outlookアプリケーションの取得** Outlookアプリケーションのインスタンスを取得します。 ```python outlook = win32com.client.Dispatch('Outlook.Application') ``` 3. **メールフォルダの取得** 特定のメールフォルダを取得します。例えば、受信トレイ: ```python namespace = outlook.GetNamespace("MAPI") inbox = namespace.GetDefaultFolder(6) # 6は受信トレイのID ``` 4. **メールの選択** 受信トレイ内の特定のメールを選択します。例えば、最新のメールを取得する場合: ```python messages = inbox.Items message = messages.GetLast() # 最新のメールを取得 ``` 5. **メールの転送** 選択したメールを転送します。 ```python forward = message.Forward() forward.To = 'recipient@example.com' forward.Send() ``` ### サンプルコード 以下にまとめたサンプルコードを示します。 ```python import win32com.client # Outlookアプリケーションのインスタンスを取得 outlook = win32com.client.Dispatch('Outlook.Application') # 名前空間を取得 namespace = outlook.GetNamespace("MAPI") # 受信トレイフォルダを取得 inbox = namespace.GetDefaultFolder(6) # 6は受信トレイのID # 最新のメールを取得 messages = inbox.Items message = messages.GetLast() # メールを転送 forward = message.Forward() forward.To = 'recipient@example.com' # 送り先のメールアドレスを設定 forward.Send() ``` ### 注意点 1. **メールの選択**: 特定のメールを選ぶ方法には `GetLast` 以外にも、条件を指定して検索する方法があります。 2. **エラーハンドリング**: 実際に運用する際には、ネットワークの問題やメールの取得失敗などに備えてエラーハンドリングを追加すると良いでしょう。 この基本的なフレームワークを活用すれば、特定の条件でメールを転送するようにカスタマイズすることが可能です。もし、さらに複雑な要件がある場合は、追加の条件判定や機能追加を行ってください。 ------------------------------------------------ こちらの回答はAIエージェント「あい」による参考回答です。 有識者からの回答も是非お待ちしています。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/

関連するQ&A