Kirim Email & Teruskan Pesan via SMTP

The SmtpClient kelas di Aspose.Email untuk Python via .NET menyediakan antarmuka yang kuat dan fleksibel untuk mengirim email menggunakan Simple Mail Transfer Protocol (SMTP). Ini adalah titik masuk utama bagi pengembang yang ingin mengirim pesan email dalam aplikasi mereka.

Fitur utama dari SmtpClient include kelas:

  • Pengiriman Email SMTP: Memungkinkan pengiriman email secara langsung melalui server SMTP.

  • Opsi Pengiriman Alternatif: Mendukung metode pengiriman tambahan seperti menyimpan pesan ke sistem file atau menulis ke antrian pesan.

  • Operasi Sinkron dan Asinkron:

    • Mode Sinkron: Gunakan metode Send untuk memblokir thread saat ini sampai email sepenuhnya terkirim.

    • Modus Asinkron: Gunakan metode SendAsync untuk mengirim pesan di latar belakang, memungkinkan aplikasi tetap responsif.

  • Dukungan TNEF: Memungkinkan pengiriman pesan dalam Transport Neutral Encapsulation Format (TNEF) untuk kompatibilitas dengan fitur Microsoft Outlook.

Artikel ini mencakup semua fungsionalitas utama yang tersedia melalui SmtpClient kelas, yang menunjukkan cara mengirim pesan email standar dan lanjutan dengan kontrol penuh atas konfigurasi dan pengiriman.

Kirim Email Secara Sinkron

The SmtpClient.send metode memungkinkan Anda mengirim pesan email secara sinkron. Pendekatan ini berguna ketika aplikasi harus mengonfirmasi pengiriman sebelum melanjutkan.

Untuk mengirim email teks biasa secara sinkron menggunakan Aspose.Email untuk Python via .NET, gunakan langkah-langkah dan contoh kode di bawah ini:

  1. Buat sebuah MailMessage instance dan atur pengirim, penerima, subjek, dan badan.
  2. Konfigurasikan SmtpClient dengan host server, port, nama pengguna, dan kata sandi.
  3. Panggil send metode pada SmtpClient instance dan masukkan MailMessage objek.
# Create email
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.body = "This is text body."
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1")) 

# Configure SmtpClient object
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO 

# Send email
client.send(eml)

Kirim File EML Pra-Dibuat melalui SMTP

Jika Anda perlu mengirim pesan email yang sudah dibuat dan disimpan dalam format EML, Anda dapat memuat dan mengirimnya secara programatis menggunakan Aspose.Email untuk Python via .NET.

Potongan kode berikut dengan langkah-langkah menunjukkan cara mengirim file EML menggunakan SmtpClient:

  1. Muat file EML menggunakan MailMessage.load metode.
  2. Buat dan konfigurasikan sebuah instance dari SmtpClient, menyediakan host server SMTP, nama pengguna, dan kata sandi untuk otentikasi.
  3. Panggil send metode pada SmtpClient instance dan kirimkan pesan yang dimuat.
import aspose.email as ae

message = ae.MailMessage.load("test.eml")

# Send this message using SmtpClient
client = ae.clients.SmtpClient("host", "username", "password")
client.send(message)

Kirim Email Teks Polos

Anda dapat mengirim email teks polos menggunakan Aspose.Email dengan menentukan badan pesan sebagai teks sederhana. MailMessage.body properti digunakan untuk menentukan konten, sementara SmtpClient kelas menangani proses pengiriman.

Potongan kode berikut dengan langkah-langkah menunjukkan cara mengirim email teks polos:

  1. Buat sebuah instansi dari MailMessage kelas.
  2. Atur alamat email pengirim dan penerima.
  3. Tetapkan konten teks polos ke properti body.
  4. Buat sebuah instansi dari SmtpClient kelas dengan detail server dan kredensial.
  5. Kirim email menggunakan send metode.

Kirim Email HTML

Aspose.Email untuk Python via .NET memungkinkan Anda mengirim email dengan badan berformat HTML menggunakan MailMessage kelas. Dengan menetapkan konten HTML ke html_body properti dan pengaturan is_body_html menjadi True, Anda dapat membuat pesan yang kaya dan bergaya.

Contoh kode berikut dengan langkah-langkah menunjukkan cara mengirim email HTML:

  1. Buat sebuah instansi dari MailMessage kelas.
  2. Atur alamat email pengirim dan penerima.
  3. Atur is_body_html = True untuk menunjukkan pemformatan HTML.
  4. Tetapkan konten HTML Anda ke html_body properti.
  5. Buat dan konfigurasikan SmtpClient instance.
  6. Gunakan send metode untuk mentransmisikan pesan.

Catatan: Walaupun contoh ini menggunakan HTML dasar, Anda dapat menggabungkan struktur HTML yang lebih kompleks untuk membuat tata letak email yang responsif dan bermerek.

Kirim Email HTML dengan Alternatif Teks Polos

Saat mengirim email HTML, praktik terbaik adalah menyertakan versi teks polos untuk penerima yang klien emailnya tidak mendukung HTML. Aspose.Email untuk Python via .NET menawarkan AlternateView kelas untuk menyertakan konten HTML dan teks polos dalam satu pesan, meningkatkan kompatibilitas dan pengalaman pengguna.

Contoh kode berikut dan langkah-langkah menunjukkan cara mengirim email dengan konten teks alternatif:

  1. Buat sebuah instansi dari MailMessage kelas.
  2. Atur alamat email pengirim dan penerima.
  3. Tetapkan konten HTML ke html_body properti dan setel is_body_html = True.
  4. Buat AlternateView teks polos menggunakan create_alternate_view_from_string.
  5. Tambahkan tampilan alternatif ke alternate_views koleksi dari MailMessage.
  6. Buat dan konfigurasikan SmtpClient instance.
  7. Kirim email menggunakan send metode.

Cara Mengirim Email Massal

Mengirim email massal melibatkan pengiriman beberapa pesan sekaligus — masing-masing mungkin ditujukan ke penerima yang berbeda. Aspose.Email menyediakan kemampuan ini menggunakan SmtpClient kelas.

Contoh kode di bawah ini menunjukkan cara mengirim sekumpulan email sekaligus:

  1. Buat sebuah instansi dari SmtpClient kelas dan konfigurasikan host, port, kredensial, dan pengaturan keamanan.
  2. Buat beberapa MailMessage instance — masing-masing mewakili pesan email individual.
  3. Tentukan pengirim, penerima, subjek, dan tubuh pesan untuk setiap email.
  4. Tambahkan semua MailMessage objek ke sebuah MailMessageCollection.
  5. Panggil send metode dari SmtpClient kelas, melewatkan MailMessageCollection sebagai argumen.
import aspose.email as ae
from aspose.email.clients import SmtpClient, SecurityOptions
from aspose.email import MailMessage, MailMessageCollection

# Create individual email messages
message1 = MailMessage("from@gmail.com", "to1@gmail.com", "Bulk Email - Message 1", "Hello, this is message 1.")
message2 = MailMessage("from@gmail.com", "to2@gmail.com", "Bulk Email - Message 2", "Hello, this is message 2.")
message3 = MailMessage("from@gmail.com", "to3@gmail.com", "Bulk Email - Message 3", "Hello, this is message 3.")

# Add messages to a collection
many_messages = MailMessageCollection()
many_messages.append(message1)
many_messages.append(message2)
many_messages.append(message3)

# Configure SMTP client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Send all messages in bulk
client.send(many_messages)

Kirim Email dengan Dukungan Multi-Koneksi

Aspose.Email untuk Python via .NET memungkinkan Anda menggunakan beberapa koneksi simultan saat mengirim email melalui SmtpClient kelas. Fitur ini dapat membantu mengoptimalkan kinerja saat mengirim volume email tinggi dengan mendistribusikan beban kerja ke beberapa koneksi. Namun, perlu diingat bahwa mengaktifkan mode multi-koneksi tidak menjamin peningkatan kinerja dalam semua skenario — tergantung pada konfigurasi server dan kondisi jaringan.

Properti Kunci:

  • use_multi_connection: Mengaktifkan atau menonaktifkan mode multi-koneksi untuk klien SMTP.

  • connections_quantity: Menentukan jumlah koneksi yang akan dibuka saat mode multi-koneksi diaktifkan.

Contoh kode berikut menunjukkan cara mengaktifkan mode multi-koneksi:

  1. Buat dan konfigurasikan sebuah instance dari SmtpClient.
  2. Atur detail server seperti host, port, nama pengguna, kata sandi, dan enkripsi.
  3. Aktifkan mode multi-koneksi dengan mengatur use_multi_connection.
  4. Tentukan jumlah koneksi dengan connections_quantity.
import aspose.email as ae

client = ae.clients.smtp.SmtpClient
client.host = "<HOST>"
client.username = "<USERNAME>"
client.password = "<PASSWORD>"
client.port = 587
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT

client.connections_quantity = 5
client.use_multi_connection = ae.clients.MultiConnectionMode.ENABLE
client.send(messages)

Kirim Email dengan Format TNEF

Transport Neutral Encapsulation Format (TNEF) adalah format email proprietari yang digunakan oleh Microsoft Outlook dan Exchange untuk mempertahankan pemformatan kaya, objek tertanam, dan fitur khusus seperti tombol voting. Klien email standar mungkin tidak mempertahankan pemformatan ini ketika menggunakan pesan berbasis MIME biasa.

Aspose.Email untuk Python via .NET mendukung pengiriman email dalam format TNEF untuk memastikan semua pemformatan lanjutan dan fitur terjaga. Ini dicapai dengan mengaktifkan use_tnef properti dari SmtpClient kelas.

Contoh kode berikut dan langkah-langkah menunjukkan cara mengirim email TNEF:

  1. Muat pesan EML yang ada atau buat baru menggunakan MailMessage kelas.
  2. Atur alamat pengirim dan penerima.
  3. Aktifkan pemformatan TNEF dengan mengatur use_tnef = True pada SmtpClient instance.
  4. Kirim pesan menggunakan send() metode.

Kirim Permintaan Pertemuan melalui Email

Microsoft Outlook dan klien email dengan dukungan kalender lainnya seperti IBM Lotus Notes memungkinkan pengguna mengelola pertemuan langsung dari kotak masuk mereka. Ketika pengguna menerima undangan pertemuan, mereka dapat menerima atau menolak langsung di dalam klien email mereka. Dengan Aspose.Email untuk Python via .NET, pengembang dapat secara programatis membuat dan mengirim undangan pertemuan ini sesuai dengan standar iCalendar (RFC 2445).

Cara Mengirim Undangan Pertemuan melalui Email

Aspose.Email menyediakan dukungan bawaan untuk menyusun dan mengirim permintaan pertemuan iCalendar sebagai bagian dari email. Permintaan ini kompatibel dengan klien kalender populer dan memungkinkan penerima merespons undangan dengan mudah.

|Permintaan pertemuan iCalendar yang dikirim via email| | :- | |todo:image_alt_text|

Potongan kode berikut menunjukkan cara mengirim permintaan melalui email:

  1. Buat sebuah MailMessage instance.
  2. Tentukan alamat email pengirim dan penerima.
  3. Buat sebuah Appointment objek dengan lokasi, waktu mulai/selesai, pengirim, dan penerima.
  4. Atur ringkasan dan deskripsi pertemuan.
  5. Lampirkan pertemuan ke email menggunakan add_alternate_view().
  6. Kirim email menggunakan SmtpClient.

Dukungan iCalendar untuk IBM Lotus Notes

Aspose.Email menggunakan format iCalendar (RFC 2445), yang memastikan bahwa permintaan pertemuan Anda kompatibel dengan Microsoft Outlook, IBM Lotus Notes, dan klien lain yang mendukung standar tersebut. Proses yang sama dapat digunakan terlepas dari platform penerima.

Teruskan Email menggunakan SMTP Client

Meneruskan email adalah tugas umum dalam komunikasi digital, sering digunakan untuk berbagi pesan yang diterima dengan orang lain. Aspose.Email untuk Python via .NET memungkinkan pengembang meneruskan email secara programatis menggunakan SmtpClient kelas. Metode forward memungkinkan meneruskan pesan email yang disimpan atau diterima ke penerima baru tanpa melibatkan pengirim asli.

Berikut adalah contoh kode yang menunjukkan cara meneruskan email menggunakan MailMessage kelas:

Teruskan File EML Tanpa Memuat ke MailMessage

Aspose.Email juga mendukung penerusan file .eml secara langsung tanpa harus memuatnya terlebih dahulu ke dalam sebuah MailMessage objek. Ini sangat berguna dalam skenario di mana penggunaan memori sistem perlu diminimalkan.

Contoh kode di bawah ini menunjukkan cara meneruskan file EML secara langsung:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient(host, smtp_port, username, password, ae.clients.SecurityOptions.AUTO)
file = open("test.eml", "rb")
client.forward(sender, recipients, file)