この記事では、プログラムでメールサーバーから電子メールメッセージを取得する方法を学習します。特に、IMAPまたはPOP3プロトコルを使用してメールサーバーに接続し、Pythonでメールを読む方法を理解するようになります。

メールを読むためのPythonAPI

メールサーバーからのメールを読み取るために、Aspose.Email for Python via .NETを使用します。これは、Pythonアプリケーション内から電子メールクライアントを実装できる機能豊富な電子メールAPIです。 ダウンロード.whlファイルを使用するか、次のpipコマンドを使用してAPIをインストールできます。

> pip install Aspose.Email-for-Python-via-NET

Pythonでメールサーバーからのメールを読む

POP3とIMAPは、通常、メールサーバーから電子メールを取得するために使用されます。次のセクションでは、両方の電子メールプロトコルを個別に使用して電子メールを読み取る方法を示します。

POP3を使用して電子メールメッセージを読む

以下は、POP3を使用して電子メールメッセージを読み取る手順です。

  • Pop3Clientクラスのオブジェクトを作成し、ホスト、ポート、ユーザー名、およびパスワードで初期化します。
  • Pop3Client.security_optionsプロパティを使用してセキュリティオプションを設定します。
  • **Pop3Client.get_message_count()メソッドを使用してメッセージ数を取得します。
  • Pop3Client.fetch_message()メソッドを使用して、ループ内の各メッセージにアクセスします。

次のコードサンプルは、POP3を使用してPythonでメールを読み取る方法を示しています。

# create POP3 client
client = Pop3Client("pop.gmail.com", 995, "username", "password")

# set security options
client.security_options = SecurityOptions.AUTO

# get message count
messageCount = client.get_message_count()
print("Total messages: " + str(messageCount))

# create an instance of the MailMessage class to read message    
for i in range(0,messageCount):
    message = client.fetch_message(i+1)
    print("From:" + str(message.from_address))
    print("Subject:" + message.subject)
    print(message.html_body)

IMAPを使用して電子メールメッセージを読む

以下は、IMAPを使用して電子メールメッセージを読み取る手順です。

  • ImapClientクラスのオブジェクトを作成し、ホスト、ポート、ユーザー名、およびパスワードで初期化します。
  • **ImapClient.select_folder(folderName)**メソッドを使用してフォルダーを選択します。
  • **ImapClient.list_messages()**メソッドを使用してメッセージのリストをループします。

次のコードサンプルは、PythonでIMAPを使用して電子メールメッセージを読み取る方法を示しています。

# connect to mail server using IMAP
client = ImapClient("imap.gmail.com", 993, "username", "password")

# select folder
client.select_folder("Inbox")

# loop through email messages and save them as .eml files
for msg in client.list_messages():
    print("Subject: " + msg.subject)
    print("HtmlBody: " + msg.html_body)
    print("TextBody: " + msg.body)
    client.save_message(msg.unique_id, msg.unique_id + "_out.eml")

無料のAPIライセンスを取得する

無料の一時ライセンスをリクエストすると、.NET経由でAspose.EmailforPythonを使用できます。

結論

この記事では、Pythonを使用してメールサーバーからメールを読み取る方法を学びました。特に、POP3およびIMAPクライアントを使用して電子メールメッセージをフェッチおよび読み取る方法を見てきました。 ドキュメントを使用して、PythonメールAPIの詳細を調べることができます。さらに、あなたは私たちのフォーラムにあなたの質問を投稿することができます。

関連項目