Vytváření a ukládání MSG souborů

Všimněte si, že ve stavu konceptu Outlook nezobrazuje žádné informace o odesílateli přiřazené k MapiMessage. Pokud potřebujeme zobrazit informace o odesílateli, měli bychom nastavit příznak MSGFLAG_READ.

  • Aspose.Email podporuje vytváření Outlook zpráv (MSG) souborů. Tento článek vysvětluje, jak:
  • Vytvořte MSG zprávy.
  • Vytvořte MSG zprávy s přílohami.
  • Vytvořte MSG zprávu s RTF tělem.
  • Uložit zprávu jako koncept.

Pracujte s kompresí těla.

The MailMessage Vytváření a ukládání Outlook zpráv uložit třídy má MailMessage třídou, nastavit vlastnosti jako od, komu, předmět a tělo. Metoda, která umožňuje uložit Outlook MSG soubory na disk nebo stream. Níže uvedené úryvky kódu vytvářejí instanci uložit metoda přijímá název souboru jako argument. Navíc lze Outlook zprávy vytvořit s komprimované RTF tělo pomocí MapiConversionOptions.

  1. Vytvořte novou instanci MailMessage třídy a nastaví vlastnosti From, To, Subject a Body.
  2. Zavolejte MapiMessage třída fromMailMessage metoda, která přijímá objekt MailMessage typ. Metoda, která přijímá objekt třídy fromMailMessage metoda konvertuje MailMessage do MapiMessage (MSG).
  3. Zavolejte MapiMessage.save metoda k uložení MSG souboru.
// 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/";

// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();

// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setBody("This is test body");

// Create an instance of the MapiMessage class and pass MailMessage as argument
MapiMessage outlookMsg = MapiMessage.fromMailMessage(mailMsg);

// Save the message (MSG) file
String strMsgFile = "CreatingAndSavingOutlookMessages_out.msg";
outlookMsg.save(dataDir + strMsgFile);

Vytváření MSG souborů s přílohami

V příkladu výše, vytvořili jsme jednoduchý MSG soubor. Aspose.Email také podporuje ukládání souborů zpráv s přílohami. Vše, co musíte udělat, je přidat přílohy do MailMessage instance. Přidejte přílohy voláním metody addItem na MailMessage.Attachments kolekce.

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

String[] files = new String[2];
files[0] = "attachment.doc";
files[1] = "attachment.png";

// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();

// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setBody("This is test body");

// Add the attachments
for (String strFileName : files)
{
    mailMsg.getAttachments().addItem(new Attachment(strFileName));
}

// Create an instance of MapiMessage class and pass MailMessage as argument
MapiMessage outlookMsg = MapiMessage.fromMailMessage(mailMsg);
String strMsgFile = "CreateMessagesWithAttachments.msg";
outlookMsg.save(dataDir + strMsgFile);

Vytváření MSG souborů s RTF tělem

Můžete také vytvářet soubory Outlook Message (MSG) s těly bohatého textu (RTF) pomocí Aspose.Email. Tělo RTF podporuje formátování textu. Vytvořte ho nastavením MailMessage.HtmlBody vlastnosti. Když konvertujete MailMessage instance do MapiMessage instance, HTML tělo je konvertováno do RTF. Tím je zachováno formátování těla e‑mailu.

Následující příklad vytvoří MSG soubor s RTF tělem. V HTML těle je jeden nadpis, tučné a podtržené formátování. Toto formátování zůstane zachováno při konverzi HTML do RTF.

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

// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();

// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setHtmlBody("<h3>rtf example</h3><p>creating an <b><u>outlook message (msg)</u></b> file using Aspose.Email.</p>");

MapiMessage outlookMsg = MapiMessage.fromMailMessage(mailMsg);
outlookMsg.save(dataDir + "CreatingMSGFilesWithRTFBody_out.msg");

Uložení zprávy ve stavu konceptu

E‑maily jsou uloženy jako koncepty, když někdo zahájil jejich úpravy, ale chce se k nim později vrátit a dokončit je. Aspose.Email podporuje ukládání e‑mailových zpráv ve stavu konceptu nastavením příznaku zprávy. Níže je ukázkový kód pro uložení Outlook e‑mailové zprávy (MSG) jako konceptu.

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

// Change properties of an existing MSG file
String strExistingMsg = "message.msg";

// Load the existing file in MailMessage and Change the properties
MailMessage msg = MailMessage.load(dataDir + strExistingMsg, new MsgLoadOptions());
msg.setSubject(msg.getSubject() + " NEW SUBJECT (updated by Aspose.Email)");
msg.setHtmlBody(msg.getHtmlBody() + " NEW BODY (udpated by Aspose.Email)");

// Create an instance of type MapiMessage from MailMessage, Set message flag to un-sent (draft status) and Save it
MapiMessage mapiMsg = MapiMessage.fromMailMessage(msg);
mapiMsg.setMessageFlags(MapiMessageFlags.MSGFLAG_UNSENT);
mapiMsg.save(dataDir + "SavingMessageInDraftStatus_out.msg");

Práce s přílohami zprávy

Důsledky komprese těla

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
String fileName = "outlook/test.msg";

MailMessage message = MailMessage.load(fileName);
MapiConversionOptions options = new MapiConversionOptions();
options.setUseBodyCompression(true);
MapiMessage ae_mapi = MapiMessage.fromMailMessage(message, options);