Class MailReportService

java.lang.Object
com.easydesk.web.service.MailReportService

@Service public class MailReportService extends Object
메일 현황(MailReport 화면) - Gmail 메일함을 IMAP 으로 읽어 발송 / 수신 목록을 만든다.
  • 발송 현황 : Gmail 의 "보낸편지함". Gmail 은 계정 언어에 따라 폴더 이름이 바뀌므로 ("[Gmail]/Sent Mail", "[Gmail]/보낸편지함" ...) 이름이 아니라 IMAP SPECIAL-USE 속성 \Sent 로 찾는다.
  • 수신 현황 : INBOX.
메일함은 READ_ONLY 로 열고 ENVELOPE / FLAGS / BODYSTRUCTURE 만 가져온다 - 본문은 내려받지 않고, 읽음(\Seen) 표시도 바꾸지 않는다. 목록은 최신 메일이 먼저 오도록 메시지 번호의 역순으로 페이지를 나눈다. 접속 계정은 따로 지정하지 않으면 SMTP 발송 계정(spring.mail.username / password, Gmail 앱 비밀번호)을 그대로 쓴다. 요청마다 IMAP 에 새로 접속하고 끝나면 닫는다 (관리 화면 조회용이라 따로 캐시하지 않는다).
  • Constructor Details

    • MailReportService

      public MailReportService()
  • Method Details

    • isConfigured

      public boolean isConfigured()
      Returns:
      IMAP 접속 계정 / 비밀번호가 설정되어 있는지
    • getAccount

      public String getAccount()
      Returns:
      접속 계정 (화면 표시용)
    • load

      public MailReportService.MailReport load(int sentPage, int inboxPage) throws MessagingException
      보낸편지함과 받은편지함을 한 번의 IMAP 접속으로 읽는다.
      Parameters:
      sentPage - 보낸편지함 페이지 (1 부터)
      inboxPage - 받은편지함 페이지 (1 부터)
      Throws:
      MessagingException