Python で IMAP サーバーに接続する

.NET 経由の Python 用 Aspose.Email には、 ImapClient クラスは、開発者が IMAP(Internet Message Access Protocol)を使用してメールサーバーに接続できるようにします。このクラスは、Python アプリケーション内で安全かつ効率的なメール管理を可能にし、メールメッセージの取得、読取、移動、削除、更新を含みます。

IMAP クライアントを使用すると、ユーザーの認証、メールボックスフォルダーの管理、SSL 経由の接続、カスタムタイムアウトの設定、プロキシサーバーや CRAM-MD5 認証を介したメールアカウントへのアクセスが可能です。

基本的な IMAP 接続

Aspose.Email を使用して IMAP サーバーに接続するには、次の 3 つの簡単な手順に従ってください。

  1. インスタンスを作成します ImapClient クラス。
  2. ホスト名、ポート、ユーザー名、パスワードを指定します。
  3. 希望のセキュリティオプションを指定してください。

以下のコードサンプルは、プログラムで IMAP サーバーに接続する方法を示しています。

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")

IMAP 接続で SSL を有効化

SSL 対応の IMAP サーバーに接続するには、設定してください。 security_options SSLImplicit プロパティ:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")

# Set the security mode to implicit
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT

SOCKS プロキシ経由で接続

Aspose.Email は、プロキシベースの接続に SOCKS バージョン 4、4a、5 をサポートしています。以下の手順で SOCKS プロキシ経由で接続してください。

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", "username", "password")
client.security_options = ae.clients.SecurityOptions.AUTO

proxy = ae.clients.SocksProxy("192.168.203.142", 1080, ae.clients.SocksVersion.SOCKS_V5)
client.proxy = proxy

client.select_folder("Inbox")

HTTP プロキシ経由でサーバーに接続

Aspose.Email は、HTTP プロキシ経由での IMAP 接続も可能です。

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", "username", "password")
client.proxy = ae.clients.HttpProxy("18.222.124.59", 8080)
client.select_folder("Inbox")

読み取り専用メールボックスアクセス

メールボックスの内容変更を防ぐために、読み取り専用モードを有効にします。 read_only True に設定されたプロパティは変更が許可されていないことを示します。以下のコードサンプルは、プロジェクトでこのプロパティを使用する方法を示しています。

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT
client.read_only = True

CRAM-MD5 認証を使用

セキュリティを強化するため、クライアントが CRAM-MD5 認証を使用するよう設定します。

以下のコードサンプルは、IMAP サーバーへの接続時にサポートされる認証方式の一つとして CRAM-MD5 を受け入れるようクライアントを設定する方法を示しています。

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
client.allowed_authentication = ae.clients.imap.ImapKnownAuthenticationType.CRAM_MD5

操作タイムアウトを設定

タイムアウト(ミリ秒単位)を設定して、クライアントが無期限に待機しないようにします。

以下のコードスニペットは、クライアントがサーバー応答を待つタイムアウト期間を 60,000 ミリ秒(60 秒)に設定する方法を示しています。

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)
#  60 seconds
client.timeout = 60000

挨拶タイムアウトを設定

クライアントがメールサーバーとの初期ハンドシェイク中に待機する時間を制御します。

以下のコードスニペットは、greeting_timeout プロパティを使用して挨拶タイムアウトを制限する方法を示しています。 ImapClient クラス:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")

client.greeting_timeout = 4000
client.select_folder(ae.clients.imap.ImapFolderInfo.IN_BOX)

IMAP クライアントで TLS を使用

Aspose.Email は安全な通信のために TLS と SSL をサポートしています。使用してください。 supported_encryption 許容できるプロトコル バージョンを定義するプロパティです。

NOTE: .NET Framework がサポートしているプロトコル バージョンのみ設定できます。現在の .NET Framework バージョンでサポートされていないプロトコル バージョンは無視されスキップされます。これにより TLS のセキュリティレベルがダウングレードされる可能性があります。この場合、例外は発生しません。互換性チェックなしでプロトコルを設定したい場合は、‘set_supported_encryption_unsafe(value)’ メソッドを使用してください。

以下のコード例は、TLS 1.3 を設定する方法を示しています。 ImapClient クラスのインスタンスです。

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)

client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS13

指定された暗号化プロトコルが現在の .NET Framework バージョンでサポートされていない場合、set_supported_encryption_unsafe(value) メソッドと supported_encryption プロパティの挙動の違いは以下の通りです。

  • supported_encryption プロパティを使用すると、メールクライアントは暗号化プロトコルをサポートされているレベルにダウングレードします。
  • set_supported_encryption_unsafe(value) メソッドを使用すると、メールクライアントは例外をスローします。

IMAP サーバー資格情報を検証

さらに操作を行う前に IMAP サーバーへの安全な接続を確立するため、ユーザー資格情報がチェックされ検証されます。クラスの validate_credentials メソッドは ImapClient クラスは提供されたユーザー名とパスワードが正しいかを確認するのに役立ちます。資格情報が有効であれば、クライアントは IMAP サーバーに正常に認証できます。以下のコードサンプルは、このメソッドをプロジェクトに実装する方法を示しています。

import aspose.email as ae

with ae.clients.imap.ImapClient("your imap server", 993, "your username", "your password", ae.clients.SecurityOptions.AUTO) as client:
    client.timeout = 4000

    if client.validate_credentials():
        # Further actions

IMAP アクティビティ ロギングを有効化

アクティビティ ロギングは、サーバー接続、送受信メッセージの転送詳細、メール処理中のエラーメッセージ、クライアントまたはサーバーが実行したその他の操作を記録することを含みます。IMAP クライアントのアクティビティとサーバーとのやり取りを追跡するには、以下のコード例で log_file_name プロパティを使用してください。 ImapClient 指定されたログファイルに情報を記録するクラスです:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)

# Set the path to the log file using the LogFileName property.
client.log_file_name = "C:\\Aspose.Email.IMAP.log"
# Set the UseDateInLogFileName property if it is necessary.
client.use_date_in_log_file_name = False