Membuat dan Mengelola Email
Membuat Pesan Email Baru
The MailMessage kelas merepresentasikan sebuah pesan email dan memungkinkan pengembang membuat pesan email baru. Properti email dasar seperti From, To, Subject, dan body dapat dengan mudah ditetapkan pada pesan email yang baru dibuat. Demikian pula, kita dapat menyimpan pesan email ke dalam format yang berbeda seperti EML, MSG, dan MHTML.
- Buat sebuah instansi dari MailMessage kelas.
- Atur properti pesan email.
- Simpan pesan email dalam format yang berbeda.
Potongan kode berikut menunjukkan cara membuat email baru dengan properti yang berbeda.
Menentukan Beberapa Penerima
The MailMessage objek merepresentasikan sebuah pesan email. Instance dari MailMessage kelas digunakan untuk membangun pesan email yang dikirim ke server SMTP menggunakan SmtpClient kelas. Artikel ini menunjukkan cara menentukan lebih dari satu alamat email. Alamat email dapat ditentukan menggunakan MailMessage kelas. Mereka adalah:
- To - Alamat penerima dapat ditentukan di bidang ‘To’. Penerima di bidang ‘To’ adalah audiens utama pesan. Bisa ada lebih dari satu alamat penerima.
- Cc - CC adalah singkatan dari "carbon copy" atau "courtesy copy", dan memungkinkan Anda menambahkan penerima email yang perlu melihat email tetapi tidak harus mengambil tindakan. Misalnya manajer, atau anggota tim Anda yang perlu mengetahui percakapan. Dengan Aspose.Email, alamat CC dapat ditentukan dalam kode Anda. Dengan cara ini, email otomatis, atau semua email ke alamat tertentu, dapat disalin ke personel terkait.
- Bcc - Bcc, blind carbon copy, memungkinkan Anda mengirim email ke penerima yang disembunyikan dari penerima lain. Di mana CC muncul dalam informasi email yang dilihat penerima utama, Bcc tidak. Ini dimaksudkan untuk notifikasi tersembunyi.
Untuk menentukan beberapa alamat email dalam sebuah pesan email, ikuti langkah-langkah berikut:
- Buat sebuah instansi dari MailMessage kelas.
- Tentukan alamat From serta multiple To, Cc, dan Bcc menggunakan
MailMessageinstance. - Buat sebuah instansi dari SmtpClient kelas dan kirim email menggunakan metode Send.
Contoh kode di bawah ini menunjukkan cara menentukan beberapa alamat To, CC, dan BCC.
Menetapkan Nama Tampilan Pengirim dan Penerima
Contoh pemrograman di bawah ini menunjukkan cara mengubah alamat email menjadi nama ramah dalam pesan email. Nama ramah adalah nama yang lebih mudah dipahami manusia dibandingkan alamat email, misalnya John Smith alih-alih js346@domain.com. Saat mengirim email, kita dapat mengaitkan nama ramah dengan alamat email dalam MailMessage konstruktor kelas.
Untuk mengubah alamat email menjadi nama ramah dalam pesan email, ikuti langkah-langkah berikut:
- Buat sebuah instansi dari MailMessage kelas dan tentukan alamat email di bidang To dan From beserta nama ramah.
- Tentukan alamat email Cc dan Bcc beserta nama ramah dengan memanggil MailMessage konstruktor kelas dalam
MailMessageinstance. - Buat sebuah instansi dari SmtpClient kelas dan mengirim email menggunakan Kirim metode.
Potongan kode berikut menunjukkan cara menampilkan Nama untuk alamat email.
Mengatur Subjek Email
The MailMessage kelas memungkinkan Anda menentukan ringkasan singkat isi pesan menggunakan subjek properti. Contoh kode berikut menunjukkan cara membuat email dan mengatur subjeknya:
from aspose.email import MailMessage
# Create a new email message
message = MailMessage()
# Set the subject of the email
message.subject = "Meeting Reminder: Project Update"
# Set other email properties (optional)
message.from_address = "sender@example.com"
message.to.append("recipient@example.com")
message.body = "This is a reminder for the upcoming project update meeting."
# Print the email details
print(f"Subject: {message.subject}")
print(f"From: {message.from_address}")
print(f"To: {', '.join(message.to)}")
print(f"Body: {message.body}")
Mengatur Body Email
Selain subjek pesan, body email dapat ditentukan menggunakan MailMessage kelas. Sebuah email dapat memiliki beberapa body. Ada dua tipe body email dalam kelas:
- Body HTML
- Body teks
Selain HtmlBody dan TextBody, Aspose.Email memiliki dua properti read‑only lainnya yang terkait dengan body email:
IsBodyText: memberi tahu pengguna apakah body berisi teks.IsBodyHtml: memberi tahu pengguna apakah badan berupa HTML atau teks biasa.
Artikel ini menunjukkan cara mendefinisikan teks biasa atau teks body HTML, mengatur teks alternatif, dan mengkodekan body email.
Mengatur Badan HTML
Body HTML digunakan untuk menentukan konten HTML dari isi pesan. Body HTML harus berada di antara tag . Potongan kode berikut menunjukkan cara mengatur body HTML.
Mengatur Teks Alternatif
Gunakan AlternateView kelas untuk menentukan salinan pesan email dalam format yang berbeda. Misalnya, bila Anda mengirim pesan dalam format HTML, Anda mungkin juga ingin menyediakan versi teks biasa bila beberapa penerima menggunakan pembaca email yang tidak dapat menampilkan konten HTML. Kelas ini memiliki dua properti, linked_resources dan base_uri, yang digunakan untuk menyelesaikan URL dalam konten email.
- LinkedResources adalah kumpulan objek LinkedResources. Saat dirender, URL dalam konten email pertama‑tama dicocokkan dengan URL di Content Link tiap objek LinkedResources dalam koleksi LinkedResources, dan diselesaikan.
- BaseUri digunakan oleh pembaca email untuk menyelesaikan URL relatif dalam badan, dan juga untuk menyelesaikan URL Content Link relatif, dalam koleksi LinkedResources.
Potongan kode berikut menunjukkan cara mengatur teks alternatif.
Fitur MailMessage
The MailMessage class mewakili konten pesan email. Instansi dari MailMessage class digunakan untuk membangun pesan email yang dikirim ke server SMTP untuk pengiriman menggunakan SmtpClient class. Artikel ini menunjukkan cara menggunakan MailMessage fitur utilitas class untuk mengontrol fitur email berikut:
- Tanggal dan waktu - Melalui MailMessage Properti class Date memungkinkan kita mendapatkan atau mengatur tanggal dan waktu email.
- Prioritas pesan - MailPriority kelas menentukan tingkat prioritas untuk mengirim pesan email. Bisa rendah, normal, atau tinggi. Prioritas memengaruhi kecepatan transmisi dan pengiriman.
- Sensitivitas pesan - MailSensitivity kelas menentukan lima tingkat sensitivitas.
- Notifikasi pengiriman - Notifikasi pengiriman memberi tahu pengirim bahwa email yang mereka kirim telah sampai ke kotak masuk penerima.
Secara default, tanggal adalah tanggal sebenarnya pesan dikirim, dan waktu adalah waktu pengirimannya, sebagaimana ditampilkan oleh Microsoft Outlook. Namun, waktu pengiriman email yang sebenarnya ditambahkan oleh server SMTP sendiri di header email. Misalnya, di bawah ini adalah header email umum, di mana Date mengatur bidang Date.
import aspose.email as ae
from aspose.email import MailMessage
# Create a new MailMessage instance
message = MailMessage()
# Add SMTP headers to the message
message.headers.add("Received", "from ip-123.56.99.216.dsl-cust.ca.inter.net ([216.99.56.123]) by Aspose.secureserver.net with MailEnable ESMTP; Thu, 22 Feb 2007 13:58:57 -0700")
message.headers.add("Return-Path", "<xyz@oikoscucine.it>")
message.headers.add("Received", "from 195.120.225.20 (HELO mail.oikoscucine.it) by aspose.com with esmtp (:1CYY+<LA*- *1WK@) id Q8,/O/-.N83@7-9M for abc@aspose.com; Thu, 22 Feb 2007 20:58:51 +0300")
# Set email details
message.from_address = "XYZ <xyz@oikoscucine.it>"
message.to.append("abc@aspose.com")
message.subject = "For ABC"
message.date = "Thu, 22 Feb 2007 20:58:51 +0300"
message.message_id = "<01c756c4$41b554d0$6c822ecf@dishonestyinsufferably>"
message.headers.add("MIME-Version", "1.0")
message.headers.add("Content-Type", "multipart/alternative; boundary=\"----=_NextPart_000_0006_01C7569A.58DF4CD0\"")
message.headers.add("X-Mailer", "Microsoft Office Outlook, Build 11.0.5510")
message.headers.add("X-MimeOLE", "Produced By Microsoft MimeOLE V6.00.2800.1106")
message.headers.add("Thread-Index", "Aca6Q:=ES0M(9-=(<.<1.<Q9@QE6CD==")
message.headers.add("X-Read", "1")
# Save the message as an EML file
message.save("output.eml", ae.EmlSaveOptions())
Potongan kode di bawah ini menggambarkan cara setiap fitur yang dibahas di atas dapat digunakan.
import aspose.email as ae
from aspose.email import MailMessage, MailPriority, MailSensitivity
from datetime import datetime
# Create a new MailMessage instance
message = MailMessage("sender@gmail.com", "receiver@gmail.com", "Some subject", "Some body text")
# Set additional properties
message.date = datetime.now()
message.priority = MailPriority.HIGH
message.sensitivity = MailSensitivity.NORMAL
message.headers.add("X-Mailer", "Aspose.Email")
# Save the message as an EML file
message.save("output.eml", ae.EmlSaveOptions())
Meminta Tanda Terima Baca
Contoh kode pemrograman di bawah ini menunjukkan cara Anda dapat meminta tanda terima baca. The MailMessage kelas DeliveryNotificationOptions Properti enumerasi menggambarkan opsi notifikasi pengiriman untuk sebuah email. Untuk meminta tanda terima baca setelah mengirim email, ikuti langkah-langkah berikut:
- Buat sebuah instansi dari MailMessage kelas.
- Tentukan pengirim, penerima, dan body HTML untuk email dalam MailMessage instance.
- Tentukan DeliveryNotificationOptions di lain MailMessage instance.
- Buat sebuah instansi dari SmtpClient kelas dan kirim email menggunakan metode Send.
Permintaan tanda terima baca tidak selalu dipenuhi karena:
- Klien email mungkin tidak mengimplementasikan fungsi tersebut.
- Pengguna akhir mungkin menonaktifkan fungsi tersebut.
- Pengguna akhir dapat memilih untuk tidak mengirimnya.
Potongan kode berikut menunjukkan cara meminta tanda terima baca.
import aspose.email as ae
from aspose.email import MailMessage, SmtpClient, DeliveryNotificationOptions
# Create an instance of MailMessage class
message = MailMessage()
# Specify From, To, HtmlBody, and DeliveryNotificationOptions
message.from_address = "sender@sender.com"
message.to.append("receiver@receiver.com")
message.html_body = "<html><body>This is the Html body</body></html>"
message.delivery_notification_options = DeliveryNotificationOptions.ON_SUCCESS
message.headers.add("Return-Receipt-To", "sender@sender.com")
message.headers.add("Disposition-Notification-To", "sender@sender.com")
# Create an instance of SmtpClient class
client = SmtpClient()
# Specify your mailing host server, Username, Password, and Port
client.host = "smtp.server.com"
client.username = "Username"
client.password = "Password"
client.port = 25
try:
# Client.send will send this message
client.send(message)
# Display 'Message sent' only if the message is sent successfully
print("Message sent")
except Exception as ex:
import traceback
traceback.print_exc()
Set Header Email
Header email mewakili standar Internet dan RFC mendefinisikan field header yang termasuk dalam pesan email Internet. Header email dapat ditentukan menggunakan kelas MailMessage. Tipe header umum didefinisikan dalam kelas HeaderType. Ini adalah kelas sealed yang berfungsi seperti enumerasi normal.
Biasanya header email berisi field-field berikut:
- To: Alamat penerima dapat ditentukan dalam field To. Penerima ini merupakan audiens utama pesan. Bisa ada lebih dari satu alamat penerima.
- From: Field ini menampilkan alamat email pengirim pesan.
- Cc: Memungkinkan pengguna mengirim pesan sebagai "Carbon Copy" atau "Courtesy Copy". Artinya, penerima tidak diharapkan membalas atau bertindak. Biasanya, personel supervisi diberi tahu dengan CC.
- Bcc: Singkatan dari Blind Carbon Copy, mengacu pada praktik mengirim pesan ke banyak penerima sehingga yang mereka terima tidak berisi daftar lengkap penerima. Ini dimaksudkan untuk notifikasi tersembunyi.
- ReplyTo: Field header ini dimaksudkan untuk menunjukkan ke mana pengirim ingin balasan diarahkan.
- Subject: Judul, heading, subjek. Sering digunakan sebagai indikator thread untuk pesan yang membalas atau mengomentari pesan lain.
- Date: Header ini menentukan tanggal (dan waktu). Normalnya, ini adalah tanggal saat pesan dibuat dan dikirim.
- XMailer: Informasi tentang perangkat lunak klien dari pengirim. Contoh: X-Mailer: Aspose.Email. XMailer digunakan oleh klien email. Berbagai klien email memiliki nilai XMailer yang berbeda. Nilai XMailer MS Outlook adalah Microsoft Office Outlook, Build 11.0.5510. Nilai ini diabaikan oleh penerima email atau pembaca email.
Biasanya, header email terlihat seperti ini:
Reply-To: reply@reply.com
From: sender@sender.com
To: guangzhou@guangzhoo.com
Subject: test mail
Date: 6 Mar 2006 8:2:2 +0800
X-Mailer: Aspose.Email
Untuk menyesuaikan header email, ikuti langkah-langkah berikut:
- Buat sebuah instansi dari MailMessage kelas.
- Tentukan To, From, CC, Bcc, ReplyTo, Subject, Date & XMailer menggunakan instance dari MailMessage.
- Buat sebuah instansi dari MimeHeader kelas dan tentukan header rahasia.
- Tambahkan header rahasia ke MailMessage instance.
Potongan kode berikut menunjukkan cara mengatur header email.
import aspose.email as ae
from aspose.email import MailMessage
from datetime import datetime
# Create an instance of MailMessage class
message = MailMessage()
# Specify email details
message.reply_to_list.append("reply@reply.com")
message.from_address = "sender@sender.com"
message.to.append("receiver1@receiver.com")
message.cc.append("receiver2@receiver.com")
message.bcc.append("receiver3@receiver.com")
message.subject = "test mail"
message.date = datetime(2006, 3, 6)
message.headers.add("X-Mailer", "Aspose.Email")
Potongan kode di atas menghasilkan header email dalam format berikut. Ini dapat dilihat dengan membuka file hasil "MsgHeaders.msg" di Microsoft Outlook dan kemudian melihat Properties.
Reply-To: reply@reply.com
From: sender@sender.com
To: receiver1@receiver.com
CC: receiver2@receiver.com
BCC: receiver3@receiver.com
Subject: test mail
Date: 6 Mar 2006 8:2:2 +0800
X-Mailer: Aspose.Email
secret-header: mystery
Sisipkan Header pada Lokasi Spesifik
The Tambah metode dari HeadersCollection kelas menyisipkan header di akhir koleksi. Namun, kadang diperlukan menyisipkan header pada lokasi tertentu. Dalam kasus tersebut, Tambah metode tidak akan membantu. Untuk mencapainya, gunakan Insert metode dari HeadersCollection. Jika koleksi berisi header dengan nama yang sama, header ini akan disisipkan sebelum header lain dengan nama yang sama.
Potongan kode berikut menunjukkan cara menyisipkan header pada lokasi tertentu.
# Insert a header into the MailMessage instance
message.headers.insert("Received", "Value")
Menambahkan Header Kustom ke Email
Contoh pemrograman di bawah menunjukkan cara menentukan header khusus dalam pesan email menggunakan MailMessage kelas.
# Add a header into the MailMessage instance
message.headers.add("secret-header", "mystery")
Potongan kode di atas menghasilkan header email dalam format berikut:
secret-header: mystery