Створення та збереження файлів MSG

Aspose.Email підтримує створення файлів Outlook message (MSG). У цій статті пояснюється, як:

  • Створити повідомлення MSG.
  • Створити повідомлення MSG з вкладеннями.
  • Створити повідомлення MSG з тілом RTF.
  • Зберегти повідомлення як чернетку.
  • Робота зі стисканням тіла.

Створення та збереження повідомлень Outlook

The MailMessage клас має зберегти метод, який може зберігати файли Outlook MSG на диск або в потік. Наведені нижче фрагменти коду створюють екземпляр MailMessage клас, встановлює властивості, такі як from, to, subject і body. Метод зберегти метод приймає ім’я файлу як аргумент. Крім того, повідомлення Outlook можна створювати з стиснене тіло RTF використовуючи MapiConversionOptions.

  1. Створіть новий екземпляр MailMessage класу та встановлює властивості From, To, Subject і Body.
  2. Викличте MapiMessage клас fromMailMessage метод, який приймає об’єкт MailMessage тип. fromMailMessage метод конвертує MailMessage у MapiMessage (MSG).
  3. Викличте MapiMessage.save метод для збереження файлу 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);

Створення файлів MSG з вкладеннями

У наведеному вище прикладі, ми створили простий файл MSG. Aspose.Email також підтримує збереження файлів повідомлень з вкладеннями. Все, що потрібно зробити, це додати вкладення до MailMessage екземпляр. Додавайте вкладення, викликаючи метод addItem на MailMessage.Attachments колекція.

// 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);

Створення файлів MSG з тілом RTF

Ви також можете створювати файли Outlook Message (MSG) з тілями у форматі RTF за допомогою Aspose.Email. Тіло RTF підтримує текстове форматування. Створіть його, встановивши MailMessage.HtmlBody властивість. Коли ви конвертуєте MailMessage екземпляр у MapiMessage у випадку, HTML‑тіло конвертується у RTF. Таким чином, форматування тіла листа зберігається.

Наступний приклад створює файл MSG з тілом у форматі RTF. У HTML‑тілі є один заголовок, застосовано форматування жирним та підкресленим. Це форматування зберігається під час конвертації HTML у 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");

Збереження повідомлення у статусі чернетки

Листи зберігаються як чернетки, коли хтось розпочав їх редагування, але бажає повернутися до них, щоб завершити пізніше. Aspose.Email підтримує збереження повідомлень електронної пошти у стані чернетки шляхом встановлення прапорця повідомлення. Нижче наведено приклад коду для збереження Outlook листа (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/";

// 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");

Наслідки стискання тіла

Метод стискання тіла RTF можна використати для створення MSG меншого розміру. Однак це призводить до більш повільної швидкості створення. Щоб створювати повідомлення швидше, встановіть прапорець у false. Цей прапорець, у свою чергу, впливає на створені PST: менші файли MSG дають менші PST, а великі файли MSG призводять до більш повільного створення PST.

// 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);