Class EmailSyncService

java.lang.Object
com.bytedesk.core.email.EmailSyncService

@Service public class EmailSyncService extends Object
邮件同步服务 负责管理和监控邮件账户的收发邮件
  • Field Details

  • Constructor Details

    • EmailSyncService

      public EmailSyncService()
  • Method Details

    • startEmailSync

      public void startEmailSync(EmailEntity emailEntity)
      启动邮件同步任务
      Parameters:
      emailEntity - 邮件配置实体
    • stopEmailSync

      public void stopEmailSync(String emailUid)
      停止邮件同步任务
      Parameters:
      emailUid - 邮件配置UID
    • restartEmailSync

      public void restartEmailSync(EmailEntity emailEntity)
      重启邮件同步任务
      Parameters:
      emailEntity - 邮件配置实体
    • syncEmailsForAccount

      private void syncEmailsForAccount(EmailEntity emailEntity)
      同步指定邮件账户的邮件
      Parameters:
      emailEntity - 邮件配置实体
    • syncImapEmails

      private void syncImapEmails(EmailEntity emailEntity)
      同步IMAP邮件
    • syncPop3Emails

      private void syncPop3Emails(EmailEntity emailEntity)
      同步POP3邮件
    • syncExchangeEmails

      private void syncExchangeEmails(EmailEntity emailEntity)
      同步Exchange邮件
    • processIncomingMessage

      private void processIncomingMessage(jakarta.mail.Message message, EmailEntity emailEntity)
      处理收到的邮件消息
    • extractMessageId

      private String extractMessageId(jakarta.mail.Message message)
      提取邮件的 Message-ID
    • generateMessageId

      private String generateMessageId(jakarta.mail.Message message)
      生成邮件ID(当邮件没有 Message-ID 时)
    • extractAttachments

      private String extractAttachments(jakarta.mail.Message message)
      提取附件信息
    • getMessageSize

      private Long getMessageSize(jakarta.mail.Message message)
      获取邮件大小
    • convertToZonedDateTime

      private ZonedDateTime convertToZonedDateTime(Date date)
      将 Date 转换为 ZonedDateTime
    • verifyEmailConfiguration

      private boolean verifyEmailConfiguration(EmailEntity emailEntity)
      验证邮件配置
    • verifyImapConfiguration

      private boolean verifyImapConfiguration(EmailEntity emailEntity)
      验证IMAP配置
    • verifyPop3Configuration

      private boolean verifyPop3Configuration(EmailEntity emailEntity)
      验证POP3配置
    • verifyExchangeConfiguration

      private boolean verifyExchangeConfiguration(EmailEntity emailEntity)
      验证Exchange配置
    • updateLastSyncTime

      private void updateLastSyncTime(EmailEntity emailEntity)
      更新最后同步时间
    • updateConnectionStatus

      private void updateConnectionStatus(EmailEntity emailEntity, EmailConnectionStatusEnum status, String errorMessage)
      更新连接状态
    • getActiveSyncTasksCount

      public int getActiveSyncTasksCount()
      获取当前运行的同步任务数量
    • isSyncRunning

      public boolean isSyncRunning(String emailUid)
      检查指定邮件配置是否正在同步
    • stopAllSyncTasks

      public void stopAllSyncTasks()
      停止所有同步任务
    • shutdown

      public void shutdown()
      关闭服务
    • startBatchSyncTasks

      public void startBatchSyncTasks(List<EmailEntity> emailEntities)
      批量启动邮件同步任务
      Parameters:
      emailEntities - 邮件配置实体列表
    • triggerManualSync

      public boolean triggerManualSync(String emailUid)
      手动触发单次邮件同步
      Parameters:
      emailUid - 邮件配置UID
      Returns:
      同步结果
    • testEmailConnection

      public boolean testEmailConnection(String emailUid)
      测试邮件配置连接
      Parameters:
      emailUid - 邮件配置UID
      Returns:
      连接测试结果
    • getSyncStatus

      public EmailSyncStatus getSyncStatus(String emailUid)
      获取同步任务状态信息
      Parameters:
      emailUid - 邮件配置UID
      Returns:
      状态信息
    • getSyncOverview

      public EmailSyncOverview getSyncOverview()
      获取所有同步任务的概览状态
      Returns:
      概览状态
    • syncEmailsForAccountByUid

      private void syncEmailsForAccountByUid(String emailUid)
      通过UID同步指定邮件账户的邮件(从数据库获取最新数据)
      Parameters:
      emailUid - 邮件配置UID