본문 바로가기
FullStack/21. Java

Java 메일 읽기

by nakanara 2023. 5. 16.
반응형

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){}
            }
        }

    }
}

참고

반응형

'FullStack > 21. Java' 카테고리의 다른 글

ResultSet의 setFetchSize 에 따른 성능  (0) 2023.09.05
TimeZone 출력(GMT, UTC)  (0) 2023.07.18
[Spring] RequestContextHolder  (0) 2023.02.15
인텔리J 톰켓 위치-로그  (0) 2023.01.17
JAVA - HTTP 서비스 포트 찾기  (0) 2022.11.08