Class MailReceiver
java.lang.Object
deu.cse.spring_webmail.mail.service.MailReceiver
메일을 받아오는 클래스
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate String
다운로드 폴더 경로private final JamesAdminMailBox
James 관리자 메일함private final MailBoxRepository
메일함 레포지토리private final MailMapper
메일 변환 매퍼private final MailPageableRepository
페이지네이션을 위한 메일 레포지토리private final MailRepository
메일 레포지토리 -
Constructor Summary
ConstructorsConstructorDescriptionMailReceiver
(MailMapper mailMapper, MailRepository mailRepository, MailBoxRepository mailBoxRepository, MailPageableRepository mailPageableRepository, JamesAdminMailBox jamesAdminMailBox) -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.core.io.Resource
downloadAttachment
(Long id, String filename) 임시 디렉토리에 저장된 첨부파일을 다운로드extractAttachments
(Object mailContents, Long mailUid) 메일 Content에서 첨부파일 이름만 추출 파일은 서버의 임시 디렉토리에 저장 (mailUid/fileName)protected String
extractMailContent
(Object mailContents) 메일 Contents에서 내용만 추출 (첨부파일은 제외)getCountMailAtMailbox
(String userName, MailBoxType mailboxName) 사용자 이름으로 메일함을 찾아서 해당 메일함에 있는 모든 메일의 개수를 가져옴getCountUnReadMailAtMailbox
(String userName, MailBoxType mailboxName) 사용자 이름으로 메일함을 찾아서 해당 메일함에 있는 읽지 않은 메일의 개수를 가져옴메일 UID를 통해 메일을 가져옴 - 메일 내용과 첨부파일을 포함 (메일을 가져오면 메일을 읽은 것으로 처리)getMailFromMailBox
(String userName, MailBoxType mailBoxType, int page, int size) 메일함에 있는 메일을 조회 함protected Blob
mergeBlobs
(Blob mailHeaders, Blob mailBytes) 메일 Headers와 Body를 합쳐서 Blob으로 반환
-
Field Details
-
mailMapper
메일 변환 매퍼 -
mailRepository
메일 레포지토리 -
mailBoxRepository
메일함 레포지토리 -
mailPageableRepository
페이지네이션을 위한 메일 레포지토리 -
jamesAdminMailBox
James 관리자 메일함 -
downloadFolder
다운로드 폴더 경로
-
-
Constructor Details
-
MailReceiver
@Autowired public MailReceiver(MailMapper mailMapper, MailRepository mailRepository, MailBoxRepository mailBoxRepository, MailPageableRepository mailPageableRepository, JamesAdminMailBox jamesAdminMailBox)
-
-
Method Details
-
getMailFromMailBox
public List<MailDto> getMailFromMailBox(String userName, MailBoxType mailBoxType, int page, int size) 메일함에 있는 메일을 조회 함- Parameters:
userName
- 사용자 아이디 (메일함은 사용자 이름으로 생성되므로 사용자 이름이 메일함 이름과 동일)mailBoxType
- 메일함 종류page
- 페이지 번호size
- 페이지 크기- Returns:
- 사용자 메일함에 있는 모든 메일
-
getCountMailAtMailbox
사용자 이름으로 메일함을 찾아서 해당 메일함에 있는 모든 메일의 개수를 가져옴- Parameters:
userName
- 사용자 아이디mailboxName
- 메일함 이름- Returns:
- 사용자 메일함에 있는 모든 메일의 개수
-
getCountUnReadMailAtMailbox
사용자 이름으로 메일함을 찾아서 해당 메일함에 있는 읽지 않은 메일의 개수를 가져옴- Parameters:
userName
- 사용자 아이디mailboxName
- 메일함 이름- Returns:
- 사용자 메일함에 있는 읽지 않은 메일의 개수
-
getMail
메일 UID를 통해 메일을 가져옴 - 메일 내용과 첨부파일을 포함 (메일을 가져오면 메일을 읽은 것으로 처리)- Parameters:
mailBoxType
- 메일함 아이디mailUid
- 메일 UID- Returns:
- 메일 DTO
-
downloadAttachment
임시 디렉토리에 저장된 첨부파일을 다운로드- Parameters:
id
- 메일 UIDfilename
- 첨부파일 이름
-
mergeBlobs
메일 Headers와 Body를 합쳐서 Blob으로 반환- Parameters:
mailHeaders
- 메일 HeadersmailBytes
- 메일 Body- Returns:
- 합쳐진 Blob
- Throws:
SQLException
- SQL 예외
-
extractMailContent
protected String extractMailContent(Object mailContents) throws jakarta.mail.MessagingException, IOException 메일 Contents에서 내용만 추출 (첨부파일은 제외)- Parameters:
mailContents
- 메일 Contents- Throws:
jakarta.mail.MessagingException
IOException
-
extractAttachments
protected List<String> extractAttachments(Object mailContents, Long mailUid) throws jakarta.mail.MessagingException, IOException 메일 Content에서 첨부파일 이름만 추출 파일은 서버의 임시 디렉토리에 저장 (mailUid/fileName)- Parameters:
mailContents
- 메일 Contents- Throws:
jakarta.mail.MessagingException
IOException
-