Създаване и запазване на MSG файлове

Aspose.Email поддържа създаването на Outlook съобщения (MSG) файлове. Тази статия обяснява как да:

  • Създайте MSG съобщения.
  • Създайте MSG съобщения с прикачени файлове.
  • Създайте MSG съобщение с RTF тяло.
  • Запазете съобщение като чернова.
  • Работа с компресиране на тялото.

Създаване и запазване на Outlook съобщения

Този 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 съобщения (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);