Зареждане, преглед и парсиране на MSG файл

Тази тема обяснява как да се зареди файл с Microsoft Outlook съобщение (*.msg). Този MapiMessage клас се използва за зареждане на MSG файлове и предоставя няколко статични функции за зареждане за различни сценарии. Следният кодов откъс показва как да заредите MSG файлове от файл или от поток.

Зареждане на MSG файлове

Следният кодов откъс показва как да се заредят 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 = RunExamples.getDataDir_Outlook();

// Create an instance of MapiMessage from file
MapiMessage msg = MapiMessage.fromFile(dataDir + "message.msg");

// Get subject
System.out.println("Subject:" + msg.getSubject());

// Get from address
System.out.println("From:" + msg.getSenderEmailAddress());

// Get body
System.out.println("Body" + msg.getBody());

// Get recipients information
System.out.println("Recipient: " + msg.getRecipients());

// Get attachments
for (MapiAttachment att : msg.getAttachments())
{
    System.out.println("Attachment Name: " + att.getFileName());
    System.out.println("Attachment Display Name: " + att.getDisplayName());
}

Следният примерен код показва как да се използва MailMessage, за да се зареди съобщение във MSG формат.

MailMessage eml = MailMessage.load("message.msg");

Трябва да се има предвид, че полученото съобщение се конвертира в EML формат, включително вградените прикачени съобщения. Не използвайте този метод за зареждане, ако искате да запазите някои специфични свойства на оригиналния msg формат.

За да запазите оригиналния формат на вградените прикачени съобщения, използвайте MsgLoadOptions.PreserveEmbeddedMessageFormat свойство.

MsgLoadOptions msgLoadOptions = new MsgLoadOptions();
msgLoadOptions.setPreserveEmbeddedMessageFormat(true);
MailMessage msg = MailMessage.load(stream, msgLoadOptions);

Зареждане от поток

Следният кодов откъс показва как да заредите файл от поток.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Create an instance of MapiMessage from file
try (FileInputStream stream = new FileInputStream(dataDir + "message.msg"))
{
    // Create an instance of MapiMessage from file
    MapiMessage msg = MapiMessage.fromStream(stream);

    // Get subject
    System.out.println("Subject:" + msg.getSubject());

    // Get from address
    System.out.println("From:" + msg.getSenderEmailAddress());

    // Get body
    System.out.println("Body" + msg.getBody());

}

Конвертиране на EML към MSG с запазване на формата на вградения EML

EML файлове могат да се заредят в MapiMessage клас чрез инстанциране на MailMessage обект и го предавате на MapiMessage.fromMailMessage метод. Ако EML файлът съдържа вградени EML файлове, използвайте MapiConversionOptions.setPreserveEmbeddedMessageFormat за запазване формата на вградените EML файлове. Следният кодов откъс показва как да се заредят EML файлове в MapiMessage като се запазва форматът на вградените EML файлове.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
String dataDir = RunExamples.getDataDir_Email();

MailMessage eml = MailMessage.load(dataDir + "sample.eml", new EmlLoadOptions());

MapiConversionOptions options = MapiConversionOptions.getUnicodeFormat();

//Preserve Embedded Message Format
options.setPreserveEmbeddedMessageFormat(true);

//Convert EML to MSG with Options
MapiMessage msg = MapiMessage.fromMailMessage(eml, options);