파일 업로드가 아닌 파일 (메일 첨부파일 등) 있으면 읽어서 폴더에 넣기
삽질을 너무 열심히 해서 추후에 공부하기위해
소스를 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);