Створення та збереження файлів MSG
Aspose.Email підтримує створення файлів Outlook message (MSG). У цій статті пояснюється, як:
- Створити повідомлення MSG.
- Створити повідомлення MSG з вкладеннями.
- Створити повідомлення MSG з тілом RTF.
- Зберегти повідомлення як чернетку.
- Робота зі стисканням тіла.
Створення та збереження повідомлень Outlook
The 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 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);