[java] Javamail을 사용하여 이메일 제목 및 본문 수정하기

Javamail은 Java에서 이메일을 보내고 받을 수 있는 API입니다. 이 예제에서는 Javamail을 사용하여 이메일의 제목과 본문을 수정하는 방법에 대해 알아보겠습니다.

1. Javamail 라이브러리 추가하기

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

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

Gradle을 사용한다면 build.gradle 파일에 다음 의존성을 추가하세요:

compile group: 'com.sun.mail', name: 'javax.mail', version: '1.6.2'

2. 이메일 제목과 본문 수정하기

import javax.mail.*;
import javax.mail.internet.*;

public class EmailModifier {
    private static final String HOST = "your_smtp_host";
    private static final String USERNAME = "your_username";
    private static final String PASSWORD = "your_password";

    public static void main(String[] args) {
        // 이메일 서버 정보 설정
        Properties props = new Properties();
        props.setProperty("mail.smtp.host", HOST);
        props.setProperty("mail.smtp.auth", "true");

        // 인증 정보 설정
        Authenticator auth = new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(USERNAME, PASSWORD);
            }
        };

        // 세션 생성
        Session session = Session.getInstance(props, auth);

        try {
            // 메일 검색
            Store store = session.getStore("imaps");
            store.connect(HOST, USERNAME, PASSWORD);

            Folder folder = store.getFolder("INBOX");
            folder.open(Folder.READ_WRITE);

            // 메일 선택
            Message[] messages = folder.getMessages();
            Message message = messages[0];

            // 제목 수정
            String newSubject = "새로운 제목";
            message.setSubject(newSubject);
            
            // 본문 수정
            String newContent = "새로운 본문";
            message.setContent(newContent, "text/plain");

            // 수정된 메일 저장
            folder.close(true);
            store.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

위의 예제에서는 Javamail을 사용하여 이메일 서버에 연결하고, INBOX 폴더에서 첫 번째 메일을 선택합니다. 그런 다음, message.setSubject() 메소드를 사용하여 제목을 수정하고, message.setContent() 메소드를 사용하여 본문을 수정합니다.

이제 message.saveChanges() 메소드를 호출하여 수정된 메일을 저장합니다. 반드시 folder.close(true)를 호출하여 변경사항을 커밋해야 합니다.

위의 예제를 실행하고, 제목과 본문이 수정된 메일을 확인하세요.

참고 자료