Създаване и запазване на MSG файлове
Aspose.Email поддържа създаването на Outlook съобщения (MSG) файлове. Тази статия обяснява как да:
- Създайте MSG съобщения.
- Създайте MSG съобщения с прикачени файлове.
- Създайте MSG съобщение с RTF тяло.
- Запазете съобщение като чернова.
- Работа с компресиране на тялото.
Създаване и запазване на Outlook съобщения
Този MailMessage клас има запис метод, който може да запази Outlook MSG файлове на диск или поток. Кодовите фрагменти по-долу създават екземпляр на MailMessage клас, задайте свойства като from, to, subject и body. Методът запис методът приема името на файла като аргумент. Допълнително, Outlook съобщенията могат да се създават с компресиран RTF корпус използвайки MapiConversionOptions.
- Създайте нов екземпляр на MailMessage клас и задава свойствата From, To, Subject и Body.
- Извикайте MapiMessage клас fromMailMessage метод, който приема обекта на MailMessage тип. Методът fromMailMessage метод преобразува MailMessage в MapiMessage (MSG).
- Извикайте 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);