Aspose.Email 및 Apache POI HSMF를 사용해 메시지 첨부 파일 추출

Aspose.Email - 메시지 첨부 파일 추출

기존 메시지의 첨부 파일을 저장하려면:

  1. MailMessage 클래스를 인스턴스화합니다.
  2. MailMessage 클래스의 load() 메서드를 사용하여 기존 이메일 메시지를 로드하고 올바른 MessageFormat을 지정합니다.
  3. AttachmentCollection 클래스를 인스턴스화하고 getAttachments() 메서드를 사용하여 MaiMessage 인스턴스에서 첨부 파일을 채웁니다.
  4. AttachmentCollection 컬렉션을 반복합니다.
  5. Attachment 클래스를 인스턴스화하고 get() 메서드를 사용하여 AttachmentCollection에서 인덱스된 값을 채웁니다.
  6. Attachment 클래스의 save() 메서드를 사용하여 첨부 파일을 디스크에 저장합니다.

Java

 MailMessage message = MailMessage.load(dataDir + \"message.msg\");

System.out.println(\"Extracting attachments....\");

for (int i = 0; i < message.getAttachments().size(); i++)

{

    Attachment att = (Attachment) message.getAttachments().get_Item(i);

    System.out.println("Attachment Name: " + att.getName());

    String attFileName = att.getName().replace(".eml", "").replace(":", " ").replace("\\", " ").replace("/", " ").replace("?", "");

    // Save the attachment to disk

    att.save(dataDir + attFileName);

}

Apache POI HSMF - 메시지 첨부 파일 추출

AttachmentChunks 클래스를 사용하여 MAPIMessage의 첨부 파일에 접근할 수 있습니다.

Java

 MAPIMessage msg = new MAPIMessage(dataDir + \"message.msg\");

AttachmentChunks[] attachments = msg.getAttachmentFiles();

if (attachments.length > 0)

{

	File d = new File(dataDir + "attachments");

	if (d.exists() || d.mkdir())

	{

		for (AttachmentChunks attachment : attachments)

		{

			String fileName = attachment.attachFileName.toString();

			if (attachment.attachLongFileName != null)

			{

				fileName = attachment.attachLongFileName.toString();

			}

			File f = new File(d, fileName);

			OutputStream fileOut = null;

			try

			{

				fileOut = new FileOutputStream(f);

				fileOut.write(attachment.attachData.getValue());

			}

			finally

			{

				if (fileOut != null)

				{

					fileOut.close();

				}

			}

		}

	}

}

실행 코드 다운로드

샘플 코드 다운로드