Python で IMAP サーバーに接続する
.NET 経由の Python 用 Aspose.Email には、 ImapClient クラスは、開発者が IMAP(Internet Message Access Protocol)を使用してメールサーバーに接続できるようにします。このクラスは、Python アプリケーション内で安全かつ効率的なメール管理を可能にし、メールメッセージの取得、読取、移動、削除、更新を含みます。
IMAP クライアントを使用すると、ユーザーの認証、メールボックスフォルダーの管理、SSL 経由の接続、カスタムタイムアウトの設定、プロキシサーバーや CRAM-MD5 認証を介したメールアカウントへのアクセスが可能です。
基本的な IMAP 接続
Aspose.Email を使用して IMAP サーバーに接続するには、次の 3 つの簡単な手順に従ってください。
- インスタンスを作成します ImapClient クラス。
- ホスト名、ポート、ユーザー名、パスワードを指定します。
- 希望のセキュリティオプションを指定してください。
以下のコードサンプルは、プログラムで 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