Terhubung ke Server SMTP

Menghubungkan ke Server SMTP dengan SSL

Untuk membangun koneksi aman dengan server SMTP yang mendukung SSL, Anda perlu mengonfigurasi properti kunci berikut dari SmtpClient kelas:

  • Host: Alamat server SMTP (mis., smtp.gmail.com)

  • Port: Port yang digunakan untuk komunikasi dengan SSL (biasanya 465 untuk SSL implisit atau 587 untuk SSL/TLS eksplisit)

  • Username: Nama akun yang digunakan untuk autentikasi

  • Password: Kata sandi untuk akun SMTP

  • Security Options: Jenis enkripsi yang akan digunakan (SSLEXPLICIT, SSLIMPLICIT, dll.)

Contoh kode berikut menunjukkan cara mengonfigurasi dan terhubung ke server SMTP dengan SSL:

Atur Timeout untuk Respons Salam dari Server

Saat membangun koneksi dengan server SMTP, server biasanya mengirimkan string salam setelah koneksi berhasil. Respons ini mengkonfirmasi bahwa server siap melanjutkan komunikasi.

Dalam beberapa skenario, klien email beroperasi dalam mode koneksi otomatis, mencoba berbagai kombinasi protokol keamanan dan port (seperti SSL implisit atau STARTTLS) untuk membangun koneksi yang berhasil. Jika konfigurasi klien tidak cocok dengan mode keamanan yang diharapkan server, server tidak akan mengirimkan string salam. Ketidaksesuaian ini menyebabkan klien menunggu hingga timeout umum berakhir sebelum mencoba kombinasi berikutnya — yang menghasilkan penanganan koneksi yang lambat.

Untuk meningkatkan perilaku ini, Aspose.Email menyediakan greeting_timeout properti di dalam SmtpClient kelas. Properti ini menetapkan timeout tertentu (dalam milidetik) untuk menunggu string salam server. Jika salam tidak diterima dalam interval yang ditentukan, klien segera mencoba konfigurasi berikutnya — secara signifikan mempercepat proses koneksi otomatis.

Contoh kode berikut menunjukkan cara menerapkan properti ke dalam proyek:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient("localhost", 25, "username", "password")
client.greeting_timeout = 4000

Kirim Email via SMTP menggunakan Proxy SOCKS

Aspose.Email menyediakan dukungan untuk versi 4, 4a, dan 5 dari protokol proxy SOCKS. Contoh kode berikut menunjukkan cara mengirim email menggunakan SMTP dengan proxy SOCKS:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient("smtp.domain.com", "username", "password")

client.security_options = ae.clients.SecurityOptions.SSL_IMPLICIT
# proxy address
proxy_address = "192.168.203.142"
#proxy port
proxy_port = 1080
socks_proxy = ae.clients.SocksProxy(proxy_address, proxy_port, ae.clients.SocksVersion.SOCKS_V5)
client.proxy = socks_proxy
client.send(ae.MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Implement socks proxy protocol for versions 4, 4a, 5 (only Username/Password authentication)"))

Kirim Email via SMTP menggunakan Proxy HTTP

Contoh kode di bawah ini menunjukkan penggunaan proxy HTTP untuk mengirim email melalui server SMTP:

import aspose.email as ae

http_proxy = ae.clients.HttpProxy("18.222.124.59", 8080)
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password")
client.proxy = http_proxy
client.send(ae.MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Body"))

Pilih Metode Autentikasi SMTP yang Didukung dalam Python

Untuk memastikan koneksi yang aman dan kompatibel ke server SMTP, penting untuk menggunakan metode autentikasi yang didukung oleh klien dan server. Aspose.Email untuk Python via .NET menyediakan built‑in properti untuk mengelola ini:

  • supported_authentication — mengambil daftar metode autentikasi yang didukung oleh server SMTP.

  • allowed_authentication — mendapatkan atau mengatur metode autentikasi yang diizinkan untuk digunakan oleh klien.

Dengan menggunakan properti ini, pengembang dapat menyelaraskan kemampuan klien dengan kebutuhan server dan menghindari kegagalan autentikasi selama proses koneksi.

Potongan kode berikut menunjukkan cara menentukan metode autentikasi SMTP yang diizinkan menggunakan allowed_authentication properti:

client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.LOGIN

Atur Timeout Server SMTP

Saat mengirim email melalui jaringan, mengatur timeout yang tepat penting untuk mencegah aplikasi Anda macet jika server tidak merespons. timeout properti dari SmtpClient kelas dalam Aspose.Email untuk Python via .NET memungkinkan Anda mendefinisikan waktu tunggu maksimum (dalam milidetik) untuk respons server.

Properti ini berlaku untuk operasi seperti membangun koneksi atau mengirim perintah SMTP. Jika server tidak merespons dalam durasi yang ditentukan, klien akan melemparkan pengecualian timeout, membantu Anda menangani server yang tidak responsif secara lebih efektif.

Gunakan potongan kode berikut untuk mengatur batas waktu respons server:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
# 60 seconds
client.timeout = 60000

Aktifkan Enkripsi TLS untuk Koneksi SMTP Aman

Aspose.Email mendukung komunikasi aman dengan server SMTP menggunakan protokol kriptografi SSL dan TLS. Protokol ini membantu melindungi data yang dipertukarkan antara aplikasi Anda dan server mail, memastikan kerahasiaan dan integritas selama transmisi.

NOTE: Only versions of SSL/TLS supported by your current Python framework can be applied. Unsupported protocol versions will be silently ignored without raising exceptions. If you need to bypass compatibility checks and explicitly set the encryption protocols, use the `set_supported_encryption_unsafe(value)` method of the [SmtpClient](https://reference.aspose.com/email/python-net/aspose.email.clients.smtp/smtpclient/#smtpclient-class) class.

Contoh kode berikut menunjukkan cara mengatur TLS 1.3 untuk komunikasi SMTP:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS13

Menggunakan Mekanisme CRAM-MD5 untuk Autentikasi

Aspose.Email untuk Python via .NET mendukung mekanisme autentikasi CRAM-MD5, yang meningkatkan keamanan dengan menghindari transmisi kata sandi teks biasa selama autentikasi SMTP. Metode ini sangat berguna ketika terhubung ke server yang memerlukan autentikasi tantangan-respons.

Untuk mengaktifkan autentikasi CRAM-MD5, atur allowed_authentication properti dari SmtpClient kelas ke CRAM_MD5, seperti yang ditunjukkan dalam contoh kode berikut:

client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.CRAM_MD5