FullStack/21. Java

Java 메일 읽기

nakanara 2023. 5. 16. 14:27
반응형

Java 메일 읽기

 

Pixabay - talha khalil님의 이미지 입니다.

자바 메일을 읽기 위해서는 메일 서버에서 POP 또는 IMAP 프로토콜 지원이 필요합니다.

import javax.mail.*;
import javax.mail.search.FlagTerm;
import java.util.*;

public class MailReadUtil {


    public void read()  {

        Store store = null;
        Folder inbox = null;

        try {
            Properties props = new Properties();


            Session msgSession = Session.getDefaultInstance(props);

            store = msgSession.getStore("imaps");
            store.connect("imap.gmail.com", "user@gmail.com", "passwd");

            System.out.println(store);

            inbox = store.getFolder("Inbox"); // 읽고자 하는 폴더
            inbox.open(Folder.READ_WRITE); // 읽기 적용을 위한 읽고 쓰기 모드

            // 읽지 않는 것들 중
            Message[] messages = inbox.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false));


            for (int i = 0; i < messages.length; i++) {
                Message message = messages[i];

                // 읽은 메일로 설정
                message.setFlag(Flags.Flag.SEEN, true);

                System.out.println("제목:" +  message.getSubject());
                System.out.println("발송: " + message.getFrom()[0]);
                System.out.println("발송일:" +  message.getSentDate());
                System.out.println("수신일:" +  message.getReceivedDate());
                System.out.println("내용:" +  message.getContent().toString());
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        } finally {
            if(inbox != null) {
                try{
                    inbox.close(false);
                }catch (MessagingException e){}
            }
            if(store != null) {
                try{
                    store.close();
                }catch (MessagingException e){}
            }
        }

    }
}

참고

반응형
댓글수0