카테고리 없음

파일 업로드가 아닌 파일 (메일 첨부파일 등) 있으면 읽어서 폴더에 넣기

스티브 잡스가 되고 싶어 2023. 9. 2. 19:20

삽질을 너무 열심히 해서 추후에 공부하기위해 

소스를 ChatGPT 물어봤다

 

아직 돌려보진 않았지만 해보구 소스 수정해야겠다...

 

메일에서 파일이 있는지 체크한 후 폴더에다가 파일을 생성하는 로직이다.

 

 

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

// 메시지 가져오기
Message[] messages = folder.getMessages();

// 첨부 파일 다운로드 및 저장
for (Message message : messages) {
    Multipart multipart = (Multipart) message.getContent();
    for (int i = 0; i < multipart.getCount(); i++) {
        BodyPart bodyPart = multipart.getBodyPart(i);
        if (Part.ATTACHMENT.equalsIgnoreCase(bodyPart.getDisposition())) {
            // 첨부 파일명 가져오기
            String fileName = bodyPart.getFileName();

            // 폴더 생성 (없으면)
            File outputFolder = new File("email_attachments");
            if (!outputFolder.exists()) {
                outputFolder.mkdir();
            }

            // 파일 경로 설정
            String filePath = "email_attachments/" + fileName;

            // 파일 저장
            FileOutputStream outputStream = new FileOutputStream(filePath);
            InputStream inputStream = bodyPart.getInputStream();
            byte[] buffer = new byte[4096];
            int bytesRead;
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }
            outputStream.close();
            inputStream.close();

            System.out.println("첨부 파일 다운로드 및 저장: " + filePath);
        }
    }
}

// 연결 종료
folder.close(false);
store.close();Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);