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:
- MsgLoadOptions.PreserveRtfContent - Gibt an, ob der RTF‑Body in MailMessage beibehalten werden soll, bzw. legt diesen Wert fest.
- MailConversionOptions.PreserveRtfContent - Gibt an, ob der RTF‑Body in MailMessage beibehalten werden soll, bzw. legt diesen Wert fest.
Die folgenden Codebeispiele zeigen, wie man den RTF‑Body in MailMessage beibehält:
- unter Verwendung von MsgLoadOptions.PreserveRtfContent
MsgLoadOptions options = new MsgLoadOptions();
options.setPreserveRtfContent(true);
MailMessage message = MailMessage.load("fileName", options);
- unter Verwendung von MailConversionOptions.PreserveRtfContent
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:
- Laden Sie die Vorlage mit dem MailMessage Klasse.
- Einige Eigenschaften aktualisieren.
- 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 Farbkategorie für Outlook‑MSG‑Dateien
Eine Farbkategorie kennzeichnet eine E‑Mail-Nachricht hinsichtlich einer Art von Wichtigkeit oder Kategorie. Microsoft Outlook ermöglicht es Benutzern, Farbkategorien zuzuweisen, um E‑Mails zu unterscheiden. Um die Farbkategorie zu verarbeiten, verwenden Sie die FollowUpManager. Sie enthält Funktionen wie addCategory, removeCategory, clearCategories und getCategories.
- addCategory nimmt MapiMessage und die Farbkategorie‑Zeichenkette, zum Beispiel "Lila Kategorie" oder "Rote Kategorie", als Argumente.
- removeCategory nimmt MapiMessage und die Farbkategorie‑Zeichenkette, die aus der Nachricht entfernt werden soll.
- clearCategories wird verwendet, um alle Farbkategorien aus der Nachricht zu entfernen.
- getCategories wird verwendet, um alle Farbkategorien aus einer bestimmten Nachricht abzurufen.
Das folgende Beispiel führt die nachstehenden Aufgaben aus:
- Eine Farbkategorie hinzufügen.
- Eine weitere Farbkategorie hinzufügen.
- Die Liste aller Kategorien abrufen.
- 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");