[java] Javamail을 사용하여 이메일 읽기 및 메시지 처리하기

이메일을 자동으로 읽고 처리해야하는 경우, Javamail 라이브러리를 사용할 수 있습니다. Javamail은 Java 프로그램에서 이메일을 송수신하는 데 사용되는 표준 API입니다. 이 블로그 포스트에서는 Javamail을 사용하여 이메일을 읽고 메시지를 처리하는 방법을 알아보겠습니다.

Javamail 라이브러리 설정

먼저, 프로젝트에 Javamail 라이브러리를 추가해야합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가하십시오:

<dependencies>
    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>javax.mail</artifactId>
        <version>1.6.2</version>
    </dependency>
</dependencies>

Gradle을 사용하는 경우, build.gradle 파일에 다음 의존성을 추가하십시오:

dependencies {
    implementation 'com.sun.mail:javax.mail:1.6.2'
}

이메일 읽기

Javamail을 사용하여 이메일을 읽으려면 다음 단계를 따르십시오:

  1. 프로퍼티 설정: 먼저, Javamail에서 사용할 프로퍼티를 설정해야합니다. 다음은 Gmail 계정을 사용하는 경우의 예입니다:
Properties properties = new Properties();
properties.put("mail.store.protocol", "imap"); // IMAP 프로토콜 사용
properties.put("mail.imap.host", "imap.gmail.com"); // Gmail IMAP 서버 호스트
properties.put("mail.imap.port", "993"); // Gmail IMAP 서버 포트
properties.put("mail.imap.ssl.enable", "true"); // SSL 사용
  1. 세션 생성: 프로퍼티를 기반으로 세션을 생성해야합니다.
Session session = Session.getInstance(properties);
  1. 스토어 열기: 세션을 사용하여 이메일 스토어를 엽니다.
Store store = session.getStore();
store.connect("이메일주소", "비밀번호");
  1. 폴더 열기: 원하는 이메일 폴더를 엽니다. 예를 들어, Inbox 폴더를 열기 위해서는 다음을 사용할 수 있습니다:
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY); // 읽기 전용으로 폴더 열기
  1. 메시지 가져오기: 열린 폴더에서 메시지를 가져옵니다. 예를 들어, 처음 10개의 메시지를 가져오기 위해서는 다음과 같이 할 수 있습니다:
Message[] messages = folder.getMessages(1, 10);

메시지 처리

이제 이메일 메시지를 가져왔으므로, 원하는 작업을 수행할 수 있습니다. 메시지의 제목, 본문, 발신자, 수신자 등과 같은 다양한 속성에 액세스할 수 있습니다. 예를 들어, 첫 번째 메시지의 제목과 발신자를 출력하는 방법은 다음과 같습니다:

Message firstMessage = messages[0];
System.out.println("제목: " + firstMessage.getSubject());
System.out.println("발신자: " + firstMessage.getFrom()[0]);

또 다른 메시지 처리 작업으로는 첨부 파일 다운로드, 메시지에 대한 답장 작성 등이 있을 수 있습니다. Javamail API 문서에서 더 많은 기능과 사용 예제를 찾을 수 있습니다.

마치며

이제 Javamail을 사용하여 Java 프로그램에서 이메일을 읽고 메시지를 처리하는 방법에 대해 알게되었습니다. Javamail은 간편한 API를 제공하여 이메일 자동화 작업을 수행하는 데 매우 유용합니다. 추가로 필요한 기능이 있다면 Javamail API 문서와 예제 코드를 참조하시기 바랍니다.