Mengelola Pesan Outlook
Simpan Email sebagai HTML
Aspose.Email memungkinkan penyimpanan sumber daya email dengan jalur relatif saat mengekspor pesan ke format HTML. Fitur ini memberikan fleksibilitas lebih dalam cara sumber daya ditautkan dalam file HTML output, memudahkan berbagi dan menampilkan email yang disimpan pada sistem yang berbeda. Untuk menyimpan sumber daya dengan jalur relatif, gunakan HtmlSaveOptions.UseRelativePathToResources properti. Nilai properti default adalah false (sumber daya disimpan dengan jalur absolut). Ketika diatur ke true, sumber daya disimpan dengan jalur relatif.
File HTML dengan jalur relatif lebih portabel dan dapat ditampilkan dengan benar terlepas dari struktur file lingkungan hosting. Anda dapat memilih antara jalur absolut dan relatif tergantung pada kebutuhan. Anda dapat menentukan jalur khusus untuk sumber daya menggunakan ResourceHtmlRendering event.
Contoh kode berikut menunjukkan cara menyimpan email dengan jalur relatif default ke sumber daya:
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
msg.Save(Path.Combine("target_files"), htmlSaveOptions);
Dalam kasus ini, sumber daya akan disimpan di folder [nama file html]_files, pada jalur yang sama dengan file .html dan HTML akan merujuk sumber daya melalui jalur relatif.
Contoh kode di bawah ini menunjukkan cara menyimpan dengan jalur absolut ke sumber daya:
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = false
};
msg.Save(Path.Combine("target_files"), htmlSaveOptions);
Seperti pada kasus pertama, sumber daya akan disimpan di folder [nama file html]_files secara default, tetapi HTML akan merujuk sumber daya menggunakan jalur absolut.
Dengan menggunakan ResourceHtmlRendering event, Anda dapat mengatur jalur relatif atau absolut khusus untuk sumber daya. Saat menyesuaikan jalur dengan ResourceHtmlRendering penangkap acara, dan karena UseRelativePathToResources diatur menjadi true, Anda harus menetapkan jalur relatif ke PathToResourceFile properti untuk memastikan referensi yang tepat.
Contoh kode berikut menunjukkan cara menyesuaikan jalur relatif menggunakan Event ResourceHtmlRendering
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
htmlSaveOptions.ResourceHtmlRendering += (o, args) =>
{
if (o is AttachmentBase attachment)
{
// Since UseRelativePathToResources = true, you should assign a relative path to the PathToResourceFile property.
args.PathToResourceFile = $@"images\{attachment.ContentType.Name}";
}
};
msg.Save(Path.Combine(targetPath, "A Day in the Park.html"), htmlSaveOptions);
Konversi MSG ke Pesan MIME
API Aspose.Email menyediakan kemampuan untuk mengonversi file MSG menjadi pesan MIME menggunakan ToMailMessage metode.
Atur Batas Waktu untuk Konversi dan Pemuatan Pesan
Fitur berikut akan memungkinkan Anda mengatur batas waktu dalam milidetik untuk proses konversi dan pemuatan:
-
MailConversionOptions.Timeout properti- Membatasi waktu dalam milidetik saat mengonversi pesan.
-
MailConversionOptions.TimeoutReached - Dilemparkan jika waktu habis saat mengonversi ke MailMessage.
-
MsgLoadOptions.Timeout - Membatasi waktu dalam milidetik saat mengonversi pesan.
-
MsgLoadOptions.TimeoutReached - Dilemparkan jika waktu habis saat mengonversi ke MailMessage.
Contoh kode di bawah ini akan menunjukkan cara mengatur batas waktu saat mengonversi pesan:
var options = new MailConversionOptions();
// Set the timeout to 5 seconds
options.Timeout = 5000;
options.TimeoutReached += (object sender, EventArgs args) =>
{
string subj = (sender as MailMessage).Subject;
// Set a flag indicating the timeout was reached
isTimedOut = true;
};
var mailMessage = mapiMessage.ToMailMessage(options);
Konversi MSG ke EML dengan Mempertahankan badan RTF
Konversi file MSG ke EML dengan mempertahankan badan RTF dapat dilakukan dengan dua cara:
-
dengan MsgLoadOptions.PreserveRtfContent properti dari MsgLoadOptions class;
-
dengan MailConversionOptions.PreserveRtfContent properti dari MailConversionOptions class;
Kedua properti mendapatkan atau mengatur nilai yang menunjukkan apakah akan mempertahankan badan rtf dalam MailMessage.
Potongan kode berikut menunjukkan cara mengonversi file MSG ke EML dan mempertahankan badan RTF:
var loadOptions = new MsgLoadOptions
{
PreserveRtfContent = true
};
var eml = MailMessage.Load("my.msg", loadOptions);
var conversionOptions = new MailConversionOptions
{
PreserveRtfContent = true
};
var msg = MapiMessage.Load("my.msg");
var eml = msg.ToMailMessage(conversionOptions);
Menangani File Templat Outlook (.OFT)
Templat Outlook sangat berguna ketika Anda ingin mengirim pesan email serupa berulang kali. Alih-alih menyiapkan pesan dari awal setiap kali, pertama siapkan pesan di Outlook dan simpan sebagai Outlook Template (OFT). Setelah itu, kapan pun Anda perlu mengirim pesan, Anda dapat membuatnya dari templat tersebut, menghemat waktu menulis teks yang sama di badan atau baris subjek, mengatur format, dan sebagainya. Aspose.Email’s MailMessage kelas dapat digunakan untuk memuat dan membaca file templat Outlook (OFT). Setelah templat Outlook dimuat dalam sebuah instance dari MailMessage kelas, Anda dapat memperbarui pengirim, penerima, isi, subjek, dan properti lain. Setelah memperbarui properti:
- Kirim email menggunakan SmtpClient kelas atau
- Simpan pesan sebagai MSG dan lakukan pembaruan/validasi lebih lanjut menggunakan Microsoft Outlook.
Dalam contoh kode di bawah, kami:
- Muat templat menggunakan MailMessage kelas.
- Perbarui beberapa properti.
- Simpan pesan dalam format MSG.
Potongan kode berikut menunjukkan cara memuat file OFT, memperbarui pesan, dan menyimpannya dalam format MSG.
Simpan File MSG sebagai Templat
Cuplikan kode berikut menunjukkan cara menyimpan file MSG Outlook sebagai templat.
Tentukan Jenis Pesan MAPI (OFT atau MSG)
Saat memuat objek MapiMessage dari file, Anda mungkin perlu menentukan apakah pesan yang dimuat adalah file template atau file email biasa. Dengan menggunakan IsTemplate properti dari MapiMessage kelas, Anda dapat secara akurat mendeteksi apakah email adalah template atau tidak. Fungsionalitas ini dapat berguna saat menangani dan memproses berbagai jenis file email dalam aplikasi dan sistem.
Contoh kode di bawah ini menunjukkan cara menentukan apakah MapiMessage berformat OFT atau MSG:
var msg = MapiMessage.Load("message.msg");
var isOft = msg.IsTemplate; // returns false
var msg = MapiMessage.Load("message.oft");
var isOft = msg.IsTemplate; // returns true
Simpan MapiMessage atau MailMessage dalam Format OFT
The SaveOptions kelas memungkinkan Anda menentukan opsi tambahan saat menyimpan MailMessage atau MapiMessage ke format tertentu.
Contoh kode berikut menunjukkan cara menyimpan pesan ke format OFT:
// Save the MailMessage to OFT format
using (var eml = MailMessage.Load("message.eml"))
{
eml.Save("message.oft", SaveOptions.DefaultOft);
// or alternative way #2
var saveOptions = new MsgSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
eml.Save("message.oft", saveOptions);
// or alternative way #3
saveOptions = SaveOptions.CreateSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
eml.Save("message.oft", saveOptions);
}
// Save the MapiMessage to OFT format
using (var msg = MapiMessage.Load("message.msg"))
{
msg.Save("message.oft", SaveOptions.DefaultOft);
// or alternative way #2
var saveOptions = new MsgSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
msg.Save("message.oft", saveOptions);
// or alternative way #3
saveOptions = SaveOptions.CreateSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
msg.Save("message.oft", saveOptions);
}
Mengelola Pesan yang Ditandatangani Secara Digital
Aspose.Email mengimplementasikan algoritma objek email S/MIME secara lengkap. Ini memberikan API kemampuan penuh untuk mempertahankan tanda tangan digital saat mengonversi pesan antar format.
Pertahankan Tanda Tangan selama Konversi EML ke MSG
Aspose.Email mempertahankan tanda tangan digital saat mengonversi dari EML ke MSG. Cuplikan kode berikut menunjukkan cara mengonversi dari EML ke MSG.
Konversi Pesan S/MIME dari MSG ke EML
Aspose.Email mempertahankan tanda tangan digital saat mengonversi dari MSG ke EML seperti yang ditunjukkan pada cuplikan kode berikut.
Periksa Tanda Tangan Email Aman
Fitur berikut tersedia untuk memeriksa tanda tangan objek MapiMessage.
- SecureEmailManager kelas untuk memeriksa tanda tangan email yang aman.
- SmimeResult kelas untuk menyimpan hasil pemeriksaan.
- SecureEmailManager.CheckSignature(MapiMessage msg) metode.
- SecureEmailManager.CheckSignature(MapiMessage msg, X509Certificate2 certificateForDecrypt) metode.
- SecureEmailManager.CheckSignature(MapiMessage msg, X509Certificate2 certificateForDecrypt, X509Store store) metode.
Contoh kode di bawah ini menunjukkan cara menerapkan fitur-fitur tersebut dalam proyek Anda:
var msg = MapiMessage.Load(fileName, new EmlLoadOptions());
var result = new SecureEmailManager().CheckSignature(msg);
var certFileName = "cert.pfx";
var cert = new X509Certificate2(certFileName, "pass");
var eml = MapiMessage.Load(fileName);
var store = new X509Store();
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();
var result = new SecureEmailManager().CheckSignature(eml, cert, store);
Hapus Tanda Tangan dari MapiMessages
Untuk kompatibilitas yang lebih baik, MapiMessage.RemoveSignature metode dan MapiMessage.IsSigned properti digunakan untuk menghapus tanda tangan digital dari sebuah pesan.
Potongan kode berikut menunjukkan cara mengimplementasikan fitur-fitur ini ke dalam proyek Anda:
var msg = MapiMessage.Load(fileName);
if (msg.IsSigned)
{
var unsignedMsg = msg.RemoveSignature();
}
Dekripsi MapiMessages dengan Sertifikat
Jika Anda memiliki pesan MAPI terenkripsi dan perlu mendekripsinya menggunakan kunci pribadi yang disimpan dalam sertifikat, fitur Aspose.Email berikut dapat berguna:
- MapiMessage.IsEncrypted - Mendapatkan nilai yang menunjukkan apakah pesan terenkripsi.
- MapiMessage.Decrypt() - Mendekripsi pesan ini (metode mencari penyimpanan My pengguna dan komputer saat ini untuk sertifikat dan kunci pribadi yang sesuai).
- MapiMessage.Decrypt(X509Certificate2 certificate) - Mendekripsi pesan ini dengan sertifikat.
Cuplikan kode berikut menunjukkan cara bekerja dengan pesan MAPI terenkripsi:
var privateCert = new X509Certificate2(privateCertFile, "password");
var msg = MapiMessage.Load("encrypted.msg");
if (msg.IsEncrypted);
{
var decryptedMsg = msg.Decrypt(privateCert);
}
Atur Kategori Warna untuk File MSG
Kategori warna menandai pesan email untuk pentingnya atau kategorinya. Microsoft Outlook memungkinkan pengguna menugaskan kategori warna untuk membedakan email. Untuk menangani kategori warna, gunakan FollowUpManager. Berisi fungsi-fungsi seperti AddCategory, RemoveCategory, ClearCategories dan GetCategories.
- AddCategory mengambil MapiMessage dan string kategori warna, misalnya "Kategori Ungu" atau "Kategori Merah" sebagai argumen.
- RemoveCategory mengambil MapiMessage dan string kategori warna yang akan dihapus dari pesan.
- ClearCategories digunakan untuk menghapus semua kategori warna dari pesan.
- GetCategories digunakan untuk mengambil semua kategori warna dari pesan tertentu.
Contoh berikut melakukan tugas-tugas seperti yang diberikan di bawah:
- Tambahkan kategori warna.
- Tambahkan kategori warna lain.
- Ambil daftar semua kategori.
- Hapus semua kategori.
Akses Informasi Tindak Lanjut dalam File MSG
API Aspose.Email menyediakan kemampuan untuk mengakses informasi tindak lanjut dari pesan yang dikirim atau diterima. Ia dapat mengambil informasi Baca, Tanda Terima Baca Pengiriman, dan hasil voting dari file pesan.
Ambil Informasi Tanda Terima Baca dan Pengiriman
Cuplikan kode berikut menunjukkan cara mengambil informasi tanda terima baca dan pengiriman.
Buat Pesan Forward dan Reply
API Aspose.Email menyediakan kemampuan untuk membuat dan memformat pesan forward dan reply. ReplyMessageBuilder dan ForwardMessageBuilder class API digunakan untuk membuat pesan Reply dan Forward masing-masing. Pesan Reply atau Forward dapat ditentukan untuk dibuat menggunakan salah satu mode dari OriginalMessageAdditionMode enum. Enum ini memiliki nilai-nilai berikut:
- OriginalMessageAdditionMode.None - Pesan asli tidak disertakan dalam pesan respons.
- OriginalMessageAdditionMode.Attachment - Pesan asli disertakan sebagai lampiran dalam pesan respons
- OriginalMessageAdditionMode.Textpart - Pesan asli disertakan sebagai teks dalam badan pesan balasan
Buat Pesan Balasan
Potongan kode berikut menunjukkan cara membuat pesan balasan.
Buat Pesan Forward
Potongan kode berikut menunjukkan cara membuat pesan forward.