어떤 경우에는 애플리케이션 내에서 EML 또는 MSG 이메일 메시지를 읽고 구문 분석해야 할 수 있습니다. 프로그래밍 방식으로 수행하기 위해 이 기사에서는 Java의 이메일 메시지에서 정보를 추출하는 방법을 보여줍니다. 특히 이메일의 제목, 받는 사람, 보낸 사람, 본문 및 헤더 정보를 읽는 방법을 배웁니다.
이메일을 읽는 자바 API
이메일 메시지를 읽기 위해 Aspose.Email for Java를 사용합니다. Java에서 기능이 풍부한 이메일 클라이언트를 만들 수 있는 강력한 API입니다. API의 JAR을 다운로드하거나 다음 Maven 구성을 사용하여 설치할 수 있습니다.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-email</artifactId>
<version>21.3</version>
<classifier>jdk16</classifier>
</dependency>
Java를 사용하여 이메일 메시지 읽기
다음은 Java에서 이메일 메시지를 읽는 단계입니다.
- MailMessage 클래스를 사용하여 이메일 파일을 로드합니다.
- To, From, Subject, Body 등과 같은 MailMessage 개체를 사용하여 이메일 내용을 읽습니다.
다음 코드 샘플은 Java를 사용하여 이메일 메시지를 읽는 방법을 보여줍니다.
// Eml 파일을 로드하여 MailMessage 인스턴스 생성
MailMessage message = MailMessage.load("test.eml");
System.out.print("From: ");
// 발신자 정보 가져오기
System.out.println(message.getFrom());
System.out.print("To: ");
// 받는 사람 정보 가져오기
System.out.println(message.getTo());
System.out.print("Subject: ");
// 주제 가져오기
System.out.println(message.getSubject());
System.out.print("HtmlBody: ");
// HTML 본문 가져오기
System.out.println(message.getHtmlBody());
System.out.print("TextBody: ");
// 텍스트 본문을 가져옵니다.
System.out.println(message.getTextBody());
System.out.print("HtmlBodyText: ");
// 텍스트 본문을 가져옵니다. from HTML
System.out.println(message.getHtmlBodyText());
Java에서 이메일 본문을 일반 텍스트로 추출
이메일을 읽고 HTML 대신 일반 텍스트로 본문을 추출할 수도 있습니다. 다음은 이 작업을 수행하는 단계입니다.
- MailMessage 클래스를 사용하여 이메일 파일을 로드합니다.
- MailMessage.getHtmlBodyText(boolean) 메소드를 사용하여 이메일 본문을 추출합니다.
다음 코드 샘플은 Java에서 이메일 본문을 일반 텍스트로 추출하는 방법을 보여줍니다.
// 이메일 메시지 로드
MailMessage mail = MailMessage.load("HtmlWithUrlSample.eml");
body_with_url = mail.getHtmlBodyText(true);// body will contain URL
String body_without_url = mail.getHtmlBodyText(false);// body will not contain URL
// 이메일 메시지 인쇄
System.out.println("Body with URL: " + body_with_url);
System.out.println("Body without URL: " + body_without_url);
Java의 이메일에서 헤더 정보 추출
Aspose.Email for Java를 사용하면 이메일 메시지의 헤더 정보도 읽을 수 있습니다. 다음은 이 작업을 수행하는 단계입니다.
- MailMessage 클래스를 사용하여 이메일 파일을 로드합니다.
- MailMessage.getHeaders() 메서드를 사용하여 이메일의 헤더 컬렉션을 반복합니다.
다음 코드 샘플은 Java를 사용하여 이메일 메시지의 헤더를 읽는 방법을 보여줍니다.
// EML 파일을 로드하여 MailMessage 인스턴스 생성
MailMessage message = MailMessage.load("test.eml");
// 모든 헤더 출력
System.out.println("Printing all Headers:\n\n");
for (int i=0; i< message.getHeaders().size(); i++)
System.out.println(message.getHeaders().get(i));
Java에서 이메일 헤더 디코딩
다음 단계를 사용하여 이메일 헤더를 디코딩할 수도 있습니다.
- MailMessage 클래스를 사용하여 이메일 파일을 로드합니다.
- MailMessage.getHeaders().getDecodedValue(String name) 메서드를 사용하여 디코딩된 이메일 헤더의 값을 가져옵니다.
다음 코드 샘플은 Java에서 이메일 헤더 값을 디코딩하는 방법을 보여줍니다.
// 이메일 메시지 로드
MailMessage mail = MailMessage.load("test.eml");
// 헤더에서 디코딩된 값 가져오기
String decodedValue = mail.getHeaders().getDecodedValue("Thread-Topic");
// 값 인쇄
System.out.println(decodedValue);
무료 API 라이선스 받기
평가 제한 없이 API를 사용하려면 무료 임시 라이선스를 요청할 수 있습니다.
라이브 데모
결론
이 기사에서는 Java를 사용하여 이메일 메시지를 읽는 방법을 배웠습니다. 또한 이메일 메시지에서 헤더 정보를 추출하는 방법을 살펴보았습니다. 문서를 사용하여 Java 이메일 API에 대해 자세히 알아볼 수 있습니다. 또한 문의 사항이 있는 경우 포럼을 통해 문의할 수 있습니다.