MapiConversionOptions.setPreserveEmptyDates(boolean)

Konverze MSG na MIME zprávu

Aspose.Email API poskytuje možnost konverze souborů MSG na MIME zprávy pomocí 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);

Konverze MSG do EML se zachováním RTF těla

API poskytuje následující metody pro zachování RTF těla při konverzi MSG do EML:

Následující ukázky kódu demonstrují, jak zachovat rtf tělo v 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);

Konverze MSG do MHTML se zachováním záhlaví kategorie

Aspose.Email API poskytuje možnost přidat záhlaví kategorie při konverzi zprávy do MHTML. Tato funkce je specifikována pomocí MhtSaveOptions třídu jako další možnost při ukládání MailMessage do formátu Mhtml.

Následující ukázka kódu demonstruje, jak vytvořit soubor MHT (MHTML) z objektu MapiMessage, přizpůsobit formátování a hlavičky souboru MHT pomocí MhtSaveOptions, nastavit kategorie pro e‑mailovou zprávu a následně upravit šablony formátu a hlavičky vykreslování pro soubor MHT před jeho uložením.

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

Čtení a zápis souboru šablony Outlook (.OFT)

Šablony Outlook jsou velmi užitečné, když chcete opakovaně odesílat podobnou e‑mailovou zprávu. Místo toho, abyste zprávu pokaždé připravovali od začátku, nejprve ji připravte v Outlooku a uložte jako šablonu Outlook (OFT). Poté, kdykoli potřebujete zprávu odeslat, můžete ji vytvořit ze šablony, což ušetří čas psaní stejného textu v těle nebo předmětu, nastavení formátování a podobně. Aspose.Email MailMessage třída může být použita k načtení a čtení souboru šablony Outlook (OFT). Jakmile je šablona Outlook načtena v instanci MailMessage třídy, můžete aktualizovat odesílatele, příjemce, tělo, předmět a další vlastnosti. Po aktualizaci vlastností:

  • Odeslat e‑mail pomocí SmtpClient třídu nebo
  • Uložit zprávu jako MSG a provést další aktualizace/validace pomocí Microsoft Outlook.

V níže uvedených ukázkách kódu děláme:

  1. Načíst šablonu pomocí MailMessage třída.
  2. Aktualizovat některé vlastnosti.
  3. Uložit zprávu ve formátu MSG.

Následující úryvek kódu vám ukazuje, jak načíst soubor OFT, aktualizovat zprávu a uložit ji ve formátu 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");

Ukládání souboru Outlook MSG jako šablony

Následující úryvek kódu vám ukazuje, jak uložit soubor Outlook MSG jako šablonu.

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

Nastavení barevné kategorie pro soubory Outlook MSG

Barevná kategorie označuje e‑mailovou zprávu určitým způsobem důležitosti nebo kategorie. Microsoft Outlook umožňuje uživatelům přiřadit barevné kategorie k rozlišení e‑mailů. Pro práci s barevnou kategorií použijte FollowUpManager. Obsahuje funkce jako například addCategory, removeCategory, clearCategories a getCategories.

  • addCategory přebírá MapiMessage a řetězec barevné kategorie, např. "Fialová kategorie" nebo "Červená kategorie" jako argumenty.
  • removeCategory přebírá MapiMessage a řetězec barevné kategorie, který má být ze zprávy odstraněn.
  • clearCategories slouží k odstranění všech barevných kategorií ze zprávy.
  • getCategories slouží k načtení všech barevných kategorií z konkrétní zprávy.

Následující příklad provádí úkoly uvedené níže:

  1. Přidat barevnou kategorii.
  2. Přidat další barevnou kategorii.
  3. Načíst seznam všech kategorií.
  4. Odstranit všechny 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);

Přístup k informacím o následném zpracování ze souboru MSG

Aspose.Email API poskytuje možnost přístupu k informacím o následném zpracování ze zaslané nebo přijaté zprávy. Může získat informace o přečtení, potvrzení doručení a výsledcích hlasování ze souboru zprávy.

Získávání informací o potvrzení přečtení a doručení

Následující úryvek kódu vám ukazuje, jak získat informace o potvrzení přečtení a doručení.

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

Creating Forward and Reply Messages

Vytváření předávacích a odpovědních zpráv Aspose.Email API poskytuje možnost vytvářet a formátovat zprávy předání a odpovědi. The a ReplyMessageBuilder ForwardMessageBuilder třídy API jsou použity k vytvoření odpovědních a předávacích zpráv. Odpověď nebo předání může být vytvořeno pomocí libovolného z režimů OriginalMessageAdditionMode

  • výčtový typ. Tento výčtový typ má následující hodnoty:
  • OriginalMessageAdditionMode.None – Původní zpráva není zahrnuta v odpovědi.
  • OriginalMessageAdditionMode.Attachment – Původní zpráva je zahrnuta jako příloha v odpovědi

OriginalMessageAdditionMode.Textpart – Původní zpráva je zahrnuta jako text v těle odpovědi

Creating Reply Message

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

Vytvoření odpovědní zprávy

Následující úryvek kódu ukazuje, jak vytvořit odpovědní zprávu.

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

Vytvoření zprávy předání

Následující úryvek kódu ukazuje, jak vytvořit zprávu pro předání. Zachovat prázdná data při převodu zprávy

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