Управление на файлове със съобщения с Aspose.Email.Outlook
Конвертиране на MSG към MIME съобщение
Aspose.Email API предоставя възможност за конвертиране на MSG файлове към MIME съобщения, като използва toMailMessage метод.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
MapiMessage msg = new MapiMessage(
"sender@test.com",
"recipient1@test.com; recipient2@test.com",
"Test Subject",
"This is a body of message.");
MailConversionOptions options = new MailConversionOptions();
options.setConvertAsTnef(true);
MailMessage mail = msg.toMailMessage(options);
Конвертиране на MSG към EML със запазване на RTF тялото
API предоставя следните методи за запазване на RTF тялото при конвертиране на MSG към EML:
- MsgLoadOptions.PreserveRtfContent - Получава или задава стойност, указваща дали да се запази rtf тялото в MailMessage.
- MailConversionOptions.PreserveRtfContent - Получава или задава стойност, указваща дали да се запази rtf тялото в MailMessage.
Следните примери с код демонстрират как да се запази rtf телото в MailMessage:
- използвайки MsgLoadOptions.PreserveRtfContent
MsgLoadOptions options = new MsgLoadOptions();
options.setPreserveRtfContent(true);
MailMessage message = MailMessage.load("fileName", options);
- използвайки MailConversionOptions.PreserveRtfContent
MapiMessage mapi = MapiMessage.load("fileName");
MailConversionOptions options = new MailConversionOptions();
options.setPreserveRtfContent(true);
MailMessage message = mapi.toMailMessage(options);
Конвертиране на MSG към MHTML със запазване на заглавката за категория
Aspose.Email API предоставя възможност за добавяне на заглавка за категория при конвертиране на съобщение към MHTML. Тази функция се задава чрез MhtSaveOptions клас като допълнителна опция при запазване на MailMessage във формат Mhtml.
Следният пример с код демонстрира как да създадете MHT (MHTML) файл от обект MapiMessage, персонализирате форматирането и заглавките на MHT файла, използвайки MhtSaveOptions, зададете категории за имейл съобщението и след това модифицирате шаблоните за формат и заглавките за рендериране на MHT файла преди да го запазите.
MapiMessage msg = new MapiMessage("from@aaa.com", "to@aaa.com", "subj", "body");
msg.setCategories(new String[] { "Urgently", "Important" });
MhtSaveOptions saveOptions = new MhtSaveOptions();
saveOptions.getFormatTemplates().set_Item(MhtTemplateName.CATEGORIES,
saveOptions.getFormatTemplates().get_Item(MhtTemplateName.CATEGORIES).replace("Categories", "Les catégories"));
saveOptions.getRenderingHeaders().add(MhtTemplateName.CATEGORIES);
msg.save("fileName.mhtml", saveOptions);
Четене и записване на Outlook шаблон файл (.OFT)
Outlook шаблоните са много полезни, когато искате да изпращате подобно имейл съобщение отново и отново. Вместо да подготвяте съобщението от нулата всеки път, първо създайте съобщението в Outlook и го запазете като Outlook шаблон (OFT). След това, когато трябва да изпратите съобщението, можете да го създадете от шаблона, спестявайки време за писане на същия текст в тялото или темата, настройване на форматирането и т.н. Aspose.Email MailMessage class може да се използва за зареждане и четене на Outlook шаблон (OFT) файл. След като шаблонът е зареден в инстанция на MailMessage клас, можете да актуализирате подателя, получателя, съдържанието, темата и други свойства. След актуализиране на свойствата:
- Изпратете имейла, като използвате SmtpClient клас или
- Запазете съобщението като MSG и извършете допълнителни актуализации/валидиране, използвайки Microsoft Outlook.
В примерите с код по-долу, ние:
- Заредете шаблона, като използвате MailMessage клас.
- Актуализирайте някои от свойствата.
- Запазете съобщението във формат MSG.
Следният кодов фрагмент показва как да заредите OFT файл, актуализирате съобщението и го запазите във формат 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/";
// Load the Outlook template (OFT) file in MailMessage's instance
MailMessage message = MailMessage.load(dataDir + "sample.oft", new MsgLoadOptions());
// Set the sender and recipients information
String senderDisplayName = "John";
String senderEmailAddress = "john@abc.com";
String recipientDisplayName = "William";
String recipientEmailAddress = "william@xzy.com";
message.setSender(new MailAddress(senderEmailAddress, senderDisplayName));
message.getTo().addMailAddress(new MailAddress(recipientEmailAddress, recipientDisplayName));
message.setHtmlBody(message.getHtmlBody().replace("DisplayName", "<b>" + recipientDisplayName + "</b>"));
// Set the name, location and time in email body
String meetingLocation = "<u>" + "Hall 1, Convention Center, New York, USA" + "</u>";
String meetingTime = "<u>" + "Monday, June 28, 2010" + "</u>";
message.setHtmlBody(message.getHtmlBody().replace("MeetingPlace", meetingLocation));
message.setHtmlBody(message.getHtmlBody().replace("MeetingTime", meetingTime));
// Save the message in MSG format and open in Office Outlook
MapiMessage mapimessage = MapiMessage.fromMailMessage(message);
mapimessage.setMessageFlags(MapiMessageFlags.MSGFLAG_UNSENT);
mapimessage.save(dataDir + "ReadAndWritingOutlookTemplateFile_out.msg");
Запазване на Outlook MSG файл като шаблон
Следният кодов фрагмент показва как да запазите 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/";
try (MapiMessage mapi = new MapiMessage("test@from.to", "test@to.to", "template subject", "Template body")) {
mapi.saveAsTemplate(dataDir + "mapiToOft.msg");
}
Задаване на цветова категория за Outlook MSG файлове
Цветовата категория маркира имейл съобщение за определена важност или категория. Microsoft Outlook позволява на потребителите да задават цветови категории за разграничаване на имейли. За работа с цветова категория използвайте FollowUpManager. Съдържа функции като addCategory, removeCategory, clearCategories и getCategories.
- addCategory приема MapiMessage и низа на цветова категория, например "Purple Category" или "Red Category", като аргументи.
- removeCategory приема MapiMessage и низът на цветова категория, който да се премахне от съобщението.
- clearCategories се използва за премахване на всички цветови категории от съобщението.
- getCategories се използва за извличане на всички цветови категории от конкретно съобщение.
Следният пример изпълнява задачите, както е дадено по-долу:
- Добавете цветова категория.
- Добавете още една цветова категория.
- Получете списъка с всички категории.
- Премахнете всички категории.
// 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/";
MapiMessage msg = MapiMessage.fromFile(dataDir + "message.msg");
// Add Two category
FollowUpManager.addCategory(msg, "Purple Category");
FollowUpManager.addCategory(msg, "Red Category");
// Retrieve the list of available categories
IList categories = FollowUpManager.getCategories(msg);
// Remove the specified category and then Clear all categories
FollowUpManager.removeCategory(msg, "Red Category");
FollowUpManager.clearCategories(msg);
Достъп до информация за проследяване от MSG файл
Aspose.Email API предоставя възможност за достъп до информацията за проследяване от изпратено или получено съобщение. Тя може да извлича информация за разписка за прочитане, разписка за доставка и резултати от гласуване от файл със съобщение.
Извличане на информация за разписка за прочитане и доставка
Следният кодов фрагмент показва как да извлечете информация за разписка за прочитане и доставка.
// 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/";
MapiMessage msg = MapiMessage.fromFile(dataDir + "message.msg");
for (MapiRecipient recipient : msg.getRecipients()) {
System.out.println("Recipient: " + recipient.getDisplayName());
// Get the PR_RECIPIENT_TRACKSTATUS_TIME_DELIVERY property
System.out.println("Delivery time: " + recipient.getProperties().get_Item(MapiPropertyTag.PR_RECIPIENT_TRACKSTATUS_TIME_DELIVERY).getDateTime());
// Get the PR_RECIPIENT_TRACKSTATUS_TIME_READ property
System.out.println("Read time" + recipient.getProperties().get_Item(MapiPropertyTag.PR_RECIPIENT_TRACKSTATUS_TIME_READ).getDateTime());
}
Създаване на съобщения за препращане и отговор
Aspose.Email API предоставя възможност за създаване и форматиране на съобщения за препращане и отговор. Методът ReplyMessageBuilder и ForwardMessageBuilder класовете на API се използват за създаване съответно на Reply и Forward съобщения. Reply или Forward съобщение може да бъде създадено, използвайки който и да е от режимите на OriginalMessageAdditionMode enum. Този enum има следните стойности:
- OriginalMessageAdditionMode.None – Оригиналното съобщение не е включено в отговорното съобщение.
- OriginalMessageAdditionMode.Attachment – Оригиналното съобщение е включено като прикачен файл в отговорното съобщение
- OriginalMessageAdditionMode.Textpart – Оригиналното съобщение е включено като текст в тялото на отговорното съобщение
Създаване на отговорно съобщение
Следният кодов фрагмент показва как да създадете отговор на съобщение.
// 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/";
MapiMessage originalMsg = MapiMessage.fromFile(dataDir + "message1.msg");
ReplyMessageBuilder builder = new ReplyMessageBuilder();
// Set ReplyMessageBuilder Properties
builder.setReplyAll(true);
builder.setAdditionMode(OriginalMessageAdditionMode.Textpart);
builder.setResponseText(
"<p><b>Dear Friend,</b></p> I want to do is introduce my co-author and co-teacher. <p><a href=\"www.google.com\">This is a first link</a></p><p><a href=\"www.google.com\">This is a second link</a></p>");
MapiMessage replyMsg = builder.buildResponse(originalMsg);
replyMsg.save(dataDir + "reply_out.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/";
MapiMessage originalMsg = MapiMessage.fromFile(dataDir + "message1.msg");
ForwardMessageBuilder builder = new ForwardMessageBuilder();
builder.setAdditionMode(OriginalMessageAdditionMode.Textpart);
MapiMessage forwardMsg = builder.buildResponse(originalMsg);
forwardMsg.save(dataDir + "forward_out.msg");
Запазване на празни дати при конвертиране на съобщение
MapiConversionOptions.setPreserveEmptyDates(boolean) свойство, указващо дали е необходимо да се запазят празните дати при конвертиране на съобщение. Това API се появява в Aspose.Email 21.5. Следният кодов фрагмент показва как да запазите празните дати.
MailMessage mailMessage = MailMessage.load("message.eml");
System.out.println(mailMessage.getDate()); // zero date
MapiConversionOptions mco = MapiConversionOptions.getUnicodeFormat();
// keep empty dates when converting a message
mco.setPreserveEmptyDates(true);
MapiMessage mapiMessage = MapiMessage.fromMailMessage(mailMessage, mco);
System.out.println(mapiMessage.getClientSubmitTime()); // zero date
// check zero date
if (mapiMessage.getClientSubmitTime().equals(JavaHelper.ZERO_DATE))
System.out.println("ZERO DATE");