Verwalten von Nachrichten‑Dateien mit Aspose.Email.Outlook

Konvertierung von MSG zu MIME‑Nachricht

Die Aspose.Email‑API ermöglicht die Konvertierung von MSG‑Dateien zu MIME‑Nachrichten mittels toMailMessage Methode.

// 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);

Konvertierung von MSG zu EML unter Beibehaltung des RTF‑Body

Die API stellt die folgenden Methoden bereit, um den RTF‑Body beim Konvertieren von MSG zu EML beizubehalten:

Die folgenden Codebeispiele zeigen, wie man den RTF‑Body in MailMessage beibehält:

MsgLoadOptions options = new MsgLoadOptions();
options.setPreserveRtfContent(true);
MailMessage message = MailMessage.load("fileName", options);
MapiMessage mapi = MapiMessage.load("fileName");
MailConversionOptions options = new MailConversionOptions();
options.setPreserveRtfContent(true);
MailMessage message = mapi.toMailMessage(options);

Konvertierung von MSG zu MHTML unter Beibehaltung des Kategorie‑Headers

Die Aspose.Email‑API bietet die Möglichkeit, beim Konvertieren einer Nachricht zu MHTML einen Kategorie‑Header hinzuzufügen. Diese Funktion wird spezifiziert durch die MhtSaveOptions Klasse als zusätzliche Option beim Speichern von MailMessage im MHTML‑Format.

Das folgende Codebeispiel demonstriert, wie man aus einem MapiMessage‑Objekt eine MHT‑(MHTML‑)Datei erstellt, die Formatierung und Header der MHT‑Datei mithilfe von MhtSaveOptions anpasst, Kategorien für die E‑Mail‑Nachricht festlegt und anschließend die Format‑Vorlagen sowie Render‑Header der MHT‑Datei vor dem Speichern modifiziert.

 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);

Lesen und Schreiben von Outlook‑Vorlagendateien (.OFT)

Outlook‑Vorlagen sind sehr nützlich, wenn Sie dieselbe E‑Mail‑Nachricht immer wieder senden möchten. Anstatt die Nachricht jedes Mal von Grund auf neu zu erstellen, erstellen Sie sie zunächst in Outlook und speichern sie als Outlook‑Vorlage (OFT). Anschließend können Sie die Nachricht bei Bedarf aus der Vorlage erstellen, was Zeit spart, da Sie denselben Text im Body oder Betreff nicht erneut eingeben, Formatierungen setzen usw. Aspose.Email MailMessage Klasse kann verwendet werden, um eine Outlook‑Vorlage (OFT) zu laden und zu lesen. Sobald die Outlook‑Vorlage in einer Instanz von MailMessage Klasse, können Sie Absender, Empfänger, Body, Betreff und weitere Eigenschaften aktualisieren. Nach dem Aktualisieren der Eigenschaften:

  • Senden Sie die E‑Mail mit dem SmtpClient Klasse oder
  • Speichern Sie die Nachricht als MSG und führen Sie weitere Aktualisierungen/Validierungen mit Microsoft Outlook durch.

In den untenstehenden Codebeispielen:

  1. Laden Sie die Vorlage mit dem MailMessage Klasse.
  2. Einige Eigenschaften aktualisieren.
  3. Die Nachricht im MSG‑Format speichern.

Das folgende Code‑Snippet zeigt, wie Sie die OFT‑Datei laden, die Nachricht aktualisieren und im MSG‑Format speichern.

// 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");

Speichern einer Outlook‑MSG‑Datei als Vorlage

Das folgende Code‑Snippet zeigt, wie Sie die Outlook‑MSG‑Datei als Vorlage speichern.

// 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");
}

Festlegen einer Farb­kategorie für Outlook‑MSG‑Dateien

Eine Farb­kategorie kennzeichnet eine E‑Mail-Nachricht hinsichtlich einer Art von Wichtigkeit oder Kategorie. Microsoft Outlook ermöglicht es Benutzern, Farb­kategorien zuzuweisen, um E‑Mails zu unterscheiden. Um die Farb­kategorie zu verarbeiten, verwenden Sie die FollowUpManager. Sie enthält Funktionen wie addCategory, removeCategory, clearCategories und getCategories.

  • addCategory nimmt MapiMessage und die Farb­kategorie‑Zeichenkette, zum Beispiel "Lila Kategorie" oder "Rote Kategorie", als Argumente.
  • removeCategory nimmt MapiMessage und die Farb­kategorie‑Zeichenkette, die aus der Nachricht entfernt werden soll.
  • clearCategories wird verwendet, um alle Farb­kategorien aus der Nachricht zu entfernen.
  • getCategories wird verwendet, um alle Farb­kategorien aus einer bestimmten Nachricht abzurufen.

Das folgende Beispiel führt die nachstehenden Aufgaben aus:

  1. Eine Farb­kategorie hinzufügen.
  2. Eine weitere Farb­kategorie hinzufügen.
  3. Die Liste aller Kategorien abrufen.
  4. Alle Kategorien entfernen.
// 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);

Zugriff auf Follow‑Up‑Informationen aus MSG‑Datei

Die Aspose.Email‑API bietet die Möglichkeit, Follow‑Up‑Informationen aus einer gesendeten oder empfangenen Nachricht zuzugreifen. Sie kann Lese‑, Zustell‑ und Abstimmungsergebnis‑Informationen aus einer Nachrichtendatei abrufen.

Abrufen von Lese‑ und Zustellbestätigungsinformationen

Das folgende Code‑Snippet zeigt Ihnen, wie Sie Lese‑ und Zustellbestätigungsinformationen abrufen.

// 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());
}

Erstellen von Weiterleitungs‑ und Antwortnachrichten

Aspose.Email‑API bietet die Möglichkeit, Weiterleitungs‑ und Antwortnachrichten zu erstellen und zu formatieren. Die ReplyMessageBuilder und ForwardMessageBuilder Klassen der API werden verwendet, um jeweilig die Reply‑ und Forward‑Nachrichten zu erstellen. Eine Reply‑ oder Forward‑Nachricht kann mittels einer der Modi von OriginalMessageAdditionMode Enum. Dieses Enum hat die folgenden Werte:

  • OriginalMessageAdditionMode.None – Die Originalnachricht wird nicht in die Antwortnachricht aufgenommen.
  • OriginalMessageAdditionMode.Attachment – Die Originalnachricht wird als Anhang in der Antwortnachricht eingefügt
  • OriginalMessageAdditionMode.Textpart – Die Originalnachricht wird als Text im Body der Antwortnachricht eingefügt

Erstellen einer Antwortnachricht

Das folgende Code‑Snippet zeigt, wie eine Antwortnachricht erstellt wird.

// 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");

Erstellen einer Weiterleitungsnachricht

Das folgende Code‑Snippet zeigt, wie eine Weiterleitungsnachricht erstellt wird.

// 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");

Leere Datumsangaben beim Konvertieren einer Nachricht beibehalten

MapiConversionOptions.setPreserveEmptyDates(boolean) Eigenschaft, die angibt, ob beim Konvertieren einer Nachricht leere Datumsangaben beibehalten werden sollen. Diese API erscheint in Aspose.Email 21.5. Das folgende Code‑Snippet zeigt, wie leere Daten erhalten bleiben.

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");