POP3サーバーからメールを取得する

メールボックス情報とメッセージ数の取得

Aspose.Email API を使用すると、サーバー上のメッセージに対してさまざまな操作を実行でき、メッセージ数やメールボックスのサイズなどの情報を取得することができます。 get_mailbox_size() および get_mailbox_info() メソッドです。

  • この get_mailbox_size() メソッドはメールボックスのサイズ(バイト単位)を返します。
  • この get_mailbox_info() メソッドは型のオブジェクトを返します Pop3MailBoxInfo.

メッセージ数を取得するには、以下を使用することもできます message_count `occupied_size`` プロパティを使用してプロパティとサイズを取得します。以下のサンプルコードは、メールボックスの情報を取得する方法を示しています。次のことが示されています:

  1. 作成する Pop3Client.
  2. POP3サーバーに接続する。
  3. メールボックスのサイズを取得する。
  4. メールボックス情報を取得する。
  5. メールボックス内のメッセージ数を取得する。
  6. 使用中サイズを取得する。

メッセージ数のみ取得

上記のコードサンプルは、メールボックスのサイズや使用領域に加えて、メールボックス内のメッセージ総数といった統計情報を取得する方法を示しています。次のコードサンプルは、メールボックス内のメールメッセージ数を直接取得する方法を示します。このメソッドは、メッセージ数だけが必要な場合に、よりシンプルかつ高速です。

メールヘッダーのみ取得

Aspose.Email は、完全なメッセージ内容をダウンロードせずにメールのメタデータにアクセスできるようにします。多くのシナリオで、送信者、件名、受信日などのヘッダー情報だけを調べて、メッセージを取得する価値があるかどうかを判断するのに役立ちます。このアプローチはサーバー負荷を軽減し、特に POP3 接続で大容量メールボックスを扱う場合にパフォーマンスを向上させます。

以下のコードサンプルは、POP3サーバーに接続し、シーケンス番号を使用して特定のメッセージのヘッダーだけを取得する方法を示しています。この軽量な操作により、どのメールをダウンロードまたは無視するかを判断するための情報が得られます。

サーバーからメールメッセージをダウンロード

Aspose.Email Pop3Client このクラスは POP3 サーバーからメールメッセージを取得し、MailMessage インスタンスに変換する機能を提供します。これは、対象クラスのプロパティとメソッドを通じて実現されます。 MailMessage メールコンテンツの操作を容易にするクラスです。このクラスを使用することで、 fetch_message メソッド( Pop3Client クラスでは、次を取得できます。 MailMessage POP3 サーバーからインスタンスを直接取得します。以下のコードスニペットは、サーバーから完全なメールメッセージを取得する方法を示しています:

ユニークIDでメッセージサマリーを取得

API の POP3 クライアントは、メッセージのユニーク ID を使用してサーバーからメッセージの要約情報を取得できます。この機能により、メッセージ全体をダウンロードせずに重要な詳細にすばやくアクセスできます。以下のコードスニペットは、Aspose.Email Python API を使用してメッセージ要約情報にアクセスする方法を示しています:

複数接続を使用してメッセージをリスト

負荷の高い操作に対して、Aspose.Email は以下を提供します。 use_multi_connection プロパティ( Pop3Client メールを取得する際に複数接続を使用できるクラスです。このモードを有効にしても必ずしもパフォーマンスが向上するわけではないことに注意してください。以下のコードスニペットは、POP3 サーバーへの接続を確立し、クライアントが最大 5 つの同時接続を許可するように構成し、マルチ接続モードを有効にしてサーバー上のメッセージ情報を取得する方法を示します:

import aspose.email as ae

client = ae.clients.pop3.Pop3Client("host", 995, "username", "password", ae.clients.SecurityOptions.AUTO)

client.connections_quantity = 5
client.use_multi_connection = ae.clients.MultiConnectionMode.ENABLE
message_info_coll = client.list_messages()