Membuat dan Menyimpan File MSG
Aspose.Email mendukung pembuatan file Outlook message (MSG). Artikel ini menjelaskan cara:
- Buat pesan MSG.
- Buat pesan MSG dengan lampiran.
- Buat pesan MSG dengan tubuh RTF.
- Simpan pesan sebagai draf.
- Bekerja dengan kompresi tubuh.
Membuat dan Menyimpan Pesan Outlook
The MailMessage kelas memiliki save metode yang dapat menyimpan file Outlook MSG ke disk atau stream. Potongan kode di bawah ini membuat instance dari MailMessage kelas, atur properti seperti from, to, subject, dan body. Metode save metode mengambil nama file sebagai argumen. Selain itu, Outlook Messages dapat dibuat dengan sebuah tubuh RTF terkompresi menggunakan MapiConversionOptions.
- Buat instance baru dari MailMessage kelas dan mengatur properti From, To, Subject, dan Body.
- Panggil MapiMessage kelas fromMailMessage metode yang menerima objek dari MailMessage tipe. Metode fromMailMessage metode mengonversi MailMessage menjadi sebuah MapiMessage (MSG).
- Panggil MapiMessage.save metode untuk menyimpan file MSG.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";
// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();
// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setBody("This is test body");
// Create an instance of the MapiMessage class and pass MailMessage as argument
MapiMessage outlookMsg = MapiMessage.fromMailMessage(mailMsg);
// Save the message (MSG) file
String strMsgFile = "CreatingAndSavingOutlookMessages_out.msg";
outlookMsg.save(dataDir + strMsgFile);
Membuat File MSG dengan Lampiran
Dalam contoh di atas, kami membuat file MSG sederhana. Aspose.Email juga mendukung penyimpanan file pesan dengan lampiran. Yang perlu Anda lakukan hanyalah menambahkan lampiran ke MailMessage instance. Tambahkan lampiran dengan memanggil metode addItem pada MailMessage.Attachments koleksi.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";
String[] files = new String[2];
files[0] = "attachment.doc";
files[1] = "attachment.png";
// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();
// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setBody("This is test body");
// Add the attachments
for (String strFileName : files)
{
mailMsg.getAttachments().addItem(new Attachment(strFileName));
}
// Create an instance of MapiMessage class and pass MailMessage as argument
MapiMessage outlookMsg = MapiMessage.fromMailMessage(mailMsg);
String strMsgFile = "CreateMessagesWithAttachments.msg";
outlookMsg.save(dataDir + strMsgFile);
Membuat File MSG dengan Tubuh RTF
Anda juga dapat membuat file Outlook Message (MSG) dengan tubuh teks kaya (RTF) menggunakan Aspose.Email. Tubuh RTF mendukung pemformatan teks. Buat satu dengan mengatur MailMessage.HtmlBody property. Ketika Anda mengonversi sebuah MailMessage instance menjadi sebuah MapiMessage instance, tubuh HTML dikonversi menjadi RTF. Dengan cara ini, pemformatan tubuh email dipertahankan.
Contoh berikut membuat file MSG dengan tubuh RTF. Ada satu heading, pemformatan tebal dan garis bawah yang diterapkan dalam tubuh HTML. Pemformatan ini dipertahankan ketika HTML dikonversi menjadi RTF.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";
// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();
// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setHtmlBody("<h3>rtf example</h3><p>creating an <b><u>outlook message (msg)</u></b> file using Aspose.Email.</p>");
MapiMessage outlookMsg = MapiMessage.fromMailMessage(mailMsg);
outlookMsg.save(dataDir + "CreatingMSGFilesWithRTFBody_out.msg");
Menyimpan Pesan dalam Status Draf
Email disimpan sebagai draf ketika seseorang telah mulai mengeditnya tetapi ingin kembali ke sana untuk menyelesaikannya nanti. Aspose.Email mendukung penyimpanan pesan email dalam status draf dengan mengatur flag pesan. Di bawah ini contoh kode untuk menyimpan pesan email Outlook (MSG) sebagai draf.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";
// Change properties of an existing MSG file
String strExistingMsg = "message.msg";
// Load the existing file in MailMessage and Change the properties
MailMessage msg = MailMessage.load(dataDir + strExistingMsg, new MsgLoadOptions());
msg.setSubject(msg.getSubject() + " NEW SUBJECT (updated by Aspose.Email)");
msg.setHtmlBody(msg.getHtmlBody() + " NEW BODY (udpated by Aspose.Email)");
// Create an instance of type MapiMessage from MailMessage, Set message flag to un-sent (draft status) and Save it
MapiMessage mapiMsg = MapiMessage.fromMailMessage(msg);
mapiMsg.setMessageFlags(MapiMessageFlags.MSGFLAG_UNSENT);
mapiMsg.save(dataDir + "SavingMessageInDraftStatus_out.msg");
Implikasi Kompresi Tubuh
Metode kompresi tubuh RTF dapat digunakan untuk menghasilkan MSG berukuran lebih kecil. Namun, ini mengakibatkan kecepatan pembuatan yang lebih lambat. Untuk membuat pesan dengan kecepatan yang lebih baik, atur flag menjadi false. Flag ini, pada gilirannya, memengaruhi PST yang dibuat: file MSG yang lebih kecil menghasilkan PST yang lebih kecil, dan file MSG yang besar menghasilkan pembuatan PST yang lebih lambat.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
String fileName = "outlook/test.msg";
MailMessage message = MailMessage.load(fileName);
MapiConversionOptions options = new MapiConversionOptions();
options.setUseBodyCompression(true);
MapiMessage ae_mapi = MapiMessage.fromMailMessage(message, options);