Hubungkan ke Server IMAP dengan Python

Aspose.Email untuk Python via .NET mencakup ImapClient kelas, yang memungkinkan pengembang terhubung ke server mail menggunakan IMAP (Internet Message Access Protocol). Kelas ini memungkinkan manajemen email yang aman dan efisien dalam aplikasi Python, termasuk mengambil, membaca, memindahkan, menghapus, dan memperbarui pesan email.

Dengan klien IMAP, Anda dapat mengautentikasi pengguna, mengelola folder kotak surat, terhubung melalui SSL, mengatur timeout khusus, dan mengakses akun email melalui server proxy atau otentikasi CRAM-MD5.

Koneksi IMAP Dasar

Untuk terhubung ke server IMAP menggunakan Aspose.Email, ikuti tiga langkah sederhana berikut:

  1. Buat sebuah instansi dari ImapClient kelas.
  2. Tentukan hostname, port, username, dan password.
  3. Tentukan opsi keamanan yang diinginkan.

Contoh kode di bawah menunjukkan cara terhubung ke server IMAP secara programatik:

import aspose.email as ae

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

Aktifkan SSL untuk Koneksi IMAP

Untuk terhubung ke server IMAP yang mendukung SSL, atur security_options properti ke 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

Sambungkan melalui Proxy SOCKS

Aspose.Email mendukung versi SOCKS 4, 4a, dan 5 untuk koneksi berbasis proxy. Gunakan langkah-langkah berikut untuk terhubung melalui proxy 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")

Menyambungkan ke Server melalui HTTP Proxy

Aspose.Email juga memungkinkan koneksi IMAP melalui proxy HTTP:

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")

Akses Kotak Surat Read-Only

Untuk mencegah perubahan pada isi kotak surat, aktifkan mode read-only. read_only properti yang diatur ke True menunjukkan bahwa perubahan tidak diizinkan. Contoh kode berikut menunjukkan cara menggunakan properti ini dalam proyek:

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

Gunakan Otentikasi CRAM-MD5

Untuk keamanan yang lebih tinggi, konfigurasikan klien untuk menggunakan otentikasi CRAM-MD5:

Contoh kode berikut menunjukkan cara mengonfigurasi klien untuk menerima CRAM-MD5 sebagai salah satu metode otentikasi yang didukung saat terhubung ke server IMAP:

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

Atur Timeout Operasi

Cegah klien menunggu tanpa batas dengan mengatur timeout (dalam milidetik):

Potongan kode berikut menunjukkan cara mengatur periode timeout sebesar 60.000 milidetik (60 detik) agar klien menunggu respons server:

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

Atur Greeting Timeout

Kontrol berapa lama klien menunggu selama proses handshake awal dengan server mail.

Potongan kode berikut menunjukkan cara membatasi greeting timeout menggunakan properti greeting_timeout dari ImapClient kelas:

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)

Gunakan TLS dengan Klien IMAP

Aspose.Email mendukung TLS dan SSL untuk komunikasi aman. Gunakan supported_encryption properti untuk mendefinisikan versi protokol yang dapat diterima.

CATATAN: Anda hanya dapat mengatur versi protokol yang didukung oleh .NET framework. Jika beberapa versi protokol tidak didukung oleh versi .NET framework Anda saat ini, mereka akan diabaikan dan dilewati. Hal ini dapat menyebabkan penurunan level keamanan TLS. Dalam hal ini, pengecualian tidak akan dihasilkan. Silakan gunakan metode ‘set_supported_encryption_unsafe(value)’ jika Anda ingin mengatur protokol tanpa pemeriksaan kompatibilitas.

Contoh kode di bawah menunjukkan cara mengatur TLS 1.3 untuk ImapClient instance kelas.

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

Jika protokol enkripsi tertentu tidak didukung dalam versi .NET Framework saat ini, perbedaan perilaku antara metode set_supported_encryption_unsafe(value) dan properti supported_encryption adalah sebagai berikut:

  • Jika properti supported_encryption digunakan, klien email menurunkan protokol enkripsi ke tingkat yang didukung.
  • Jika metode set_supported_encryption_unsafe(value) digunakan, klien email akan melempar pengecualian.

Validasi Kredensial Server IMAP

Untuk membangun koneksi aman ke server IMAP sebelum melakukan tindakan lebih lanjut, kredensial pengguna diperiksa dan divalidasi. Metode validate_credentials dari ImapClient kelas membantu memeriksa apakah username dan password yang diberikan benar. Jika kredensial memang valid, klien dapat berhasil mengotentikasi dengan server IMAP. Contoh kode berikut menunjukkan cara menerapkan metode ini ke dalam proyek Anda:

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

Aktifkan Pencatatan Aktivitas IMAP

Pencatatan aktivitas melibatkan perekaman koneksi server, detail transmisi pesan yang dikirim dan diterima, pesan error selama proses email, dan tindakan lainnya yang dilakukan oleh klien atau server. Untuk melacak aktivitas klien IMAP dan interaksinya dengan server, gunakan contoh kode berikut yang menggunakan properti log_file_name dari ImapClient kelas untuk mencatat informasi ke file log yang ditentukan:

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