MapiConversionOptions.setPreserveEmptyDates(boolean)
Конвертация 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 и строку цветовой категории, например, "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
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());
}
Создание пересылаемых и ответных сообщений и Aspose.Email API предоставляет возможность создавать и форматировать сообщения‑пересылки и‑ответы. ReplyMessageBuilder ForwardMessageBuilder классы API используются для создания ответных и пересылаемых сообщений соответственно. Сообщение‑ответ или‑пересылка может быть создано с использованием любого из режимов
- 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");
Создание сообщения‑пересылки
Ниже показан фрагмент кода, демонстрирующий, как создать сообщение‑пересылку. Сохранение пустых дат при конвертации сообщения
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");