[java] Javamail을 사용하여 이메일에 메일함 태그 추가하기

이메일 클라이언트 애플리케이션에는 일반적으로 메일을 분류하기 위한 메일함 태그를 사용합니다. 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. javax.mail 패키지의 클래스들을 import 합니다:
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Store;
  1. 이메일을 연결하기 위한 인증 정보를 설정합니다:
String host = "imap.example.com";
String username = "example@example.com";
String password = "password";

Properties properties = System.getProperties();
properties.setProperty("mail.store.protocol", "imaps");

Session session = Session.getDefaultInstance(properties, null);
Store store = session.getStore("imaps");
store.connect(host, username, password);
  1. 필요한 메일함을 찾은 후 해당 메일함에 메일 태그를 추가합니다:
// 메일함 이름과 메일 태그를 지정합니다
String mailboxName = "INBOX";
String tag = "Important";

Folder folder = store.getFolder(mailboxName);
folder.open(Folder.READ_WRITE);

Message[] messages = folder.getMessages();
for (Message message : messages) {
    // 메일에 태그를 추가합니다
    message.setFlag(Flags.Flag.USER, true);
    message.setHeader("X-Mailbox-Tag", tag);
}

folder.close(false);
store.close();

위의 코드에서는 INBOX 메일함에서 모든 메일을 읽어와서 X-Mailbox-Tag 헤더를 추가하여 태그를 설정합니다. 필요한 경우, 위의 코드를 수정하여 다른 메일함에 메일 태그를 추가할 수 있습니다.

이제 Javamail을 사용하여 이메일에 메일함 태그를 손쉽게 추가할 수 있습니다. 이를 통해 메일을 분류하고 관리할 수 있습니다.

참고 자료