Buat pesan MIME menggunakan C#

MIME (Multipurpose Internet Mail Extensions) adalah standar yang banyak digunakan untuk memformat dan bertukar pesan email, serta jenis konten lainnya melalui Internet. Ini memungkinkan penyertaan berbagai jenis media, seperti teks, gambar, audio, dan video, dalam satu pesan email. Pada artikel ini, kita akan mengeksplorasi cara membuat pesan EML secara terprogram dengan Python. Di akhir artikel, Anda akan memiliki pemahaman yang jelas tentang cara membuat pesan MIME, menambahkan gambar ke konten HTML email, dan menyimpan email ke format EML.

API untuk Membuat Pesan MIME dengan Python

Untuk membuat pesan MIME, seseorang harus mematuhi aturan pemformatan yang ditentukan oleh standar MIME. Ini biasanya melibatkan penggunaan pustaka atau modul yang sesuai yang disediakan oleh bahasa pemrograman, seperti Python, untuk menghasilkan struktur MIME yang diperlukan. Aspose.Email for Python adalah pustaka andal yang menyediakan berbagai fungsi untuk membuat, memanipulasi, dan memproses pesan email, memudahkan pengembang untuk memasukkan tugas terkait email ke dalam proyek Python mereka. Ini dirancang untuk bekerja dengan berbagai format dan di berbagai platform. Anda dapat dengan mudah menginstal API melalui PyPI atau unduh DLL-nya.

> pip install Aspose.Email-for-Python-via-NET

Buat File EML dari Awal

Untuk membuat pesan email baru, kita akan menggunakan kelas MailMessage dari Aspose.Email. Kelas memiliki semua metode dan properti yang diperlukan untuk menentukan pengirim, penerima, subjek, dan badan HTML. Pesan tersebut kemudian disimpan sebagai file EML bernama “message.eml”.

Proses pembuatan file eml baru dapat dijelaskan dalam langkah-langkah berikut:

  • Impor kelas yang diperlukan dari modul aspose.email.
  • Buat instance baru dari kelas MailMessage menggunakan konstruktor default.
  • Setel properti objek MailMessage sesuai dengan kebutuhan Anda: alamat pengirim, alamat penerima, subjek, badan HTML, dll.
  • Tentukan struktur dan konten HTML. Dalam contoh kami, struktur HTML sederhana dilengkapi dengan heading dan paragraf.
  • Simpan objek MailMessage ke file EML menggunakan metode simpan. Dalam contoh kita, nama filenya adalah “message.eml”.

Contoh kode di bawah ini akan menunjukkan cara membuat EML dari awal secara terprogram:

from aspose.email import MailMessage, MailAddress, LinkedResource, SaveOptions

# Buat instance baru dari kelas MailMessage
eml = MailMessage()

# Tetapkan pengirim dan penerima
eml.from_address = MailAddress("sender@domain.com")
eml.to.append(MailAddress("receiver@receiver.com"))

# Atur subjek dan tubuh
eml.subject = "New message with image"
eml.html_body = """<!DOCTYPE html>
 <html>
  <head>
   <style>
    h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;}
    p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal;
      font-weight:normal;color:#000000;background-color:#ffffff;}
   </style>
  </head>
  <body>
    <h3>New message</h3>
    <p>This is a new message created by Aspose.Email.</p>
  </body>
 </html>"""

#  Simpan objek MailMessage ke file EML
eml.save("message.eml", SaveOptions.default_eml)

Metode penyimpanan kelas MailMessage mengambil dua parameter: jalur file dan opsi penyimpanan. Opsi simpan menentukan format file keluaran.

Tambahkan Gambar ke Konten HTML

Di bagian ini kita akan menyematkan gambar di email menggunakan kelas LinkedResource dari API yang sama. Kelas mewakili sumber daya yang disematkan dalam pesan. Kemudian, kami akan menyimpan pesan tersebut sebagai file EML bernama “messagewithimage.eml”.

Ikuti saja langkah-langkahnya.

  • Impor kelas yang diperlukan dari modul aspose.email.
  • Buat instance baru dari kelas MailMessage menggunakan konstruktor default.
  • Atur properti objek MailMessage sesuai dengan kebutuhan Anda.
  • Badan HTML berisi tag gambar dengan atribut sumber disetel ke cid:myImage.
  • Kelas AlternateView digunakan untuk mendapatkan tampilan alternatif isi pesan yang berisi gambar tersemat.
  • Kelas LinkedResource digunakan untuk mewakili gambar yang disematkan dan ID kontennya disetel ke image1.
  • Terakhir, tampilan alternatif ditambahkan ke koleksi tampilan alternatif pesan.

Coba contoh kode berikut untuk menambahkan gambar ke konten HTML:

from aspose.email import MailMessage, MailAddress, LinkedResource, SaveOptions
from aspose.email.mime import MediaTypeNames

# Buat instance baru dari kelas MailMessage
eml = MailMessage()

# Tetapkan pengirim dan penerima
eml.from_address = MailAddress("sender@domain.com")
eml.to.append(MailAddress("receiver@receiver.com"))

# Atur subjek dan tubuh
eml.subject = "New message with image"
eml.html_body = """<!DOCTYPE html>
 <html>
  <head>
   <style>
    h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;}
    p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal;
      font-weight:normal;color:#000000;background-color:#ffffff;}
   </style>
  </head>
  <body>
    <h3>New message</h3>
    <p>This is a new message created by Aspose.Email.</p>
    <img src='cid:myImage' />
  </body>
 </html>"""

# Tambahkan sumber daya gambar ke tampilan alternatif
for alternate_view in eml.alternate_views:
    if alternate_view.content_type.media_type == "text/html":
        image_resource = LinkedResource("image.png", "image/png")
        image_resource.content_id = "myImage"
        alternate_view.linked_resources.append(image_resource)

# Simpan MailMessage sebagai file EML
eml.save("message_with_image.eml", SaveOptions.default_eml)

Buat File EML dari File HTML

Pustaka Aspose.Email for Python menyediakan cara mudah untuk memuat, memodifikasi, dan menyimpan file HTML sebagai file EML. Proses konversi ini dapat bermanfaat jika Anda memiliki HTML yang ingin dikirim sebagai pesan email. Untuk tujuan ini kita akan menggunakan kelas HtmlLoadOptions. Kelas memungkinkan untuk menentukan opsi tambahan saat memuat MailMessage dari format Html. Pertama, kita perlu memiliki konten HTML. Dalam contoh kita, ini akan berupa file bernama content.html.

<!DOCTYPE html>
<html>
<head>
	<title>My Email</title>
</head>
<body>
	<h1>Hello,</h1>
	<img src="logo.png" alt="Logo">
	<p>This is my first email created form HTML.</p>
</body>
</html>

Selain itu, Anda harus menyiapkan terlebih dahulu semua gambar yang berisi HTML, dan menentukan jalur yang benar ke gambar tersebut dalam file HTML.

Sekarang, kita dapat dengan mudah membuat MailMessage dengan menyetel badan HTML dari content.html.

  • Impor kelas yang diperlukan dari modul aspose.email.
  • Buat instance HtmlLoadOptions untuk menentukan opsi pemuatan untuk objek file HTML.
  • Tetapkan string yang berisi jalur ke gambar di properti pathtoresources.
  • Setel properti shouldaddplaintextview ke True jika EML harus berisi AlternateView dengan teks biasa.
  • Buat instance baru MailMessage dengan memuat file HTML dan meneruskan objek HtmlLoadOptions sebagai parameter.
  • Tetapkan properti pesan tambahan.
  • Terakhir, simpan objek MailMessage ke file EML menggunakan metode simpan.
from aspose.email import HtmlLoadOptions, MailAddress, MailMessage, SaveOptions

htmlloadOptions = HtmlLoadOptions()
htmlloadOptions.path_to_resources = path
htmlloadOptions.should_add_plain_text_view = True
eml = MailMessage.load(path + str(r"content.html"), htmlloadOptions)

#  Tetapkan pengirim dan penerima
eml.from_address = MailAddress("sender@domain.com")
eml.to = MailAddress("recipient@domain.com")

#  Tetapkan subjek
eml.subject = "New message from HTML"

#  Simpan pesan dalam format EML
eml.save("message_from_html.eml", SaveOptions.default_eml)

Tips untuk Meningkatkan Tampilan Pesan HTML di Outlook

Ketika mengirim email HTML, kompatibilitas dengan klien email yang berbeda sangat penting. Outlook, khususnya, memiliki mesin rendering yang berbeda dari kebanyakan browser web, yang dapat menyebabkan masalah pemformatan. Berikut beberapa di antaranya:

  • Outlook mungkin tidak mendukung tag HTML dan properti CSS tertentu yang biasa digunakan di browser web. Elemen seperti gambar latar belakang, float, margin, dan padding mungkin tidak dirender seperti yang diharapkan. Untuk mengatasi hal ini, penting untuk menggunakan gaya sebaris, tabel, atau komentar bersyarat untuk mendapatkan tata letak dan pemformatan yang diinginkan di Outlook.
  • Outlook mungkin memperkenalkan spasi atau garis tambahan di antara elemen atau bahkan menghapus beberapa elemen sekaligus, mengganggu desain yang Anda buat dengan cermat. Untuk mengurangi hal ini, penggunaan strategis ruang non-breaking, ruang dengan lebar nol, atau sel tabel kosong dapat membantu mempertahankan struktur yang dimaksud dan mencegah manipulasi elemen yang tidak diinginkan di Outlook.
  • Mesin rendering Outlook mungkin mengubah penyandian atau set karakter file HTML Anda, sehingga menghasilkan karakter yang kacau atau salah ditampilkan. Untuk memastikan perenderan yang tepat, tentukan pengodean dan set karakter dalam HTML Anda secara eksplisit menggunakan tag meta. Ini akan membantu Outlook menginterpretasikan dan menampilkan teks secara akurat, mencegah masalah terkait karakter.

Kesimpulan

Singkatnya, mari kita ingat masalah apa yang dibahas dalam artikel ini. Anda telah mempelajari cara membuat pesan MIME secara terprogram dengan Python menggunakan Aspose.Email. Petunjuk terperinci dan langkah demi langkah kami dengan contoh kode membuat tutorial dapat dibaca dan mudah dipahami.

Dengan membuat pesan MIME, pengirim email dapat memastikan bahwa komunikasi mereka mendukung berbagai jenis konten dan memberikan pengalaman yang lebih menarik dan interaktif bagi penerima.

  • Anda dapat mempelajari lebih lanjut tentang Aspose.Email for Python dan mencobanya secara gratis.
  • Anda juga dapat melihat lebih banyak fitur dan fungsi Aspose.Email di dokumentasi .
  • Pertanyaan Anda diterima di forum kami.

Lihat juga