Berichtbestanden beheren met Aspose.Email.Outlook

MSG naar MIME‑bericht converteren

Aspose.Email API biedt de mogelijkheid om MSG‑bestanden te converteren naar MIME‑berichten met behulp van de 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);

MSG naar EML converteren met behoud van RTF‑inhoud

De API biedt de volgende methoden om de RTF‑inhoud te behouden bij het converteren van MSG naar EML:

De volgende codevoorbeelden tonen hoe u de RTF‑inhoud behoudt in MailMessage:

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

MSG naar MHTML converteren met behoud van categoriekop

Aspose.Email API biedt de mogelijkheid om een categoriekop toe te voegen bij het converteren van een bericht naar MHTML. Deze functie wordt gespecificeerd door de MhtSaveOptions klasse als aanvullende optie bij het opslaan van MailMessage in MHTML‑formaat.

Het volgende codevoorbeeld laat zien hoe u een MHT‑ (MHTML‑) bestand maakt van een MapiMessage‑object, de opmaak en headers van het MHT‑bestand aanpast met MhtSaveOptions, categorieën voor het e‑mailbericht instelt en vervolgens de format‑sjablonen en render‑headers voor het MHT‑bestand wijzigt voordat u het opslaat.

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

Lezen en schrijven van Outlook‑sjabloonbestand (.OFT)

Outlook‑sjablonen zijn zeer nuttig wanneer u dezelfde e‑mail herhaaldelijk wilt verzenden. In plaats van elke keer het bericht opnieuw op te stellen, maakt u eerst het bericht in Outlook en slaat u het op als een Outlook‑sjabloon (OFT). Daarna kunt u, wanneer u het bericht moet verzenden, het vanuit het sjabloon maken, waardoor u tijd bespaart bij het schrijven van dezelfde tekst in de inhoud of de onderwerpregel, het instellen van opmaak, enzovoort. Aspose.Email MailMessage klasse kan worden gebruikt om een Outlook‑sjabloon (OFT)-bestand te laden en te lezen. Zodra het Outlook‑sjabloon is geladen in een instantie van de MailMessage klasse, kunt u afzender, ontvanger, inhoud, onderwerp en andere eigenschappen bijwerken. Na het bijwerken van de eigenschappen:

  • Verzend de e‑mail met behulp van de SmtpClient klasse of
  • Sla het bericht op als MSG en voer verdere updates/validaties uit met Microsoft Outlook.

In de onderstaande codevoorbeelden doen we:

  1. Laad de sjabloon met behulp van de MailMessage klasse.
  2. Werk enkele eigenschappen bij.
  3. Sla het bericht op in MSG‑formaat.

Het volgende codefragment toont hoe u het OFT‑bestand laadt, het bericht bijwerkt en opslaat in MSG‑formaat.

// 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‑bestand opslaan als sjabloon

Het volgende codefragment toont hoe u het Outlook MSG‑bestand als sjabloon kunt opslaan.

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

Instellen van kleurcategorie voor Outlook MSG‑bestanden

Een kleurcategorie markeert een e‑mailbericht voor een bepaalde belangrijkheid of categorie. Microsoft Outlook laat gebruikers kleurcategorieën toewijzen om e‑mails te onderscheiden. Om de kleurcategorie te verwerken, gebruikt u de FollowUpManager. Het bevat functies zoals addCategory, removeCategory, clearCategories en getCategories.

  • addCategory takes MapiMessage en de kleurcategorie‑tekst, bijvoorbeeld "Paarse categorie" of "Rode categorie", als argumenten.
  • removeCategory takes MapiMessage en de te verwijderen kleurcategorie‑tekst uit het bericht.
  • clearCategories wordt gebruikt om alle kleurcategorieën uit het bericht te verwijderen.
  • getCategories wordt gebruikt om alle kleurcategorieën uit een bepaald bericht op te halen.

Het volgende voorbeeld voert de onderstaande taken uit:

  1. Voeg een kleurcategorie toe.
  2. Voeg een andere kleurcategorie toe.
  3. Haal de lijst met alle categorieën op.
  4. Verwijder alle categorieën.
// 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);

Toegang tot vervolg‑informatie uit MSG‑bestand

Aspose.Email API biedt de mogelijkheid om vervolg‑informatie van een verzonden of ontvangen bericht op te vragen. Het kan de lees‑, bezorgings‑ontvangst‑ en stemresultaatinformatie uit een berichtbestand ophalen.

Ophalen van lees- en bezorgingsontvangstinformatie

De volgende codefragment toont hoe u lees- en bezorgingsontvangstinformatie kunt ophalen.

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

Doorgestuurde en antwoordberichten maken

Aspose.Email API biedt de mogelijkheid om doorgestuurde en antwoordberichten te maken en te formatteren. De ReplyMessageBuilder en ForwardMessageBuilder klassen van de API worden respectievelijk gebruikt om antwoord- en doorgestuurde berichten te maken. Een antwoord‑ of doorgestuurd bericht kan worden opgegeven om te worden aangemaakt met een van de modi van OriginalMessageAdditionMode enum. Deze enum heeft de volgende waarden:

  • OriginalMessageAdditionMode.None - Het originele bericht wordt niet opgenomen in het antwoordbericht.
  • OriginalMessageAdditionMode.Attachment - Het originele bericht wordt als bijlage toegevoegd aan het antwoordbericht
  • OriginalMessageAdditionMode.Textpart - Het originele bericht wordt opgenomen als tekst in de body van het antwoordbericht

Een antwoordbericht maken

Het volgende codefragment laat zien hoe je een antwoordbericht maakt.

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

Een doorgestuurd bericht maken

Het volgende codefragment laat zien hoe je een doorgestuurd bericht maakt.

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

Lege datums behouden bij het converteren van een bericht

MapiConversionOptions.setPreserveEmptyDates(boolean) eigenschap die aangeeft of lege datums moeten worden behouden bij het converteren van een bericht. Deze API verschijnt in Aspose.Email 21.5. Het volgende codefragment laat zien hoe je lege datums kunt behouden.

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