Buat pesan MIME menggunakan C#

Saat mengirim email, Anda mungkin perlu mengirim konten multimedia seperti gambar, audio, dan video. Di sinilah pesan MIME (Multipurpose Internet Mail Extensions) berperan. Dalam artikel ini, kita akan menjelajahi cara membuat EML pesan secara programatis di C#. Pada akhir artikel, Anda akan memahami cara membuat pesan MIME, menambahkan gambar ke konten HTML email, dan menyimpan email ke format EML.

.NET API untuk Membuat Pesan MIME

Sebelum Anda membuat pesan MIME pertama Anda, langkah pertama adalah menginstal Aspose.Email untuk .NET di proyek Anda. Ini adalah pustaka yang kuat untuk pengembang C# yang menyediakan seperangkat alat yang komprehensif untuk bekerja dengan pesan email, termasuk kemampuan untuk membuat pesan MIME secara programatis. Pustaka ini membantu pengembang dengan mudah memanipulasi berbagai aspek pesan MIME, seperti lampiran, body, header, encoding, dan lainnya. Anda dapat menginstal pustaka melalui NuGet atau unduh DLL-nya.

PM> Install-Package Aspose.Email

Buat File EML dari Awal

Karena API Anda telah diinstal, saatnya untuk membuat eml pertama Anda dari awal. Salah satu cara termudah untuk melakukannya adalah dengan menggunakan kelas MailMessage dari Aspose.Email. Kelas MailMessage memungkinkan Anda membuat objek pesan email dengan berbagai properti dan metode yang memungkinkan Anda mengatur pengirim, penerima, subjek, body, lampiran, header, dan detail lainnya dari email Anda.

Langkah-langkah berikut dan cuplikan kode akan membantu Anda membuat EML dari awal:

  • Buat objek MailMessage baru menggunakan konstruktor default.
  • Atur properti objek MailMessage sesuai kebutuhan Anda.
  • Simpan objek MailMessage ke file EML menggunakan metode Save.
// Create a new MailMessage object
var eml = new MailMessage()
{
// Set the sender address
From = "sender@sender.com",
// Add a recipient address
To = "receiver@receiver.com",
// Set the subject
Subject = "New message",
// Set the HTML body
HtmlBody = @"<!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>"
};
// Save the MailMessage object to an EML file
eml.Save("message.eml", SaveOptions.DefaultEml);

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

Tambahkan Gambar ke Konten HTML

Untuk melakukan fungsi ini, Anda perlu menyematkan gambar di dalam body HTML. Anda dapat menggunakan tag “img” untuk melakukannya.

Cuplikan kode berikut menunjukkan cara menambahkan gambar ke body HTML dari sebuah pesan.

  • Body HTML berisi tag gambar dengan atribut sumber yang disetel ke cid:image1.
  • Kelas AlternateView digunakan untuk mendapatkan tampilan alternatif dari body pesan yang berisi gambar yang disematkan.
  • Kelas LinkedResource digunakan untuk mewakili gambar yang disematkan dan ID kontennya disetel ke image1.
  • Akhirnya, tampilan alternatif ditambahkan ke koleksi tampilan alternatif pesan.
// Create a new instance of MailMessage class
var eml = new MailMessage
{
// Set sender and recipient
From = new MailAddress("sender@domain.com"),
To = new MailAddress("recipient@domain.com"),
// Set subject and body
Subject = "New message with image",
HtmlBody = @"<!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>"
};
var alternateView = eml.AlternateViews.GetView(MediaTypeNames.Text.Html);
var imageResource = new LinkedResource(path + "image.png", MediaTypeNames.Image.Png)
{
ContentId = "image1"
};
alternateView.LinkedResources.Add(imageResource);
eml.Save("message_with_image.eml", SaveOptions.DefaultEml);

Buat File EML dari File HTML

Salah satu cara untuk melakukannya adalah dengan memulai dari file HTML dan mengonversinya ke EML. Ini bisa berguna jika Anda memiliki HTML yang ingin Anda kirim sebagai pesan email. Untuk tujuan ini, kita pertama-tama perlu memiliki konten HTML. Mari kita sebut file ini content.html. Berikut adalah contoh darinya:

<!DOCTYPE html>
<html>
<head>
	<title>Email Saya</title>
</head>
<body>
	<h1>Halo,</h1>
	<img src="logo.png" alt="Logo">
	<p>Ini adalah email pertama saya yang dibuat dari HTML.</p>
</body>
</html>

Anda juga harus menyiapkan terlebih dahulu semua gambar yang berisi HTML, dan menentukan jalur yang benar untuk mereka di dalam file HTML.

Sekarang, kita dapat dengan mudah membuat MailMessage dengan mengatur body HTML dari content.html.

  • Pertama, buat objek HtmlLoadOptions baru.
  • Atur sebuah string yang berisi jalur ke gambar di PathToResources.
  • Atur properti ShouldAddPlainTextView menjadi true jika EML harus berisi AlternateView dengan teks biasa.
  • Buat objek MailMessage dengan memuat file HTML dan meneruskan objek HtmlLoadOptions sebagai parameter.
  • Atur properti pesan tambahan.
  • Akhirnya, simpan objek MailMessage ke file EML menggunakan metode Save.
var htmlloadOptions = new HtmlLoadOptions
{
PathToResources = path,
ShouldAddPlainTextView = true
};
var eml = MailMessage.Load(path + @"content.html", htmlloadOptions);
// Set sender and recipient
eml.From = new MailAddress("sender@domain.com");
eml.To = new MailAddress("recipient@domain.com");
// Set subject
eml.Subject = "New message from HTML";
// Save the message in EML format
eml.Save("message_from_html.eml", SaveOptions.DefaultEml);

Tips untuk Meningkatkan Tampilan Pesan HTML di Outlook

Untuk melihat pesan HTML Anda di Outlook, Anda perlu memastikan bahwa kode tersebut kompatibel dengan mesin rendering Outlook, yang berbeda dari sebagian besar browser web. Beberapa masalah umum yang dapat memengaruhi email HTML Anda di Outlook adalah:

  • Outlook tidak mendukung beberapa tag dan properti CSS, seperti gambar latar, float, margin, padding, dll. Anda mungkin perlu menggunakan gaya inline, tabel, atau komentar bersyarat untuk mencapai tata letak dan pemformatan yang diinginkan.
  • Outlook mungkin menambahkan ruang atau garis ekstra antara elemen atau menghapus beberapa elemen sama sekali. Anda mungkin perlu menggunakan spasi non-breaking, spasi lebar nol, atau sel tabel kosong untuk mencegah ini.
  • Outlook mungkin mengubah encoding atau set karakter file HTML Anda, yang dapat menyebabkan beberapa karakter ditampilkan secara tidak benar. Anda mungkin perlu menentukan encoding dan set karakter di dalamnya menggunakan tag meta.

Kesimpulan

Dalam posting blog ini, Anda telah belajar cara membuat pesan MIME secara programatis di C# menggunakan Aspose.Email. Tutorial langkah demi langkah dan contoh kode menunjukkan cara membuat file eml dari awal dan dari file HTML, menambahkan gambar ke konten HTML dari pesan email, dan mendukung semua yang disebutkan di atas dengan tips berguna tentang cara meningkatkan tampilan pesan HTML Anda di Outlook.

  • Anda dapat menjelajahi lebih banyak tentang Aspose.Email untuk .NET dan mencobanya secara gratis.
  • Anda juga dapat memeriksa lebih banyak fitur dan fungsionalitas Aspose.Email di dokumentasi.
  • Pertanyaan Anda dipersilakan di forum.

Lihat Juga