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:
- Buat sebuah instansi dari ImapClient kelas.
- Tentukan hostname, port, username, dan password.
- 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