Керування файлами повідомлень за допомогою Aspose.Email.Outlook
Конвертація MSG у MIME‑повідомлення
API Aspose.Email забезпечує можливість конвертування файлів 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 з збереженням заголовка категорії
API Aspose.Email надає можливість додати заголовок категорії під час конвертації повідомлення у 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 клас можна використовувати для завантаження та читання файлу шаблону Outlook (OFT). Після завантаження шаблону Outlook в екземпляр 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 та рядок назви кольорової категорії, наприклад, "Фіолетова категорія" або "Червона категорія", як аргументи.
- 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
API Aspose.Email забезпечує можливість доступу до інформації про подальші дії у надісланих або отриманих повідомленнях. Воно може отримати інформацію про підтвердження прочитання, доставки та результати голосування з файлу повідомлення.
Отримання інформації про підтвердження прочитання та доставки
У наведеному фрагменті коду показано, як отримати інформацію про підтвердження прочитання та доставки.
// 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());
}
Створення листів Forward та Reply
Aspose.Email API надає можливість створювати та форматувати листи Forward та Reply. Метод ReplyMessageBuilder і ForwardMessageBuilder класи API використовуються для створення відповідних листів Reply та Forward. Лист Reply або Forward можна створити, використовуючи будь‑який з режимів OriginalMessageAdditionMode перелічення. Це перелічення має наступні значення:
- 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");