Zarządzanie plikami wiadomości przy użyciu Aspose.Email.Outlook
Konwertowanie MSG do wiadomości MIME
API Aspose.Email umożliwia konwersję plików MSG do wiadomości MIME przy użyciu toMailMessage metoda.
// 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);
Konwertowanie MSG do EML z zachowaniem treści RTF
API udostępnia następujące metody do zachowania treści RTF podczas konwertowania MSG do EML:
- MsgLoadOptions.PreserveRtfContent - Pobiera lub ustawia wartość określającą, czy zachować treść rtf w MailMessage.
- MailConversionOptions.PreserveRtfContent - Pobiera lub ustawia wartość określającą, czy zachować treść rtf w MailMessage.
Poniższe przykłady kodu pokazują, jak zachować treść rtf w MailMessage:
- przy użyciu MsgLoadOptions.PreserveRtfContent
MsgLoadOptions options = new MsgLoadOptions();
options.setPreserveRtfContent(true);
MailMessage message = MailMessage.load("fileName", options);
- przy użyciu MailConversionOptions.PreserveRtfContent
MapiMessage mapi = MapiMessage.load("fileName");
MailConversionOptions options = new MailConversionOptions();
options.setPreserveRtfContent(true);
MailMessage message = mapi.toMailMessage(options);
Konwertowanie MSG do MHTML z zachowaniem nagłówka kategorii
API Aspose.Email umożliwia dodanie nagłówka kategorii podczas konwertowania wiadomości do MHTML. Funkcję tę określa MhtSaveOptions klasa jako dodatkowa opcja przy zapisywaniu MailMessage w formacie Mhtml.
Poniższy przykład kodu demonstruje, jak utworzyć plik MHT (MHTML) z obiektu MapiMessage, dostosować formatowanie i nagłówki pliku MHT przy użyciu MhtSaveOptions, ustawić kategorie dla wiadomości e‑mail, a następnie zmodyfikować szablony formatowania i nagłówki renderowania dla pliku MHT przed jego zapisaniem.
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);
Odczyt i zapis pliku szablonu Outlook (.OFT)
Szablony Outlook są bardzo przydatne, gdy chcesz wielokrotnie wysyłać podobną wiadomość e‑mail. Zamiast przygotowywać wiadomość od zera za każdym razem, najpierw przygotuj wiadomość w Outlook i zapisz ją jako Szablon Outlook (OFT). Następnie, kiedy potrzebujesz wysłać wiadomość, możesz utworzyć ją z szablonu, oszczędzając czas na pisanie tego samego tekstu w treści lub temacie, ustawianie formatowania itp. Aspose.Email MailMessage klasa może być użyta do załadowania i odczytania pliku szablonu Outlook (OFT). Gdy szablon Outlook zostanie załadowany w instancji MailMessage klasy, możesz zaktualizować nadawcę, odbiorcę, treść, temat i inne właściwości. Po zaktualizowaniu właściwości:
- Wyślij e‑mail przy użyciu SmtpClient klasy lub
- Zapisz wiadomość jako MSG i przeprowadź dalsze aktualizacje/walidację przy użyciu Microsoft Outlook.
W poniższych przykładach kodu, my:
- Załaduj szablon przy użyciu MailMessage klasa.
- Zaktualizuj niektóre właściwości.
- Zapisz wiadomość w formacie MSG.
Poniższy fragment kodu pokazuje, jak załadować plik OFT, zaktualizować wiadomość i zapisać ją w formacie 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");
Zapisywanie pliku Outlook MSG jako szablonu
Poniższy fragment kodu pokazuje, jak zapisać plik Outlook MSG jako szablon.
// 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");
}
Ustawianie kategorii kolorystycznej dla plików Outlook MSG
Kategoria kolorystyczna oznacza wiadomość e‑mail jako mającą określoną ważność lub typ. Microsoft Outlook pozwala użytkownikom przypisywać kategorie kolorystyczne w celu odróżnienia e‑maili. Aby obsłużyć kategorię kolorystyczną, użyj FollowUpManager. Zawiera funkcje takie jak addCategory, removeCategory, clearCategories i getCategories.
- addCategory przyjmuje MapiMessage oraz ciąg tekstowy kategorii kolorystycznej, na przykład "Purple Category" lub "Red Category" jako argumenty.
- removeCategory przyjmuje MapiMessage oraz ciąg tekstowy kategorii kolorystycznej do usunięcia z wiadomości.
- clearCategories służy do usunięcia wszystkich kategorii kolorystycznych z wiadomości.
- getCategories służy do pobrania wszystkich kategorii kolorystycznych z określonej wiadomości.
Poniższy przykład wykonuje zadania wymienione poniżej:
- Dodaj kategorię kolorystyczną.
- Dodaj kolejną kategorię kolorystyczną.
- Pobierz listę wszystkich kategorii.
- Usuń wszystkie kategorie.
// 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);
Uzyskiwanie informacji zwrotnych z pliku MSG
API Aspose.Email umożliwia dostęp do informacji zwrotnych z wysłanej lub otrzymanej wiadomości. Może pobrać informacje o potwierdzeniach odczytu, dostarczenia oraz wyniki głosowania z pliku wiadomości.
Pobieranie informacji o potwierdzeniach odczytu i dostarczenia
Poniższy fragment kodu pokazuje, jak pobrać informacje o potwierdzeniach odczytu i dostarczenia.
// 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());
}
Tworzenie wiadomości przekazywanych i odpowiedzi
Aspose.Email API zapewnia możliwość tworzenia i formatowania wiadomości przekazywanych i odpowiedzi. ReplyMessageBuilder i ForwardMessageBuilder klasy API są używane do tworzenia wiadomości Reply i Forward odpowiednio. Wiadomość Reply lub Forward może być tworzona przy użyciu dowolnego z trybów OriginalMessageAdditionMode enum. Ten enum ma następujące wartości:
- OriginalMessageAdditionMode.None – Oryginalna wiadomość nie jest dołączona w wiadomości odpowiedzi.
- OriginalMessageAdditionMode.Attachment – Oryginalna wiadomość jest dołączona jako załącznik w wiadomości odpowiedzi
- OriginalMessageAdditionMode.Textpart – Oryginalna wiadomość jest dołączona jako tekst w treści wiadomości odpowiedzi
Tworzenie wiadomości odpowiedzi
Poniższy fragment kodu pokazuje, jak utworzyć wiadomość odpowiedzi.
// 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");
Tworzenie wiadomości przekazanej dalej
Poniższy fragment kodu pokazuje, jak utworzyć wiadomość przekazaną dalej.
// 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");
Zachowaj puste daty przy konwertowaniu wiadomości
MapiConversionOptions.setPreserveEmptyDates(boolean) właściwość wskazująca, czy należy zachować puste daty przy konwersji wiadomości. To API pojawia się w Aspose.Email 21.5. Poniższy fragment kodu pokazuje, jak zachować puste daty.
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");