[java] Javamail을 사용하여 IMAP 서버에 연결하기

JavaMail은 Java에서 이메일을 송수신하는 데 사용되는 라이브러리입니다. 이번 글에서는 Javamail을 사용하여 IMAP 서버에 연결하는 방법을 알아보겠습니다.

의존성 추가하기

먼저 프로젝트의 의존성에 JavaMail 라이브러리를 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음과 같이 의존성을 추가해주세요.

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

Gradle을 사용한다면 build.gradle 파일에 다음과 같이 의존성을 추가해주세요.

compile 'com.sun.mail:javax.mail:1.6.2'

의존성을 추가했다면, Javamail을 사용하여 IMAP 서버에 연결해볼 수 있습니다.

IMAP 서버에 연결하기

먼저, javax.mail 패키지의 Session 클래스를 사용하여 세션을 생성합니다. 이 세션은 애플리케이션과 메일 서버 간의 통신을 담당합니다.

import javax.mail.*;
import java.util.Properties;

public class ImapExample {

    public static void main(String[] args) throws Exception {

        // IMAP 서버 연결 정보 설정
        Properties properties = new Properties();
        properties.setProperty("mail.store.protocol", "imap");
        properties.setProperty("mail.imap.host", "imap.example.com");
        properties.setProperty("mail.imap.port", "993");
        properties.setProperty("mail.imap.ssl.enable", "true");

        // 세션 생성
        Session session = Session.getInstance(properties);

        // IMAP Store 연결
        Store store = session.getStore("imap");
        store.connect("username", "password");

        // 세션 및 Store 닫기
        store.close();
    }
}

위의 코드에서 mail.imap.hostmail.imap.port는 접속할 IMAP 서버의 호스트와 포트 정보를 설정합니다. mail.imap.ssl.enable은 SSL을 사용하여 암호화된 연결을 설정하는 속성입니다.

store.connect("username", "password"); 메서드를 사용하여 실제로 IMAP 서버에 연결할 수 있습니다. 여기서 usernamepassword는 해당 IMAP 서버의 사용자 계정 정보입니다.

연결을 성공적으로 수행한 후에는 store.close(); 메서드를 호출하여 세션과 스토어를 닫아야 합니다.

이제 Javamail을 사용하여 IMAP 서버에 연결하는 방법을 알게 되었습니다. 이를 기반으로 이메일 수신, 읽기, 삭제 등 다양한 작업을 수행할 수 있습니다.

참고 자료