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 형식을 보존하면서 EML을 MSG로 변환

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